云服务器内容精选

  • 操作步骤 参考获取云手机列表、为单台云手机安装应用在单台手机上安装应用最新的版本。 如果应用存在资源更新,请启动应用并完成资源文件的下载和更新。 参考生成应用版本tar包并推至OBS桶和推送应用tar包至服务器共享空间生成并推送tar包到服务器共享空间。 执行appctrl命令进行更新(参考appctrl命令)。 执行appctrl start 命令,云手机会安装该应用共享空间中最新版本并启动。 执行appctrl install命令,云手机会安装该应用共享空间中最新版本。 1. 当共享空间中某应用没有更新版本时,appctrl start和 appctrl install不会对已安装版本进行重复安装。 2. 对于采用共享方式安装的应用,如果启动应用后采用在线更新的方式更新资源,该更新后的资源会占用云手机的存储空间。因此当应用存在必要的在线更新时,建议提前对共享空间中的应用版本和在线资源进行更新。
  • 升级AOSP版本 方法一(保留用户数据) 云手机重启接口支持切换AOSP镜像版本,同时保留用户数据,操作详情请参考重启云手机实例。 注意: 重启接口支持将低版本镜像升级成高版本,但不支持将高版本镜像降级为低版本。 如果您没有保留用户数据的强烈诉求,推荐您使用方法二切换AOSP版本,应用不兼容的风险更小。 方法二(不保留用户数据) 云手机重置接口支持切换AOSP镜像版本,操作详情请参考重置云手机实例。 注意: 重置接口支持将低版本镜像升级成高版本,也支持将高版本镜像回退为低版本。
  • 当前已默认使能Vulkan的应用 当前CPH支持使能Vulkan的应用列表如表1所示,不在此表格中的应用暂不支持。 表1 支持使能Vulkan的应用列表 名称 包名 绝区零国服 com.miHoYo.Nap 绝区零国际服 com.HoYoverse.Nap 光遇国服 com.netease.sky 光遇国际服 com.tgc.sky.android 剑网3 com.seasun.jx3 方舟生存进化 com.studiowildcard.wardrumstudios.ark 使命召唤 com.activision.callofduty.warzone NBA 2k24 MyTEAM com.t2ksports.myteam 阿瑞斯:守护者崛起 com.kakaogames.ares roblox com.roblox.client Pokemon TCG Pocket jp.pokemon.pokemontcgp Asphalt Legends Unite com.gameloft.android.ANMP.GloftA9HM ASTRA: Knights of Veda com.hybeim.astra
  • 业务场景示例一 所有服务器需要预置公共文件,某些服务器需要预置特殊配置文件,处理不同业务。 例如:1.txt、2.txt为公共配置文件,需要预置到所有服务器的云手机中。同时需要预置特定配置文件a.txt,仅对服务器组A生效;特定配置文件b.txt,仅对服务器组B生效。 此时需将1.txt、2.txt打包,并以com.cph.config为包名推送到所有服务器; 将a.txt单独打包,并以com.cph.config.level1为包名推送到服务器组A的服务器; 将b.txt单独打包,并以com.cph.config.level1为包名推送到服务器组B的服务器; 如果需要更新1.txt、2.txt,则更新该文件后重新打包,并以com.cph.config为包名推送的服务器。 如果需要更新a.txt/b.txt,则更新该文件后重新打包,并以com.cph.config.level1为包名推送到对应服务器。
  • 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/batch-storageHeader:Content-Type: application/jsonX-Auth-Token: ${token}Body:{ "storage_infos": [{ "phone_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "include_files": [ "/data/app/${package_name}-*", "/data/data/${package_name}", "/data/media/0/Android/data/${package_name}" ], "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar" }]} 其中, CPH Endpoint、project_id、${token}、bucket_name、object_path等参数可以参考为单台云手机安装应用章节的说明获取。 phone_id为安装了对应应用的云手机ID。 include_files中的三个元素需要填写手机中的绝对路径。 如果该安装包为xapk类型,则需要在include_files中增加“/data/media/obb/${package_name}”路径。 object_path为tar包上传至OBS桶的目标路径。 object_path中apk为obs桶中已存在文件夹,${package_name}为当前应用的包名,${version_name}为当前应用的版本号,版本号可自行定义。 针对共享应用场景,部分应用在启动后,会进行资源文件的在线下载。对于此类应用,在执行当前操作前,建议先启动一次应用,待资源文件和补丁包下载完成后,再执行当前操作。后续以共享应用的方式安装到云手机后,该应用的启动过程可省去资源文件下载的过程。
  • 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commandsHeader:Content-Type: application/jsonX-Auth-Token: ${token}Body:{ "command": "install", "content": "-t -r obs://{bucket_name}/{object_path}", "phone_ids": [ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ]} 其中, CPH Endpoint、project_id、${token}等参数取值可以参考获取云手机列表章节的说明获取。 bucket_name为 对象存储服务 OBS的桶名,object_path为apk安装包的存放路径。 phone_ids为需要安装应用的云手机ID(通过获取云手机列表获得,可以填多个,填多个则为多台云手机安装apk应用)。
  • 接口使用示例 POST https://cph.cn-east-3.myhuaweicloud.com/v1/081ceeb7fb800f0c2f4cc004bb39c2f7/cloud-phone/phones/commands Content-Type: application/jsonX-Auth-Token: ${token}{ "command": "install", "content": "-t -r obs://yzw-apk-install/apk/com.hermes.bgame.apk", "phone_ids": [ "bdc2f2e960164dd9a2765374afeea300" ] } yzw-apk-install为OBS桶名,apk/com.hermes.bgame.apk为安装包存放路径,obs://yzw-apk-install/apk/com.hermes.bgame.apk为安装包全路径。 ${token}需要换成实际获取到的token值。
  • 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/batch-storageHeader:Content-Type: application/jsonX-Auth-Token: ${token}Body:{ "storage_infos": [{ "phone_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "include_files": [ "/data/app/${package_name}-*", "/data/data/${package_name}", "/data/media/0/Android/data/${package_name}" ], "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar" }]} 其中, CPH Endpoint、project_id、${token}、bucket_name、object_path等参数可以参考为单台云手机安装应用章节的说明获取。 phone_id为安装了对应应用的云手机ID。 include_files中的三个元素需要填写手机中的绝对路径。 如果该安装包为xapk类型,则需要在include_files中增加“/data/media/obb/${package_name}”路径。 object_path为tar包上传至OBS桶的目标路径。 object_path中apk为obs桶中已存在文件夹,${package_name}为当前应用的包名,${version_name}为当前应用的版本号,版本号可自行定义。 针对共享应用场景,部分应用在启动后,会进行资源文件的在线下载。对于此类应用,在执行当前操作前,建议先启动一次应用,待资源文件和补丁包下载完成后,再执行当前操作。后续以共享应用的方式安装到云手机后,该应用的启动过程可省去资源文件下载的过程。
  • 配置云手机服务器国内流量分流(可选) 参考以上“操作步骤”第6步,在国内云手机所在Region,购买EIP、公网NAT网关,并配置好SNAT规则。此处有一个差异,不需要配置路由表目的地址0.0.0.0/0到NAT网关。 参考以上“操作步骤”第2、3步,进入云手机服务器详情页面,找到“路由表”。 单击路由表名称,进入路由表页面,单击“添加路由”。 在弹出的对话框中,目的地址输入需要分流到国内的IP地址或网段,下一跳类型选择“NAT网关”,下一跳选择第1步购买的公网NAT网关,然后确定。 如果有其它IP地址或网段需要分流,重复第4步添加。
  • 存储1.0机器 推送tar包至服务器,即将文件“apk/${package_name}_${version_name}.tar”推送到服务器(${server_id1}和${server_id2})的共享存储中。 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/share-filesHeader: Content-Type: application/json X-Auth-Token: ${token} Body: { "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar", "server_ids": [ "${server_id1}", "${server_id2}" ]} 其中, CPH Endpoint、project_id、${token}、bucket_name、object_path等参数可以参考4.2 为单台云手机安装应用的说明获取。 object_path为tar包上传的目的路径。 package_name为当前应用的包名,version_name为当前应用的版本号。 apk为任意已存在文件夹,${package_name}_${version_name}.tar中除.tar后缀外,其余内容需根据实际名称来修改。 server_ids为部署应用版本的目标服务器ID列表,可以填写多个,服务器ID可通过“查询云手机服务器列表”接口获得。 使用示例 参考《云手机服务器API参考》的“推送共享存储文件”章节。 后续操作 参考《云手机服务器API参考》“重置云手机”接口,批量重置所有云手机。
  • 接口使用示例 POST https://cph.cn-east-3.myhuaweicloud.com/v1/081ceeb7fb800f0c2f4cc004bb39c2f7/cloud-phone/phones/commands Content-Type: application/jsonX-Auth-Token: ${token}{ "command": "install", "content": "-t -r obs://yzw-apk-install/apk/com.hermes.bgame.apk", "phone_ids": [ "bdc2f2e960164dd9a2765374afeea300" ] } yzw-apk-install为OBS桶名,apk/com.hermes.bgame.apk为安装包存放路径,obs://yzw-apk-install/apk/com.hermes.bgame.apk为安装包全路径。 ${token}需要换成实际获取到的token值。
  • 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commandsHeader:Content-Type: application/jsonX-Auth-Token: ${token}Body:{ "command": "install", "content": "-t -r obs://{bucket_name}/{object_path}", "phone_ids": [ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ]} 其中, CPH Endpoint、project_id、${token}等参数取值可以参考获取云手机列表章节的说明获取。 bucket_name为对象存储服务OBS的桶名,object_path为apk安装包的存放路径。 phone_ids为需要安装应用的云手机ID(通过获取云手机列表获得,可以填多个,填多个则为多台云手机安装apk应用)。
  • 存储2.0机器(推荐) 推送tar包至服务器,即将文件“apk/${package_name}_${version_name}.tar”推送到服务器(${server_id1}和${server_id2})的共享应用中。 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/share-appsHeader: Content-Type: application/json X-Auth-Token: ${token} Body: { “package_name”: “${package_name}” "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar", "server_ids": [ "${server_id1}", "${server_id2}" ]} 其中, CPH Endpoint、project_id、${token}、bucket_name、object_path等参数可以参考1.4.2-为单台云手机安装应用的说明获取。 package_name为应用在安卓系统中的包名,例如:com.miniteck.miniworld。 object_path为tar包上传的目的路径。 package_name为当前应用的包名,version_name为当前应用的版本号。 apk为任意已存在文件夹,${package_name}_${version_name}.tar中除.tar后缀外,其余内容需根据实际名称来修改。 server_ids为部署应用版本的目标服务器ID列表,可以填写多个,服务器ID可通过“查询云手机服务器列表”接口获得。 使用示例 参考《云手机服务器API参考》的“推送共享应用”章节。
  • 接口示例 GET https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones?phone_name={phone_name}&server_id={server_id}&status={status}&offset={offset}&limit={limit}&type={type}Header:Content-Type: application/jsonX-Auth-Token: ${token} 其中, CPH Endpoint为Endpoint列表中CPH对应区域的终端节点,如华北-北京四为cph.cn-north-4.myhuaweicloud.com。 project_id为云手游服务器所属区域对应的项目ID,如083e9f825e80f50c2f96c0045edc70e8。可通过如下方式获取: 登录管理控制台。 单击右上角用户名下的“我的凭证”。 在“API凭证”页面的项目列表中获取项目ID。 图1 获取项目ID URL中"?"之后的部分为可选参数。 $token为 获取Token 接口的响应结果。
  • 操作步骤 参考获取云手机列表,从列表中选定一台云手机,将需要打包的文件放入到该云手机的目标路径下。 例如:服务器上云手机需要在/data/local/huawei/、/data/local/tmp/路径下分别部署test.txt和test.sh文件。将test.txt、test.sh放入选定手机的/data/local/huawei/、/data/local/tmp/目录下。 将文件打包成配置文件tar包并上传到OBS桶。 调用示例: POST https://${CPH Endpoint}/v1/${project_id}/cloud-phone/phones/batch-storage Header: Content-Type: application/json X-Auth-Token: ${token} Body: { "storage_infos": [{ "phone_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "include_files": [ "/data/local/huawei/test.txt", "/data/local/tmp/test.sh" ], "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar" }] } 其中, include_files中的元素为需要打包的文件在云手机中的绝对路径。 object_path中${package_name}仅支持com.cph.config、com.cph.config.level1、com.cph.config.level2中的一种,${ version_name }用于识别配置包版本,可自行定义。 参考推送应用tar包至服务器共享空间,将配置文件tar包推送到目标云手机服务器。 调用示例: POST https://${CPH Endpoint}/v1/${projectId}/cloud-phone/phones/share-appsHeader: Content-Type: application/json X-Auth-Token: ${token} Body:{ "package_name": "${package_name}", "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar", "pre_install_app": 1, "server_ids": [ "${server_id1}", "${server_id2}" ] } 推送时需将"pre_install_app"参数设置为1。 重置或重启云手机,自动部署配置文件包中的文件到云手机对应位置。 配置文件包部署到云手机会占用云手机存储空间,建议配置文件不要过大。 建议仅使用一个配置文件包完成业务部署,将所需的文件都打包在com.cph.config包中,并且文件放置在云手机固定目录,方便文件统一管理。 如果当前支持的三个配置文件包均需预置,云手机在重置或重启时,会按照com.cph.config、com.cph.config.level1、com.cph.config.level2的顺序依次部署,如果有相同文件,则会依次覆盖。