hdc 命令指南:连接、安装应用并调试 OpenHarmony 设备
简短回答: hdc(OpenHarmony Device Connector)是连接和调试 OpenHarmony 与 HarmonyOS 设备或模拟器的命令行工具,作用类似 Android 上的 adb:列出设备、安装应用、传输文件、打开 shell 和查看日志。
hdc 是什么?
hdc 由三部分组成:
- 客户端(Client): 运行在你的电脑上,执行你在终端或 IDE 中输入的命令。
- 服务端(Server): 电脑上的后台进程,负责客户端与设备之间的通信,包括连接复用和数据传输。
- 守护进程(Daemon): 运行在设备上,处理来自客户端的请求。
在哪里获取 hdc?
hdc 打包在 SDK 中。DevEco Studio 将它放在 SDK 的 toolchains 目录下(例如 .../sdk/default/openharmony/toolchains)。把该目录加入 PATH,就可以在任意终端运行 hdc。源码位于 developtools_hdc 仓库。
验证是否可用:
hdc -v
最常用的 hdc 命令有哪些?
设备
hdc list targets # 列出已连接的设备
hdc list targets -v # 显示详细信息(连接方式、状态)
安装和卸载应用
hdc install path/to/app.hap # 安装应用包
hdc uninstall com.example.app # 按包名卸载应用
传输文件
hdc file send <本地路径> <设备路径> # 电脑 -> 设备
hdc file recv <设备路径> <本地路径> # 设备 -> 电脑
Shell 与应用管理
hdc shell # 打开设备上的交互式 shell
hdc shell bm dump -a # 列出所有已安装的包
hdc shell bm dump -n <bundle-name> # 查看某个包的详细信息
hdc shell aa start -a <ability> -b <bundle> # 启动 ability
hdc shell aa force-stop <bundle> # 强制停止应用
日志
hdc hilog # 持续输出设备日志
端口转发
hdc fport tcp:<本地端口> tcp:<设备端口> # 将电脑端口转发到设备
hdc fport ls # 列出转发规则
hdc rport tcp:<设备端口> tcp:<本地端口> # 反向转发(设备 -> 电脑)
服务控制
hdc kill # 停止 hdc 服务
hdc start -r # 重启服务
为什么 hdc 看不到我的设备?
- 确认设备已开启开发者模式和 USB 调试,并使用支持数据传输的 USB 线。
- 运行
hdc list targets。结果为空说明没有设备连接或未授权。 - 先
hdc kill,再hdc start -r重启服务。 - 确认
PATH中只有一个版本的 hdc,因为一台电脑上安装多个 SDK 可能导致版本冲突。 - 重新连接设备,再次运行
hdc list targets。
后续步骤
- 你的第一个 ArkTS 应用
- 如何安装 DevEco Studio
- 官方 hdc 文档:华为开发者联盟
常见问题
hdc 是什么的缩写?
hdc 是 OpenHarmony Device Connector 的缩写,是在开发电脑上连接和调试 OpenHarmony 设备或模拟器的命令行工具。
OpenHarmony 中相当于 adb 的工具是什么?
hdc 的作用与 Android 的 adb 相同:列出设备、安装和卸载应用、传输文件、打开 shell 以及查看日志。
如何用 hdc 安装 HAP 文件?
运行 hdc install 并加上 .hap 文件的路径。卸载应用时,运行 hdc uninstall 并加上包名(bundle name)。
如何重启 hdc 服务?
运行 hdc kill 停止服务,再运行 hdc start -r 重新启动。这通常可以解决设备不显示的问题。