OpenHarmony应用开发- 调试工具
版本:v3.2 Release
打包工具
打包工具是OpenHarmony提供的一种调测工具,支持通过命令行的方式生成HAP、将多个HAP打包为App Pack(Application Package),或将多个HAP和App Pack打包为App Pack。App Pack为应用市场上架时所需的包格式。
打包所用的app_packing_tool.jar,可以在本地下载的OpenHarmony的SDK库中找到。
- 打包为HAP Stage模型打包命令如下:
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模型打包命令如下:
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 so文件输入路径,so文件路径,文件名必须以.so为后缀。如果是多个so需要用","分隔。 |
–maple-so-dir | 否 | maple so目录输入路径。 |
–dex-path | 否 | 1.dex文件路径,文件名必须以.dex为后缀。如果是多个dex需要用","分隔。 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包 命令如下:
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需要用","分隔。 2.HAP文件路径也可以是目录。 |
–pack-info-path | 是 | 文件名必须为pack.info。 |
–out-path | 是 | 目标文件路径,文件名必须以.app为后缀。 |
–signature-path | 否 | 签名路径。 |
–certificate-path | 否 | 证书路径,请参见签名指导。 |
–force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
- 多个HAP或者多个APP打包为APP包 命令如下:
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需要用","分隔。 2.HAP文件路径也可以是目录。 |
–app-list | 否 | 1.APP文件路径,文件名必须以.app为后缀。如果是多个APP包需要用","分隔。 2.APP文件路径也可以是目录。 3.–hap-list命令与–app-list不可以都不传。 |
–out-path | 是 | 目标文件路径,文件名必须以.app为后缀。 |
–force | 否 | 默认值为false,如果为true,表示当目标文件存在时,强制删除。 |
多工程打包HAP合法性校验规则:
○ 需保证被打包的每个HAP在配置文件(请参见"FA模型配置文件"或 “Stage模型配置文件”)中配置的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拆包命令
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包拆包命令
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文件命令
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路径。 |
cem工具
Common Event Manager(公共事件管理工具, 简称cem)是实现公共事件信息打印、发布公共事件等功能的工具,为开发者提供基本的公共事件调试和测试能力,例如打印所有公共事件订阅者、已发送公共事件和接受者、模拟发布公共事件等。
说明:
在使用本工具前,开发者需要先获取hdc工具,执行hdc shell。
cem调试助手
help
- 介绍
打印帮助信息。 - 用法
cem help
publish
- 介绍
发布公共事件。 - 用法
cem publish [<options>]
参数如下表所示
参数 | 参数说明 |
-e/–event | 必选参数,发布事件名称 |
-s/–sticky | 可选参数,发布粘性事件,默认发布非粘性事件 |
-o/–ordered | 可选参数,发布有序事件,默认发布无序事件 |
-c/–code | 可选参数,公共事件结果码 |
-d/–data | 可选参数,公共事件携带数据 |
-h/–help | 帮助信息 |
- 示例:
# 发布名称为testevent的公共事件
cem publish --event "testevent"
# 发布名称为testevent的粘性有序公共事件,该事件的结果码为100,携带数据内容为“this is data”
cem publish -e "testevent" -s -o -c 100 -d "this is data"
dump
- 介绍
打印公共事件相关信息。 - 用法
cem dump [<options>]
参数如下表所示
参数 | 参数说明 |
-a/–all | 打印开机以来所有已发送的公共事件及其具体信息 |
-e/–event | 查询特定名称事件的具体信息 |
-h/–help | 帮助信息 |
- 示例
# 打印公共事件名称为testevent的具体信息
cem dump -e "testevent"
anm工具
Advanced Notification Manager(通知管理工具,简称anm)是实现通知打印、设置通知参数等功能的工具,为开发者提供基本的通知调试和测试能力,例如打印已发布通知详细信息、设置通知缓存个数、使能通知等。
说明:
在使用本工具前,开发者需要先获取hdc工具,执行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
Setting
- 介绍
设置通知参数。 - 用法
anm setting [<options>]
参数如下表所示
参数 | 参数说明 |
-c/–recent-count | 设置保存在内存中的最近通知的最大个数 |
-e/–enable-notification | 设置通知使能开关 |
-h/–help | 帮助信息 |
- 示例:设置保存在内存中的最近通知的最大数为100个
anm setting -c 100
文章转载自:https://docs.openharmony.cn/pages/v3.2/zh-cn/application-dev/tools/anm-tool.md/