
# 安装apk - InstallApk
#### 功能介绍
在云手机中安装apk。系统会将指定的apk文件下载后直接安装到云手机中。
支持安装单apk应用和多apk应用。可使用install命令安装单apk应用，一次只支持安装一个apk，只能传一个apk；可使用install-multiple命令安装多apk应用（多apk应用为单个应用拆分成多个apk），一次只支持同一个应用的多个apk。该接口为异步接口。接口调用前请先确保已完成CPH服务操作OBS桶的委托授权。委托CPH操作OBS桶请参见[委托CPH操作OBS桶](https://support.huaweicloud.com/bestpractice-cph/cph_bp_0050.html)。
- 管理面性能有限，对相同服务器批量执行的ADB命令，将会阻塞云手机其他任务执行。
  
- 允许安装的apk大小限制为2G（即不可将obs桶内大于2G的apk安装到手机中），超过限制将返回错误。
  
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CPH/doc?api=InstallApk)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cph/cph_api_06000.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
POST /v1/{project_id}/cloud-phone/phones/commands
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目id。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数         | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| command    | 是    | String           | 安装单apk场景填写install，多apk场景填写install-multiple。                                                                                                                                                                              |
| content    | 是    | String           | 指定OBS桶中的apk文件（需要提前上传到指定桶中）。 只支持大小写字母、数字、下划线（_）、点（.）、斜线（/）、冒号（:）、中划线（-）。推送的文件只支持apk文件类型。 单apk场景，只能传一个apk，最大长度为1024字节；多apk场景，最多传50个apk，中间用空格分开，最大长度8100字节。 |
| phone_ids  | 否    | Array of strings | 云手机ID列表。 server_ids参数不存在时必选，同时存在只处理phone_ids。                                                                                                                                            |
| server_ids | 否    | Array of strings | 云手机服务器ID列表。 phone_ids参数不存在时必选，同时存在只处理phone_ids。                                                                                                                                          |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                          | 描述         |
|:---|:---|:---|
| request_id | String                                                        | 请求的唯一标识ID。 |
| jobs       | Array of [PhoneJob] objects | 任务列表。      |
   
 表5PhoneJob 
| 参数         | 参数类型   | 描述                       |
|:---|:---|:---|
| phone_id   | String | 云手机的唯一标识ID，云手机相关任务包含此字段。 |
| job_id     | String | 任务的唯一标识。                 |
| error_code | String | 错误码。                     |
| error_msg  | String | 错误说明。                    |
   
#### 请求示例
- 在云手机中安装apk
  ```
  POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commands
  {
    "command" : "install",
    "content" : "-t -r obs://push-bucket/my_apps/test.apk",
    "phone_ids" : [ "1234567b8bab40ffb711234cb80d0234", "1678567b8bab40f93711234cb80d0764" ]
  }
  ```
  
- 在云手机中安装多apk
  ```
  POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commands
  {
    "command" : "install-multiple",
    "content" : "-t -r obs://push-bucket/my_apps/test_part1.apk obs://push-bucket/my_apps/test_part_2.apk obs://push-bucket/my_apps/test_part3.apk",
    "phone_ids" : [ "1234567b8bab40ffb711234cb80d0234", "1678567b8bab40f93711234cb80d0764" ]
  }
  ```
  
 
#### 响应示例
**状态码：200**
OK
```
{
  "request_id" : "6837531fd3f54550927b930180a706bf",
  "jobs" : [ {
    "phone_id" : "1234567b8bab40ffb711234cb80d0234",
    "job_id" : "1564567b8bab40f34711234cb80d0123"
  }, {
    "phone_id" : "1678567b8bab40f93711234cb80d0764",
    "job_id" : "1564567b8bab40f34711234cb80d5678"
  } ]
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-cph/ErrorCode.html)。
