hdc使用指导

1. 简介

什么是hdc

hdc(OpenHarmony Device Connector)是 OpenHarmony 为开发人员提供的用于调试的命令行工具,通过该工具可以在Windows/Linux/MacOS等系统上与开发机或者模拟器进行交互。

什么是adb

ADB(Android Debug Bridge)是一个命令行工具,用于与Android设备进行通信。它允许用户通过各种命令来管理设备上的应用程序、调试应用程序、传输文件、查看日志以及执行其他系统级别的操作。ADB是Android SDK的一部分,通常用于开发者和测试工程师在开发、测试和调试Android应用程序时与设备进行交互。

2. 工具获取方式

hdc 工具获取方式:

通过OpenHarmony sdk获取,hdc在sdk的toolchains目录下。

使用举例:

下面以windows侧使用方式举例:

获取windows的sdk,将hdc.exe放到磁盘某个位置即可使用,最好写到path中,这样可以直接命令行使用。

注意事项

使用hdc,如果出现异常,可以尝试通过hdc kill命令杀掉hdc服务,或者通过hdc start -r命令重启服务进程进行解决。如果出现hdc list targets获取不到设备信息,通过任务管理器查看是否有hdc进程存在,如果进程存在,可以通过杀掉该进程进行解决。

adb 工具获取方式:

adb 包含在 Android SDK 平台工具软件包中。您可以使用 SDK 管理器下载此软件包,该管理器会将其安装在 android_sdk/platform-tools/ 下。如果您需要独立的 Android SDK 平台工具软件包,请点击此处进行下载。

使用举例:

下面以windows侧使用方式举例:

将adb.exe放到磁盘某个位置即可使用,最好写到path中,这样可以直接命令行使用。

注意事项

使用adb,如果出现异常,可以尝试通过adb kill-server命令杀掉adb服务,或者通过adb start -server 命令重启服务进程进行解决。如果出现adb devices获取不到设备信息,通过任务管理器查看是否有hdc进程存在,如果进程存在,可以通过杀掉该进程进行解决。

3. 命令对照

(1)帮助命令,可以获取帮助信息

#hdc 指令

hdc -h / hdc help

#adb 指令

adb / adb help

#hdc 指令

hdc -v / hdc version

#adb 指令

adb version

(2)获取设备列表(包括详细信息)

#hdc指令

hdc list targets

hdc list targets -v

#adb 指令

adb devices

adb devices -l

(3)指定对应的设备

其中deviceId已经在上一步中获取了

#hdc 指令

hdc -t deviceId

#adb 指令

adb -s deviceId

(4)进入终端

#hdc 指令

hdc -t deviceId shell

#adb 指令

adb -s deviceId shell

(5)查看版本

#hdc 指令

hdc checkserver

#adb 指令

adb version

(6)挂载服务

#hdc 指令

hdc target mount

#adb 指令

android没有挂载模式

参数 参数说明 无 无 返回值 返回值说明 ①Mount finish ②返回具体信息 ①成功情况下返回的信息 ②失败情况下的具体信息

(7)设备重启

#hdc 指令

hdc target boot

#adb 指令

adb reboot

(8)获取root权限

这边需要注意,android设备需要root后才能获取

#hdc 指令

hdc smode

#取消root授权

hdc smode -r

#adb 指令

adb root

(9)网络连接

需要连接到对应的ip:port网络的时候,可以通过如下指令:

#hdc 指令

hdc tconnect ip:port

#hdc取消连接

hdc tconnect ip:port -remove

#adb 指令

adb connect ip:port

其中,adb并没有提供断联的方法,只能通过adb kill-server重新启动adb连接

(10)端口映射

对应了将本地端口转发到远程端口以及从远程端口转发到本地端口的方法

#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

(11)文件传输

发送本地文件到具体的设备上,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

(12)安装应用

#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

(13)获取Log信息

#hdc 指令

hdc hilog

hdc shell hilog -r #清理缓存日志

#adb 指令

adb logcat

adb logcat -c #清理缓存日志

(14)远程连接

这个方法貌似只有hdc有,adb得自己写个转发程序,将本地的5037转发到远程的5037。

#hdc需要先关闭本地的server

hdc kill

#远程server上执行

hdc -s :port -m

#本地连接的client上执行

hdc -s :port 具体指令

使用场景

本地client指定远程server上的设备,执行hdc命令。

连接步骤

关闭本地sever:

hdc kill

-s [ip:]port -m 

hdc -s severIP:8710 -m

-s [ip:]port command 

hdc -s severIP:8710 list targets

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。