提交 adac20f8 编写于 作者: Z zengyawen

update application-models

Signed-off-by: Nzengyawen <zengyawen1@huawei.com>
上级 3c8b7696
# 工具
- [aa工具](aa-tool.md)
- [bm工具](bm-tool.md)
- 打包拆包工具
- [打包工具](packing-tool.md)
- [拆包工具](unpacking-tool.md)
- [cem工具](cem-tool.md)
- [anm工具](anm-tool.md)
# aa工具
Ability assistant(Ability助手,简称为aa),是实现应用及测试用例启动功能的工具,为开发者提供基本的应用调试和测试的能力。通过该工具,开发者可以在hdc shell中,发送命令以执行各种系统操作,例如启动应用组件、强制停止进程、打印应用组件相关信息等。
- help
用于显示aa相关的帮助信息。
返回值:
返回对应的帮助信息。
使用方法:
```bash
aa help
```
- start
用于启动一个应用组件,目标组件可以是FA模型的PageAbility和ServiceAbility组件,也可以是Stage模型的UIAbility和ServiceExtensionAbility组件,且目标组件相应配置文件中的visible标签不能配置为false。
| 参数 | 参数说明 |
| -------- | -------- |
| -h/--help | 帮助信息。 |
| -d | 可选参数,deviceId。 |
| -a | 必选参数,abilityName。 |
| -b | 必选参数,bundleName。 |
| -D | 可选参数,调试模式。 |
返回值:
当启动成功时,返回"start ability successfully.";当启动失败时,返回"error: failed to start ability.",同时会包含相应的失败信息。
使用方法:
```bash
aa start [-d <deviceId>] -a <abilityName> -b <bundleName> [-D]
```
- stop-service
用于停止ServiceAbility。
| 参数 | 参数说明 |
| -------- | -------- |
| -h/--help | 帮助信息。 |
| -d | 可选参数,deviceId。 |
| -a | 必选参数,abilityName。 |
| -b | 必选参数,bundleName。 |
返回值:
当成功停止ServiceAbility时,返回"stop service ability successfully.";当停止失败时,返回"error: failed to stop service ability."。
使用方法:
```bash
aa stop-service [-d <deviceId>] -a <abilityName> -b <bundleName>
```
- dump
用于打印应用组件的相关信息。
| 参数 | 二级参数 | 参数说明 |
| -------- | -------- | -------- |
| -h/--help | - | 帮助信息。 |
| -a/--all | - | 打印所有mission内的应用组件信息。 |
| -l/--mission-list | type(缺省打印全部) | 打印任务栈信息。<br/>可取值:<br/>-&nbsp;NORMAL<br/>-&nbsp;DEFAULT_STANDARD<br/>-&nbsp;DEFAULT_SINGLE<br/>-&nbsp;LAUNCHER |
| -e/--extension | elementName | 打印扩展组件信息。 |
| -u/--userId | UserId | 打印指定UserId的栈信息,需要和其他参数组合使用,例如aa&nbsp;dump&nbsp;-a&nbsp;-u&nbsp;100、aa&nbsp;dump&nbsp;-d&nbsp;-u&nbsp;100。 |
| -d/--data | - | 打印DataAbility相关信息。 |
| -i/--ability | AbilityRecord&nbsp;ID | 打印指定应用组件详细信息。 |
| -c/--client | - | 打印应用组件详细信息,需要和其他参数组合使用,例如aa&nbsp;dump&nbsp;-a&nbsp;-c、aa&nbsp;dump&nbsp;-i&nbsp;21&nbsp;-c。 |
使用方法:
```bash
aa dump -a
```
![aa-dump-a](figures/aa-dump-a.png)
```bash
aa dump -l
```
![aa-dump-l](figures/aa-dump-l.png)
```bash
aa dump -i 12
```
![aa-dump-i](figures/aa-dump-i.png)
- force-stop
通过bundleName强制停止一个进程。
返回值:
当成功强制停止该进程时,返回"force stop process successfully.";当强制停止失败时,返回"error: failed to force stop process."。
使用方法:
```bash
aa force-stop <bundleName>
```
# anm工具
Advanced Notification Manager(通知管理工具,简称anm)是实现通知打印、设置通知参数等功能的工具,为开发者提供基本的通知调试和测试能力。通过该工具,开发者可以在hdc shell中,发送命令以执行各种系统操作,例如打印已发布通知详细信息、设置通知缓存个数、使能通知等。
### help
* 介绍
打印帮助信息。
* 用法
```
anm help
```
### dump
* 介绍
打印通知相关信息。
* 用法
```
anm dump [<options>]
```
参数如下表所示
| 参数 | 参数说明 |
| ---------------- | -------------------------------- |
| -A/--active | 打印所有活跃的通知信息 |
| -R/--recent | 打印最近的通知信息 |
| -D/--distributed | 打印来自其他设备的分布式通知信息 |
| -b/--bundle | 可选参数,设置指定的包名打印 |
| -u/--user-id | 可选参数,设置指定的用户ID打印 |
| -h/--help | 帮助信息 |
* 示例
```
anm dump -A
```
打印活跃的通知信息。
![anm-dump-A](figures/anm-dump-A.png)
### Setting
* 介绍
设置通知参数。
* 用法
```
anm setting [<options>]
```
参数如下表所示
| 参数 | 参数说明 |
| ------------------------ | ------------------------------------ |
| -c/--recent-count | 设置保存在内存中的最近通知的最大个数 |
| -e/--enable-notification | 设置通知使能开关 |
| -h/--help | 帮助信息 |
* 示例
```
anm setting -c 100
```
设置保存在内存中的最近通知的最大数为100个。
\ No newline at end of file
# bm工具
Bundle Manager(包管理工具,简称bm)是实现应用安装、卸载、更新、查询等功能的工具,bm为开发者提供基本的应用安装包的调试能力,开发者可以在hdc shell中,执行bm命令以触发各种系统操作,例如:安装应用,卸载应用,查询安装包信息等。
**表1** bm工具命令列表
| 命令 | 描述 |
| -------- | -------- |
| help | 帮助命令,显示bm支持的命令信息 |
| install | 安装命令,用来安装应用 |
| uninstall | 卸载命令,用来卸载应用 |
| dump | 查询命令,用来查询应用的相关信息 |
| clean | 清理命令,用来清理应用的缓存和数据 |
| enable | 使能命令,用来使能应用,使能后应用可以继续使用 |
| disable | 禁用命令,用来禁用应用,禁用后应用无法使用 |
| get | 获取udid命令,用来获取设备的udid |
| quickfix | 快速修复相关命令,用来执行补丁相关操作,如补丁安装、补丁查询 |
## 帮助命令
**表2** help命令列表
| 命令 | 描述 |
| -------- | -------- |
| bm&nbsp;help | 显示bm工具的能够支持的命令信息 |
示例:
```bash
# 显示帮助信息
bm help
```
## 安装命令
```bash
bm install [-h] [-p path] [-u userId] [-r] [-w waitting-time]
```
**表3** 安装命令列表
| 命令 | 是否必选 | 描述 |
| -------- | -------- | -------- |
| -h | 否,默认输出帮助信息 | 显示install支持的命令信息 |
| -p | 是 | 安装HAP包路径,支持指定路径和多个HAP同时安装 |
| -u | 否,默认安装到当前所有用户上 | 给指定用户安装一个HAP包 |
| -r | 否,默认值为覆盖安装 | 覆盖安装一个HAP包 |
| -w | 否,默认等待5s | 安装HAP包时指定bm工具等待时间,最小的等待时长为5s,最大的等待时长为600s,&nbsp;默认缺省为5s |
示例:
```bash
bm install -p /data/app/ohosapp.hap -u 100 -w 5s -r
// 执行结果
install bundle successfully.
```
## 卸载命令
```bash
bm uninstall [-h help] [-n bundleName] [-m moduleName] [-u userId] [-k]
```
**表4** 卸载命令列表
| 命令 | 是否必选 | 描述 |
| -------- | -------- | -------- |
| -h | 否,默认输出帮助信息 | 显示uninstall支持的命令信息 |
| -n | 是 | 指定包名卸载应用 |
| -m | 否,默认卸载所有模块 | 指定卸载应用的一个模块 |
| -u | 否,默认卸载当前所有用户下该应用 | 指定用户卸载应用 |
| -k | 否,默认卸载应用时不保存应用数据 | 卸载应用时保存应用数据 |
示例:
```bash
bm uninstall -n com.ohos.app -m com.ohos.app.MainAbility -u 100 -k
// 执行结果
uninstall bundle successfully.
```
## 查询命令
```bash
bm dump [-h help] [-a] [-n bundleName] [-s shortcutInfo] [-u userId] [-d deviceId]
```
注:-u未指定情况下,默认为所有用户。
**表5** 查询命令列表
| 命令 | 是否必选 | 描述 |
| -------- | -------- | -------- |
| -h | 否,默认输出帮助信息 | 显示dump支持的命令信息 |
| -a | 是 | 查询系统已经安装的所有应用 |
| -n | 是 | 查询指定包名的详细信息 |
| -s | 是 | 查询指定包名下的快捷方式信息 |
| -d | 否,默认查询当前设备 | 查询指定设备中的包信息 |
| -u | 否,默认查询当前设备上的所有用户 | 查询指定用户下指定包名的详细信息 |
示例:
```bash
# 显示所有已安装的包名
bm dump -a
# 查询该应用的详细信息
bm dump -n com.ohos.app -u 100
# 查询该应用的快捷方式信息
bm dump -s com.ohos.app -u 100
# 查询跨设备应用信息
bm dump -n com.ohos.app -d xxxxx
```
## 清理命令
```bash
bm clean [-h] [-c] [-n bundleName] [-d] [-u userId]
```
注:-u未指定情况下,默认为当前活跃用户。
**表6** 清理命令列表
| 命令 | 描述 |
| -------- | -------- |
| -h | 显示clean支持的命令信息 |
| -c&nbsp;-n | 清除指定包名的缓存数据 |
| -d&nbsp;-n | 清除指定包名的数据目录 |
| -u | 清除指定用户下包名的缓存数据 |
示例:
```bash
# 清理该应用下的缓存数据
bm clean -c -n com.ohos.app -u 100
// 执行结果
clean bundle cache files successfully.
# 清理该应用下的用户数据
bm clean -d -n com.ohos.app -u 100
// 执行结果
clean bundle data files successfully.
```
## 使能命令
```bash
bm enable [-h] [-n bundleName] [-a abilityName] [-u userId]
```
注:-u未指定情况下,默认为当前活跃用户。
**表7** 使能命令列表
| 命令 | 描述 |
| -------- | -------- |
| -h | 显示enable支持的命令信息 |
| -n | 使能指定包名的应用 |
| -a | 使能指定包名下的元能力模块 |
| -u | 使能指定用户和包名的应用 |
示例:
```bash
# 使能该应用
bm enable -n com.ohos.app -a com.ohos.app.MainAbility -u 100
// 执行结果
enable bundle successfully.
```
## 禁用命令
```bash
bm disable [-h] [-n bundleName] [-a abilityName] [-u userId]
```
注:-u未指定情况下,默认为当前活跃用户。
**表8** 禁用命令列表
| 命令 | 描述 |
| -------- | -------- |
| -h | 显示disable支持的命令信息 |
| -n | 禁用指定包名的应用 |
| -a | 禁用指定包名下的元能力模块 |
| -u | 禁用指定用户和包名下的应用 |
示例:
```bash
# 禁用该应用
bm disable -n com.ohos.app -a com.ohos.app.MainAbility -u 100
// 执行结果
disable bundle successfully.
```
## 获取udid
```bash
bm get [-h] [-u]
```
**表9** 获取udid命令列表
| 命令 | 描述 |
| -------- | -------- |
| -h | 显示get支持的命令信息 |
| -u | 获取设备的udid |
示例:
```bash
# 获取设备的udid
bm get -u
// 执行结果
udid of current device is :
23CADE0C
```
## 快速修复
```bash
bm quickfix [-h] [-a -f filePath] [-q -b bundleName]
```
**表10** 快速修复命令列表
| 命令 | 描述 |
| -------- | -------- |
| -h | 显示quickfix支持的命令信息 |
| -a&nbsp;-f | 执行快速修复补丁安装命令,file-path对应hqf文件,支持传递1个或多个hqf文件,或传递hqf文件所在的目录。 |
| -q&nbsp;-b | 根据包名查询补丁信息,bundle-name对应包名。 |
示例:
```bash
# 根据包名查询补丁包信息
bm quickfix -q -b com.ohos.app
// 执行结果
// Information as follows:
// ApplicationQuickFixInfo:
// bundle name: com.ohos.app
// bundle version code: xxx
// bundle version name: xxx
// patch version code: x
// patch version name:
// cpu abi:
// native library path:
// type:
# 快速修复补丁安装
bm quickfix -a -f /data/app/
//执行结果
apply quickfix succeed.
```
# cem工具
Common Event Manager(公共事件管理工具, 简称cem)是实现公共事件信息打印、发布公共事件等功能的工具,为开发者提供基本的公共事件调试和测试能力。通过该工具,开发者可以在hdc shell中,发送命令执行各种系统操作,例如打印所有公共事件订阅者、已发送公共事件和接受者、模拟发布公共事件等。
## cem调试助手
### help
* 介绍
打印帮助信息。
* 用法
```
cem help
```
### publish
* 介绍
发布公共事件。
* 用法
```
cem publish [<options>]
```
参数如下表所示
| 参数 | 参数说明 |
| ------------ | ------------------------------------------ |
| -e/--event | 必选参数,发布事件名称 |
| -s/--sticky | 可选参数,发布粘性事件,默认发布非粘性事件 |
| -o/--ordered | 可选参数,发布有序事件,默认发布无序事件 |
| -c/--code | 可选参数,公共事件结果码 |
| -d/--data | 可选参数,公共事件携带数据 |
| -h/--help | 帮助信息 |
* 示例
```
cem publish --event "testevent"
```
发布名称为testevent的公共事件
![cem-publish-event](figures/cem-publish-event.png)
```
cem publish -e "testevent" -s -o -c 100 -d "this is data"
```
发布名称为testevent的粘性有序公共事件,该事件的结果码为100,携带数据内容为“this is data”
![cem-publish-all](figures/cem-publish-all.png)
### dump
* 介绍
打印公共事件相关信息。
* 用法
```
cem dump [<options>]
```
参数如下表所示
| 参数 | 参数说明 |
| ---------- | -------------------------------------------- |
| -a/--all | 打印开机以来所有已发送的公共事件及其具体信息 |
| -e/--event | 查询特定名称事件的具体信息 |
| -h/--help | 帮助信息 |
* 示例
```
cem dump -e "testevent"
```
​ 打印公共事件名称为testevent的具体信息。
​ ![cem-dump-e](figures/cem-dump-e.png)
# 打包工具
打包工具是OpenHarmony提供的一种调测工具,支持通过命令行的方式生成HAP、将多个HAP打包为App Pack(Application Package),或将多个HAP和App Pack打包为App Pack。App Pack为应用市场上架时所需的包格式。
打包所用的app_packing_tool.jar,可以在本地下载的OpenHarmony的SDK库中找到。
- 打包为HAP
Stage模型打包命令如下:
```bash
java -jar app_packing_tool.jar --mode <option> --json-path <option> --resources-path <option> --ets-path <option> --index-path <option> --pack-info-path <option> --out-path <option> --force <option>
```
FA模型打包命令如下:
```bash
java -jar app_packing_tool.jar --mode <option> --json-path <option> --maple-so-path <option> --profile-path <option> --maple-so-dir <option> --dex-path <option> --lib-path <option> --resources-path <option> --index-path <option> --out-path <option> --force <option>
```
命令参数含义及规范请见下表。
| 指令 | 是否必选项 | 描述 |
| -------- | -------- | -------- |
| --mode | 是 | 打包类型,此处为hap。 |
| --json-path | 是 | .json文件路径,FA模型文件名必须为config.json;stage模型文件名必须为module.json5。 |
| --profile-path | 否 | CAPABILITY.profile文件路径 |
| --maple-so-path | 否 | maple&nbsp;so文件输入路径,so文件路径,文件名必须以.so为后缀。如果是多个so需要用","分隔。 |
| --maple-so-dir | 否 | maple&nbsp;so目录输入路径。 |
| --dex-path | 否 | 1.dex文件路径,文件名必须以.dex为后缀。如果是多个dex需要用","分隔。<br/>2.dex文件路径也可以为目录。 |
| --lib-path | 否 | lib库文件路径。 |
| --resources-path | 否 | resources资源包路径。 |
| --index-path | 否 | .index文件路径,文件名必须为resources.index。 |
| --pack-info-path | 否 | pack.info文件路径,文件名必须为pack.info。 |
| --rpcid-path | 否 | rpcid.sc文件路径,文件名必须为rpcid.sc。 |
| --js-path | 否 | 存放js文件目录路径,仅stage模型生效。 |
| --ets-path | 否 | 存放ets文件的目录路径,仅stage模型生效。 |
| --out-path | 是 | 目标文件路径,文件名必须以.hap为后缀。 |
| --force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
- 将多个HAP打包为APP包
命令如下:
```bash
java -jar app_packing_tool.jar --mode <option> --hap-path <option> --out-path <option> --signature-path <option> --certificate-path <option> --pack-info-path <option> --force <option>
```
命令参数含义及规范请见下表。
| 指令 | 是否必选项 | 描述 |
| -------- | -------- | -------- |
| --mode | 是 | 打包类型,此处为app。在将多个HAP打入同一个app时,需保证每个HAP的versionCode、versionName字段相同。 |
| --hap-path | 是 | 1.HAP文件路径,文件名必须以.hap为后缀。如果是多个HAP需要用","分隔。<br/>2.HAP文件路径也可以是目录。 |
| --pack-info-path | 是 | 文件名必须为pack.info。 |
| --out-path | 是 | 目标文件路径,文件名必须以.app为后缀。 |
| --signature-path | 否 | 签名路径。 |
| --certificate-path | 否 | 证书路径,请参见[签名指导](../security/hapsigntool-guidelines.md)。 |
| --force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
- 多个HAP或者多个APP打包为APP包
命令如下:
```bash
java -jar app_packing_tool.jar --mode <option> --hap-list <option> --app-list <option> --out-path <option>
```
命令参数含义及规范请见下表。
| 指令 | 是否必选项 | 描述 |
| -------- | -------- | -------- |
| --mode | 是 | 打包类型,此处为multiApp。在将多个HAP打入同一个APP时,需保证每个HAP满足合法性校验规则。 |
| --hap-list | 否 | 1.HAP文件路径,文件名必须以.hap为后缀。如果是多个HAP需要用","分隔。<br/>2.HAP文件路径也可以是目录。 |
| --app-list | 否 | 1.APP文件路径,文件名必须以.app为后缀。如果是多个APP包需要用","分隔。<br/>2.APP文件路径也可以是目录。<br/>3.--hap-list命令与--app-list不可以都不传。 |
| --out-path | 是 | 目标文件路径,文件名必须以.app为后缀。 |
| --force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
多工程打包HAP合法性校验规则:
- 需保证被打包的每个HAP在配置文件(请参见"[FA模型配置文件](../application-models/application-component-configuration-fa.md)"或 "[Stage模型配置文件](../application-models/application-component-configuration-stage.md)")中配置的bundleName、versionCode、versionName、minCompatibleVersionCode、minAPIVersion, targetAPIVersion , apiReleaseType等字段相同。
- 每个HAP的moduleName唯一,同一设备Entry类型的HAP唯一。
- 对于FA模型,还需要保证json文件中配置的package唯一。
# 拆包工具
拆包工具是OpenHarmony提供的一种调测工具,支持通过命令行方式将HAP拆分为文件夹或者将App Pack(Application Package)拆分为HAP。
拆包所用的app_unpacking_tool.jar,可以在本地下载的OpenHarmony的SDK库中找到。
- HAP拆包命令
```bash
java -jar app_unpacking_tool.jar --mode <option> --hap-path <option> --out-path <option> --force <option>
```
命令参数含义及规范请见下表。
| 指令 | 是否必选项 | 描述 |
| -------- | -------- | -------- |
| --mode | 是 | 拆包类型,此处为hap。 |
| --hap-path | 是 | HAP路径。 |
| --rpcid | 否 | 是否单独将rpcid文件从HAP中提取到指定目录,如果为true,将仅提取rpcid文件,不对HAP进行拆包。 |
| --out-path | 是 | 拆包目标文件路径。 |
| --force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
- App包拆包命令
```bash
java -jar app_unpacking_tool.jar --mode <option> --app-path <option> --out-path <option> --force <option>
```
命令参数含义及规范请见下表。
| 指令 | 是否必选项 | 描述 |
| -------- | -------- | -------- |
| --mode | 是 | 拆包类型,此处为hap。 |
| --app-path | 是 | app包路径。 |
| --out-path | 是 | 拆包目标文件路径。 |
| --force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
- 从HAP中获取rpcid文件命令
```bash
java -jar app_unpacking_tool.jar --mode <option> --rpcid <option> --hap-path <option> --out-path <option> --force <option>
```
命令参数含义及规范请见下表。
| 指令 | 是否必选项 | 描述 |
| -------- | -------- | -------- |
| --mode | 是 | 拆包类型,此处为hap。 |
| --rpcid | 否 | 是否单独将rpcid文件从HAP中提取到指定目录,如果为true,将仅提取rpcid文件,不对HAP进行拆包。 |
| --out-path | 是 | 拆包rpcid目标文件路径。 |
| --hap-path | 是 | HAP路径。 |
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册