HDC安装
下载 Command Line Tools 并解压
hdc文件在command-line-tools/sdk/HarmonyOS-NEXT-DB2/openharmony/toolchains目录下
配置电脑环境变量,以macOS为例,在~/.bash_profile 或者 ~/.zshrc文件中添加如下内容:
export HM_SDK_HOME="/Users/develop/command-line-tools/sdk/HarmonyOS-NEXT-DB2" //请以sdk实际安装目录为准
export PATH=$PATH:$HM_SDK_HOME/hms/toolchains:$HM_SDK_HOME/openharmony/toolchains
export HDC_SERVER_PORT=7035
也可以自行编译安装:参考鸿蒙官方gitree文档
基本用法
基本语法
hdc -t
如果只有一个设备/模拟器连接时,可以省略掉-t 这一部分,直接使用hdc 。在多个设备/模拟器连接的情况下需要指定-t 参数, connectKey可以通过hdc list targets命令获取,对应Android里的adb devices获取的serialNumber。
$ hdc list targets
127.0.0.1:5555 //<IP>:<Port>形式的connectKey ,一般为无线连接的设备或模拟器
FMR0223C13000649
比如给FMR0223C13000649 这个设备安装应用:
$ hdc -t FMR0223C13000649 install entry-default-signed.hap
[Info]App install path:/Users/develop/entry-default-signed.hap, queuesize:0, msg:install bundle successfully.
AppMod finish
注意事项
使用hdc,如果出现异常,可以尝试通过hdc kill -r命令杀掉并重启hdc服务。
如果出现hdc list targets获取不到设备信息的情况,可以通过任务管理器查看是否有hdc进程存在。若进程存在,则通过hdc kill -r命令杀掉该进程。
设备连接管理
查看HDC版本
$ hdc -v
Ver: 2.0.0a
启动/停止 HDC Server
停止
$ hdc kill
Kill server finish
重启
$ hdc start -r
查询设备列表
$ hdc list targets
127.0.0.1:5555
FMR0223C13000649
-v 选项 显示详细信息
$ hdc list targets -v
127.0.0.1:5555 TCP Connected localhost
FMR0223C13000649 USB Connected unknown...
输出的内容第一列为设备的connectKey, 第二列是设备连接方式,第三列为设备连接状态,第四列暂时未知
查询设备UDID
$ hdc shell bm get --udid
udid of current device is :
C46284C052AE01BBD2358FE44B279524B508FC959AAB5F4B0B74E42A06569B7E
这个udid在用开发者账号打包时,需要添加这个udid到对应的profile文件中
重启手机
$ hdc target boot
应用管理
安装应用
$ hdc app install entry-default-signed.hap
[Info]App install path:/Users/develop/entry-default-signed.hap, queuesize:0, msg:install bundle successfully.
AppMod finish
或者
$ hdc install entry-default-signed.hap
[Info]App install path:/Users/develop/entry-default-signed.hap, queuesize:0, msg:install bundle successfully.
AppMod finish
卸载应用
$ hdc app uninstall com.kk.hmscrcpy
[Info]App uninstall path:, queuesize:0, msg:uninstall bundle successfully.
AppMod finish
或者
$ hdc uninstall com.kk.hmscrcpy
[Info]App uninstall path:, queuesize:0, msg:uninstall bundle successfully.
AppMod finish
获取应用列表
$ hdc shell bm dump -a
ID: 100:
com.huawei.associateassistant
com.huawei.batterycare
com.huawei.hmos.AutoRegService
com.huawei.hmos.advisor
com.huawei.hmos.advsecmode
com.huawei.hmos.aibase
com.huawei.hmos.aidataservice
com.huawei.hmos.aidispatchservice
com.huawei.hmos.ailife
com.huawei.hmos.ailifesvc
com.huawei.hmos.audioaccessorymanager
com.huawei.hmos.authcredmgr
...
启动应用
通过启动Ability来拉起APP
hdc shell aa start -a {abilityName} -b {bundleName}
其中bundleName可以通过hdc shell bm dump -a获取
其中abilityName可以通过如下命令获取(查看当前任务栈的ability信息)
$ hdc shell aa dump -l # 运行命令前需要手动打开app
User ID #100
current mission lists:{
Mission ID #139 mission name #[#com.kuaishou.hmapp:kwai:EntryAbility] lockedState #0 mission affinity #[]
AbilityRecord ID #55
app name [com.kuaishou.hmapp]
main name [EntryAbility]
bundle name [com.kuaishou.hmapp]
ability type [PAGE]
state #FOREGROUND start time [152523]
app state #FOREGROUND
ready #1 window attached #0 launcher #0
callee connections:
isKeepAlive: false
}
里面的EntryAbility就是你要打开app的Ability名称
退出应用
强制退出应用
hdc shell aa force-stop {
bundleName}
其中bundleName可以通过hdc shell bm dump -a获取
获取应用版本
$ hdc shell bm dump -n {
bundleName}
执行上述命令后,再解析json, 提取versionName字段即可
Dump应用信息
aa dump
$ hdc shell aa dump -h
usage: aa dump
options list:
-h, --help list available commands
-a, --all dump all abilities
-l, --mission-list dump mission list
-i, --ability dump abilityRecordId
-e, --extension dump elementName (FA: serviceAbilityRecords,Stage: ExtensionRecords)
-p, --pending dump pendingWantRecordId
-r, --process dump process
-d, --data dump the data abilities
-u, --userId userId
-c, --client client
-c, -u are auxiliary parameters and cannot be used alone
bm dump
$ hdc shell bm dump -h
usage: bm dump <options>
options list:
-h, --help list available commands
-a, --all list all bundles in system
-n, --bundle-name <bundle-name> list the bundle info by a bundle name
-s, --shortcut-info list the shortcut info
-d, --device-id <device-id> specify a device id
-u, --user-id <user-id> specify a user id
获取应用 Ability信息
$ hdc shell aa dump -l //运行命令前需要手动打开app
User ID #100
current mission lists:{
Mission ID #139 mission name #[#com.kuaishou.hmapp:kwai:EntryAbility] lockedState #0 mission affinity #[]
AbilityRecord ID #55
app name [com.kuaishou.hmapp]
main name [EntryAbility]
bundle name [com.kuaishou.hmapp]
ability type [PAGE]
state #FOREGROUND start time [152523]
app state #FOREGROUND
ready #1 window attached #0 launcher #0
callee connections:
isKeepAlive: false
}
获取应用详情
查询该应用的详细信息
$ hdc shell bm dump -n com.kuaishou.hmapp
com.kuaishou.hmapp:
{
"appId": "com.kuaishou.hmapp_BIS88rItfUAk+V9Y4WZp2HgIZ/JeOgvEBkwgB/YyrKiwrWhje9Xn2F6Q7WKFVM22RdIR4vFsG14A7ombgQmIIxU=",
"appIdentifier": "5765880207853819885",
"appIndex": 0,
"applicationInfo": {
...
"applicationReservedFlag": 0,
"arkNativeFileAbi": "",
"arkNativeFilePath": "",
"asanEnabled": false,
"asanLogPath": "",
"associatedWakeUp": false,
"bundleName": "com.kuaishou.hmapp",
"bundleType": 0,
"cacheDir": "",
"codePath": "/data/app/el1/bundle/public/com.kuaishou.hmapp",
"compileSdkType": "HarmonyOS",
"compileSdkVersion": "4.1.0.73",
"cpuAbi": "arm64-v8a",
"crowdtestDeadline": -1,
"dataBaseDir": "/data/app/el2/database/com.kuaishou.hmapp",
"dataDir": "",
"debug": true,
"description": "",
"descriptionId": 0,
"descriptionResource": {
"bundleName": "com.kuaishou.hmapp",
"id": 0,
"moduleName": "kwai"
},
"deviceId": "PHONE-001",
"distributedNotificationEnabled": true,
"enabled": true,
"entityType": "unspecified",
"entryDir": "",
"entryModuleName": "",
"fingerprint": "96C4B0B051421A56EC9117BC6E3CF093C428B6B6D59DA13205C29C9BDD39AE7C",
...
"minCompatibleVersionCode": 999999,
"moduleInfos": [
{
"moduleName": "kwai",
"moduleSourceDir": "",
"preloads": []
}
],
...
"userDataClearable": true,
"vendor": "快手",
"versionCode": 999999,
"versionName": "12.2.40"
},
"compatibleVersion": 40100011,
"cpuAbi": "",
"defPermissions": [],
"description": "",
"entryInstallationFree": false,
"entryModuleName": "kwai",
"gid": 20020014,
"hapModuleInfos": [
...
],
"reqPermissions": [
"ohos.permission.ACCELEROMETER",
"ohos.permission.GET_NETWORK_INFO",
"ohos.permission.GET_WIFI_INFO",
"ohos.permission.INTERNET",
"ohos.permission.SET_NETWORK_INFO",
"ohos.permission.STORE_PERSISTENT_DATA"
],
...
"vendor": "快手",
"versionCode": 999999,
"versionName": "12.2.40"
}
通过这个命令可以获取到很多应用的关键信息,比如reqPermissions,version,abilities等等
清除应用数据
$ hdc shell bm clean -h
usage: bm clean <options>
options list:
-h, --help list available commands
-n, --bundle-name <
标签:dump,--,hmapp,list,OpenharmonyOS,hdc,集合,HDC,com
From: https://blog.csdn.net/sdrgtywretyeruet/article/details/142071510