OpenHarmony应用开发- DevEco Studio使用指南与调试工具
版本:v3.2 Release
DevEco Studio(OpenHarmony)使用指南
HUAWEI DevEco Studio For OpenHarmony(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向OpenHarmony全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的OpenHarmony应用/服务开发。
DevEco Studio 作为支撑OpenHarmony应用和服务开发的IDE,具有以下能力特点:
- 高效智能代码编辑:支持ArkTS、JavaScript、C/C++等语言的代码高亮、代码智能补齐、代码错误检查、代码自动跳转、代码格式化、代码查找等功能,提升代码编写效率。更多详细信息,请参考编辑器使用技巧。
- 低代码可视化开发:丰富的UI界面编辑能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得;同时支持卡片的零代码开发,降低开发门槛和提升界面开发效率。更多详细信息,请参考使用低代码开发应用/服务。
- 多端双向实时预览:支持UI界面代码的双向预览、实时预览、动态预览、组件预览以及多端设备预览,便于快速查看代码运行效果。更多详细信息,请参考使用预览器预览应用/服务界面效果。
- 全新构建体系:通过Hvigor编译构建工具,一键完成应用及服务的编译和打包,更好地支持ArkTS/JS开发。
- 一站式信息获取:基于开发者了解、学习、开发、求助的用户旅程,在DevEco Studio中提供一站式的信息获取平台,高效支撑开发者活动。
- 高效代码调试:提供TS、JS 、C/C++代码的断点设置,单步执行、变量查看等调试能力,提升应用及服务的问题分析效率。
更多工具体验和使用指导请见:DevEco Studio (OpenHarmony) 使用指南。
aa工具
Ability assistant(Ability助手,简称为aa),是实现应用及测试用例启动功能的工具,为开发者提供基本的应用调试和测试能力,例如启动应用组件、强制停止进程、打印应用组件相关信息等。
说明:
在使用本工具前,开发者需要先获取hdc工具,执行hdc shell。
- help 用于显示aa相关的帮助信息。
返回值:
返回对应的帮助信息。
使用方法:
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.”,同时会包含相应的失败信息。
使用方法:
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.”。
使用方法:
aa stop-service [-d <deviceId>] -a <abilityName> -b <bundleName>
bash
- dump 用于打印应用组件的相关信息。
参数 | 二级参数 | 参数说明 |
-h/–help | - | 帮助信息。 |
-a/–all | - | 打印所有mission内的应用组件信息。 |
-l/–mission-list | type(缺省打印全部) | 服务侧为了方便管理任务链,内部维护了4种类型的任务链。 可取值: - NORMAL: 正常启动的任务链(比如A拉起B拉起C, 则对应的任务链是A->B->C) - DEFAULT_STANDARD: 已经被破坏的任务链中的任务, 启动模式为standard的任务被放到该任务链中, 这里面的任务之间没有关联关系 - DEFAULT_SINGLE: 已经被破坏的任务链中的任务, 启动模式为singleton的任务被放到该任务链中, 这里面的任务之间没有关联关系 - LAUNCHER: launcher的任务链 |
-e/–extension | elementName | 打印扩展组件信息。 |
-u/–userId | UserId | 打印指定UserId的栈信息,需要和其他参数组合使用,例如aa dump -a -u 100、aa dump -d -u 100。 |
-d/–data | - | 打印DataAbility相关信息。 |
-i/–ability | AbilityRecord ID | 打印指定应用组件详细信息。 |
-c/–client | - | 打印应用组件详细信息,需要和其他参数组合使用,例如aa dump -a -c、aa dump -i 21 -c。 |
使用方法:
aa dump -a
aa dump -l
aa dump -i 12
- force-stop 通过bundleName强制停止一个进程。
返回值:
当成功强制停止该进程时,返回"force stop process successfully.“;当强制停止失败时,返回"error: failed to force stop process.”。
使用方法:
aa force-stop <bundleName>
bm工具
Bundle Manager(包管理工具,简称bm)是实现应用安装、卸载、更新、查询等功能的工具,bm为开发者提供基本的应用安装包的调试能力,例如:安装应用,卸载应用,查询安装包信息等。
说明:
在使用本工具前,开发者需要先获取hdc工具,执行hdc shell。
表1 bm工具命令列表
命令 | 描述 |
help | 帮助命令,显示bm支持的命令信息 |
install | 安装命令,用来安装应用 |
uninstall | 卸载命令,用来卸载应用 |
dump | 查询命令,用来查询应用的相关信息 |
clean | 清理命令,用来清理应用的缓存和数据 |
enable | 使能命令,用来使能应用,使能后应用可以继续使用 |
disable | 禁用命令,用来禁用应用,禁用后应用无法使用 |
get | 获取udid命令,用来获取设备的udid |
quickfix | 快速修复相关命令,用来执行补丁相关操作,如补丁安装、补丁查询 |
帮助命令
表2 help命令列表
命令 | 描述 |
bm help | 显示bm工具的能够支持的命令信息 |
示例:
# 显示帮助信息
bm help
安装命令
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, 默认缺省为5s |
示例:
bm install -p /data/app/ohosapp.hap -u 100 -w 5s -r
// 执行结果
install bundle successfully.
卸载命令
bm uninstall [-h help] [-n bundleName] [-m moduleName] [-u userId] [-k]
表4 卸载命令列表
命令 | 是否必选 | 描述 |
-h | 否,默认输出帮助信息 | 显示uninstall支持的命令信息 |
-n | 是 | 指定包名卸载应用 |
-m | 否,默认卸载所有模块 | 指定卸载应用的一个模块 |
-u | 否,默认卸载当前所有用户下该应用 | 指定用户卸载应用 |
-k | 否,默认卸载应用时不保存应用数据 | 卸载应用时保存应用数据 |
示例:
bm uninstall -n com.ohos.app -m com.ohos.app.MainAbility -u 100 -k
// 执行结果
uninstall bundle successfully.
查询命令
bm dump [-h help] [-a] [-n bundleName] [-s shortcutInfo] [-u userId] [-d deviceId]
注:-u未指定情况下,默认为所有用户。
表5 查询命令列表
命令 | 是否必选 | 描述 |
-h | 否,默认输出帮助信息 | 显示dump支持的命令信息 |
-a | 是 | 查询系统已经安装的所有应用 |
-n | 是 | 查询指定包名的详细信息 |
-s | 是 | 查询指定包名下的快捷方式信息 |
-d | 否,默认查询当前设备 | 查询指定设备中的包信息 |
-u | 否,默认查询当前设备上的所有用户 | 查询指定用户下指定包名的详细信息 |
示例:
# 显示所有已安装的包名
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
清理命令
bm clean [-h] [-c] [-n bundleName] [-d] [-u userId]
注:-u未指定情况下,默认为当前活跃用户。
表6 清理命令列表
命令 | 描述 |
-h | 显示clean支持的命令信息 |
-c -n | 清除指定包名的缓存数据 |
-d -n | 清除指定包名的数据目录 |
-u | 清除指定用户下包名的缓存数据 |
示例:
# 清理该应用下的缓存数据
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.
使能命令
bm enable [-h] [-n bundleName] [-a abilityName] [-u userId]
注:-u未指定情况下,默认为当前活跃用户。
表7 使能命令列表
命令 | 描述 |
-h | 显示enable支持的命令信息 |
-n | 使能指定包名的应用 |
-a | 使能指定包名下的元能力模块 |
-u | 使能指定用户和包名的应用 |
示例:
# 使能该应用
bm enable -n com.ohos.app -a com.ohos.app.MainAbility -u 100
// 执行结果
enable bundle successfully.
禁用命令
bm disable [-h] [-n bundleName] [-a abilityName] [-u userId]
注:-u未指定情况下,默认为当前活跃用户。
表8 禁用命令列表
命令 | 描述 |
-h | 显示disable支持的命令信息 |
-n | 禁用指定包名的应用 |
-a | 禁用指定包名下的元能力模块 |
-u | 禁用指定用户和包名下的应用 |
示例:
# 禁用该应用
bm disable -n com.ohos.app -a com.ohos.app.MainAbility -u 100
// 执行结果
disable bundle successfully.
获取udid
bm get [-h] [-u]
表9 获取udid命令列表
命令 | 描述 |
-h | 显示get支持的命令信息 |
-u | 获取设备的udid |
示例:
# 获取设备的udid
bm get -u
// 执行结果
udid of current device is :
23CADE0C
快速修复
bm quickfix [-h] [-a -f filePath] [-q -b bundleName]
表10 快速修复命令列表
命令 | 描述 |
-h | 显示quickfix支持的命令信息 |
-a -f | 执行快速修复补丁安装命令,file-path对应hqf文件,支持传递1个或多个hqf文件,或传递hqf文件所在的目录。 |
-q -b | 根据包名查询补丁信息,bundle-name对应包名。 |
示例:
# 根据包名查询补丁包信息
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.
文章转载自:https://docs.openharmony.cn/pages/v3.2/zh-cn/application-dev/tools/bm-tool.md/