• 沒有找到結果。

2.2.1 获取云手机列表

参考《云手机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={typ e}Header:

Content-Type: application/json X-Auth-Token: $token

其中,

● CPH Endpoint为Endpoint列表中CPH对应区域的终端节点,如华北-北京四为 cph.cn-north-4.myhuaweicloud.com。

● project_id为云手游服务器所属区域对应的项目ID,如

083e9f825e80f50c2f96c0045edc70e8。可通过如下方式获取:

a. 登录管理控制台。

b. 单击右上角用户名下的“我的凭证”。

c. 在“API凭证”页面的项目列表中获取项目ID。

2-1 获取项目 ID

● URL中"?"之后的部分为可选参数。

● $token为获取token接口的响应结果。

接口使用示例

GET https://cph.cn-north-4.myhuaweicloud.com/v1/083e9f825e80f50c2f96c0045edc70e8/cloud-phone/

phones Header:

Content-Type: application/json X-Auth-Token: $token

说明

$token需要换成实际获取到的token值;此处未指定phone_name、server_id等参数信息。

2.2.2 为单台云手机安装应用

参考《云手机API参考》的“安装apk”章节为单台云手机安装应用。

前提条件

● 云手游服务器所在Region的OBS桶中已经存放好对应的APK安装包。否则,需要 上传安装包,可参考https://support.huaweicloud.com/qs-obs/

obs_qs_0002.html进行上传。

● 确保已经配置好OBS桶的授权策略,具体操作请参考读取OBS桶数据资源章节。

接口示例

POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commands Header:

Content-Type: application/json X-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/json X-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为游戏安装包全路径。

最佳实践 2 云手游接入最佳实践

● $token需要换成实际获取到的token值。

2.2.3 生成应用版本 tar 包并推至 OBS 桶

前提条件

● 需确保云手机已安装对应的应用。

● 确保已配置好OBS桶的授权策略,具体操作请参考向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": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "include_files": [

"bucket_name": "${bucket_name}",

"object_path": "apk/${package_name}_${version_name}.tar"

}]

}

其中,

● CPH Endpoint、project_id、$token、bucket_name、object_path等参数可以参 考为单台云手机安装应用章节的说明获取。

● package_name为当前应用的包名,version_name为当前应用的版本号(可自定 义)。

● object_path为游戏tar包上传的目的路径(注意:apk为任意已存在文件夹,$

{package_name}_${version_name}.tar中除.tar后缀外,其余内容需根据实际名称 来修改)。

● 如上示例中,include_files的四个元素为固定路径。

● 如果该游戏的安装包为xapk类型,则需要在include_files中增加“/data/

media/obb/${package_name}”路径。

● phone_id为安装了对应游戏的云手机ID。

2.2.4 部署应用

推送tar包至服务器,即将文件“apk/${package_name}_${version_name}.tar”推送 到服务器(${server_id1}和${server_id2})的共享存储中。

接口示例

POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/share-files Header:

Content-Type: application/json X-Auth-Token: $token Body:

{ "bucket_name":${bucket_name},

"object_path": "apk/${package_name}_${version_name}.tar",

● CPH Endpoint、project_id、$token、bucket_name、object_path等参数可以参 考4.2 为单台云手机安装应用的说明获取。

● package_name为当前应用的包名,version_name为当前应用的版本号(可自定 义)。

● object_path为游戏tar包上传的目的路径。

说明

apk为任意已存在文件夹,${package_name}_${version_name}.tar中除.tar后缀外,其余 内容需根据实际名称来修改。

● server_ids为部署应用版本的目标服务器ID列表,可以填写多个,服务器ID可通过

“查询云手机服务器列表”接口获得。

POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/share-files Header:

Content-Type: application/json X-Auth-Token: ${token}

Body:

{ "file_paths": [

"/data/app/${package_name}-1", "/data/app/${package_name}-2", "/data/data/${package_name}",

"/data/media/0/Android/data/${package_name}"

], 含:"/data/app/${package_name}-1", "/data/app/${package_name}-2", "/

data/data/${package_name}", "/data/media/0/Android/data/$

{package_name}"。

其中,

最佳实践 2 云手游接入最佳实践

– CPH Endpoint、project_id、$token等参数可以参考为单台云手机安装应用 的说明获取。

– file_paths的内容等同于生成应用版本tar包并推至OBS桶中的include_files,

其中package_name为当前应用的包名。

– server_ids为部署应用版本的目标服务器ID列表,可以填写多个,服务器ID可通 过“查询云手机服务器列表”接口获得。

为了方便用户快速开发云手游业务,我们推出了云手游SDK(Software Development Kit)。SDK是对云手游服务提供的API接口的封装,以简化用户的开发工作。直接调用 云手游SDK提供的接口函数即可实现接入云游戏的目的。

Android SDK提供aar包和jar包两种接入方式:

● aar包接入:在jar包接入的基础上,SDK中集成了云游戏运行所需的Activity,

Activity的生命周期在SDK中维护。

● jar包接入:SDK提供云游戏接入的基础能力,客户实现activity或fragment,启动 游戏时将承载云游戏渲染画面的viewgroup传入SDK。

import com.huawei.cloudappsdk.manager.CloudAppManager;

在调用接口前设置ApplicationContext:

CloudAppManager.defaultManager().setApplicationContext(getApplicationContex t());

使用 JAR SDK

在调用SDK接口的类文件中导入:

import com.huawei.cloudgame.api.CloudGameManager;

import com.huawei.cloudgame.api.ICloudGame;

相關文件