hdc(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具,通过该工具可以在Windows/Linux/MacOS等系统上与开发机或者模拟器进行交互。
ADB(Android Debug Bridge)是一个命令行工具,用于与Android设备进行通信。它允许用户通过各种命令来管理设备上的应用程序、调试应用程序、传输文件、查看日志以及执行其他系统级别的操作。ADB是Android SDK的一部分,通常用于开发者和测试工程师在开发、测试和调试Android应用程序时与设备进行交互。
通过OpenHarmony sdk获取,hdc在sdk的toolchains目录下。
使用举例:
下面以windows侧使用方式举例:
获取windows的sdk,将hdc.exe放到磁盘某个位置即可使用,最好写到path中,这样可以直接命令行使用。
注意事项
adb
?包含在 Android SDK 平台工具软件包中。您可以使用?SDK 管理器下载此软件包,该管理器会将其安装在?android_sdk/platform-tools/
?下。如果您需要独立的 Android SDK 平台工具软件包,请点击此处进行下载。
使用举例:
下面以windows侧使用方式举例:
将adb.exe放到磁盘某个位置即可使用,最好写到path中,这样可以直接命令行使用。
注意事项
#hdc 指令
hdc -h / hdc help
#adb 指令
adb / adb help
#hdc 指令
hdc -v / hdc version
#adb 指令
adb version
#hdc指令
hdc list targets
hdc list targets -v
#adb 指令
adb devices
adb devices -l
其中deviceId已经在上一步中获取了
#hdc 指令
hdc -t deviceId
#adb 指令
adb -s deviceId
#hdc 指令
hdc -t deviceId shell
#adb 指令
adb -s deviceId shell
#hdc 指令
hdc checkserver
#adb 指令
adb version
#hdc 指令
hdc target mount
#adb 指令
android没有挂载模式
参数 | 参数说明 |
无 | 无 |
返回值 | 返回值说明 |
①Mount?finish ②返回具体信息 | ①成功情况下返回的信息 ②失败情况下的具体信息 |
#hdc 指令
hdc target boot
#adb 指令
adb reboot
这边需要注意,android设备需要root后才能获取
#hdc 指令
hdc smode
#取消root授权
hdc smode -r
#adb 指令
adb root
需要连接到对应的ip:port网络的时候,可以通过如下指令:
#hdc 指令
hdc tconnect ip:port
#hdc取消连接
hdc tconnect ip:port -remove
#adb 指令
adb connect ip:port
其中,adb并没有提供断联的方法,只能通过adb kill-server重新启动adb连接
对应了将本地端口转发到远程端口以及从远程端口转发到本地端口的方法
#hdc 指令
hdc fport localnode remotenode
hdc rport remotenode localnode
hdc fport ls #列出所有的前向转发
hdc fport rm localnode remotenode #删除该端口的转发
#adb 指令
adb forward localnode remotenode
adb reverse remotenode localnode
adb forward --list
adb forward --remove localnode #删除该端口转发
hdc命令说明
参数 | 参数说明 |
无 | 无 |
返回值 | 返回值说明 |
‘tcp:1234 tcp:1080’ [Forward] | 正向端口转发任务 |
‘tcp:2080 tcp:2345’ [Reverse] | 反向端口转发任务 |
使用方法:
hdc fport rm tcp:1234 tcp:1080
发送本地文件到具体的设备上,local和remote分别表示在本地的位置和远程的位置
#hdc 指令
hdc file send local remote
#adb 指令
adb push local remote
使用方法(举例):
hdc file send E:\a.txt /data/local/tmp/a.txt
#hdc 指令
hdc file recv [-a] remote local
#如果加上了-a,则文件保留时间戳模式
#adb 指令
adb pull remote local
hdc file recv /data/local/tmp/a.txt ./a.txt
#hdc 指令
hdc install [-r/-d/-g] 对应的hap包
hdc uninstall [-k] 对应的hap包
#adb 指令
adb install 对应的apk包
adb uninstall 包名
安装OpenHarmony应用参数?
参数 | 参数说明 |
-r | 替换已存在应用 |
-d | 允许降级安装 |
-g | 应用动态授权 |
返回值 | 返回值说明 |
①返回具体信息 ②无 | ①失败情况下的具体信息 ②成功情况下无返回值 |
?卸载OpenHarmony应用参数
参数 | 参数说明 |
-k | 保留/data/cache |
返回值 | 返回值说明 |
①返回具体信息 ②无 | ①失败情况下的具体信息 ②成功情况下无返回值 |
使用方法(举例):
hdc uninstall package
#hdc 指令
hdc hilog
hdc shell hilog -r #清理缓存日志
#adb 指令
adb logcat
adb logcat -c #清理缓存日志
这个方法貌似只有hdc有,adb得自己写个转发程序,将本地的5037转发到远程的5037。
#hdc需要先关闭本地的server
hdc kill
#远程server上执行
hdc -s <server的ip>:port -m
#本地连接的client上执行
hdc -s <server的ip>:port 具体指令
本地client指定远程server上的设备,执行hdc命令。
hdc kill
hdc -s severIP:8710 -m
hdc -s severIP:8710 list targets