当前位置:主页 > 查看内容

将某台云手机内的APP共享安装至多台云手机_云手机 CPH_最佳实践

发布时间:2021-09-08 00:00| 位朋友查看

简介:在一台云手机内安装APP后,可以通过调用接口的方式将此APP共享安装至多台云手机,省去重复安装的时间。 假设这台安装了APP的云手机为种子云手机。 约束与限制 该方案仅适用于 非 qemu规格的云手机,即实例规格名称中 不包含 “qemu”字样。 图1 实例规格 种……

在一台云手机内安装APP后,可以通过调用接口的方式将此APP共享安装至多台云手机,省去重复安装的时间。

假设这台安装了APP的云手机为种子云手机。

约束与限制

  • 该方案仅适用于qemu规格的云手机,即实例规格名称中不包含“qemu”字样。
    图1 实例规格
  • 种子云手机必须为一台未进行过任何操作的云手机。如果云手机上存在历史操作,请重置云手机

操作步骤

  1. 登录管理控制台,选择“存储 > 对象存储服务 OBS”,参考“批量控制”创建一个用来存放文件的OBS桶,并为桶设置访问权限。

    注意:为了成功上传文件到桶,在创建桶策略时请更改“策略模式”为“读写模式”,如图2所示。

    图2 创建桶策略
  2. 使用ADB方式连接种子云手机,并为其安装需要的APP。

    详细指导请参考“如何在单台云手机中安装APP?”。

  3. 通过调用接口的方式,导出种子云手机数据并打包上传至步骤1中的OBS桶。

    curl命令如下:

    curl -i -k -X POST "https://${CPH Endpoint}/v1/${projectId}/cloud-phone/phones/batch-storage" -H "Content-Type: application/json" -H "X-Auth-Token: $token" -d '
    {
        "storage_infos": [
            {
                "phone_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                "include_files": [
                    "/data/app/${package-name}-1",
                    "/data/data/${package-name}",
                    "/data/media/0/Android/data/${package-name}"
                ],
                "bucket_name": "${bucket_name}",
                "object_path": "${your_dir}/${bucket_name}.tar"
            }
        ]
    }'

    其中,

    • phone_id为种子云手机的ID。
    • bucket_name为导出数据所存储的OBS桶名。
    • object_path为导出数据所存储的OBS路径。

    如果想全量打包云手机APP数据,必须要包含以下3个路径:

    • /data/app/${package-name}-1 注:${package-name}后面可能接的不是-1,需要根据云手机中的实际情况填写
    • /data/data/${package-name}
    • /data/media/0/Android/data/${package-name}

    示例:

    curl -i -k -X POST "https://${CPH Endpoint}/v1/${projectId}/cloud-phone/phones/batch-storage" -H "Content-Type: application/json" -H "X-Auth-Token: $token" -d '
    {
        "storage_infos": [
            {
                "phone_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                "include_files": [
                    "/data/app/com.taptap-1",
                    "/data/data/com.taptap",
                    "/data/media/0/Android/data/com.taptap"
                ],
                "bucket_name": "your-bucket-name",
                "object_path": "your/dir/taptap.tar"
            }
        ]
    }'
  4. 进入步骤1中的OBS桶,在“对象”中查看并确认步骤3中打包上传的文件是否已全部上传成功。确认成功后执行下一步。
  5. 通过调用接口的方式,将OBS桶内的文件推送至服务器的共享存储目录。

    curl命令示例如下:

    curl -i -k -X POST "https://${CPH Endpoint}/v1/${projectId}/cloud-phone/phones/ share-files" -H "Content-Type: application/json" -H "X-Auth-Token: $token" -d '
    {
        "bucket_name": "your-bucket-name", 
        "object_path": "your/dir/taptap.tar",
        "server_ids": ["1678567b8bab40f93711234cb8","1234567b8bab40ffb711234cb"]
    }'

    其中,

    • bucket_name、object_path分别对应步骤3中的内容。
    • server_ids为接受文件推送的服务器ID列表。指定多个服务器ID,可以实现多台服务器上的云手机均安装APP的诉求。

    该接口的更多说明,请参考“推送共享存储文件”。

  6. 进入云手机控制台,单击已接受文件推送的服务器名称,在“实例管理”中,勾选所有需要安装以上APP的云手机实例,单击“重置”。

    此步骤为重置,并非重启。

执行结果

重置成功后,所有云手机均已安装APP。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:通过SDK使用ECS实例 - 云服务器 ECS 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐