适用对象:刚装好鸿蒙开发环境、第一次用 hdc 的新人
文档定位:照着一步步配就能通 + 随时查的命令速查 + 踩坑记录
配套文档:wukong 测试指令详解(hdc 配好才能跑 wukong)
一、hdc 是什么(30 秒理解)
hdc(HarmonyOSDeviceConnector)是鸿蒙提供的设备连接/调试命令行工具,相当于 Android 的adb。
- 通过 USB 或网络(TCP)连接真实设备 / 模拟器
- 能执行
shell命令、传文件、装/卸应用、抓日志 - wukong 测试、截图、日志分析全都建立在 hdc 能连上设备的前提上
一句话记忆法:hdc = 鸿蒙版 adb。adb 会,hdc 就会一半。
二、hdc 从哪来(工具获取)
hdc 不单独发,跟着HarmonyOS SDK走,放在 SDK 的toolchains目录里。
两种拿到方式(任选其一):
| 方式 | 适用人群 | 说明 |
|---|---|---|
| 装 DevEco Studio | 大多数人 | IDE 自带 SDK,装完直接有 hdc |
| 下载 Command Line Tools | 只跑命令、不写代码;CI 服务器 | 华为官网下commandline-tools压缩包,解压即用 |
默认路径速查
| 系统 | hdc 所在目录(示例) |
|---|---|
| Windows | C:\Users\你的用户名\AppData\Local\HarmonyOS\Sdk\toolchains |
| Linux | ~/HarmonyOS/Sdk/toolchains或 DevEco Studio 安装目录下的sdk/toolchains |
| macOS | ~/Library/Huawei/sdk/toolchains或~/HarmonyOS/Sdk/toolchains |
找不到?在 DevEco Studio 里:
File > Settings > SDK能看到 SDK 实际安装路径,进去找toolchains目录即可。
三、Windows 配置步骤(一步一步来)
Step 1 找到 hdc.exe 路径
按上面的路径打开文件夹,确认里面有hdc.exe。
Step 2 加进系统 PATH
此电脑 → 右键「属性」 → 高级系统设置 → 高级 → 环境变量 → 在「系统变量」或「用户变量」里找 Path → 编辑 → 新建 → 粘贴 toolchains 目录路径(如 C:\Users\xxx\AppData\Local\HarmonyOS\Sdk\toolchains) → 一路确定保存Step 3 让配置生效
关掉所有命令行窗口重新打开(或用 DevEco Studio 的 Terminal)。这一步很多人忘,配完不生效多半是这个原因。
Step 4 验证
hdc -v能打印版本号(如Ver: 1.3.0a)即配置成功。
⚠️Windows 驱动坑:设备管理器里若
HDC Device出现黄色感叹号,说明驱动没装好。装华为手机助手(HiSuite)会自动带驱动,或手动更新驱动指向HDC Device。
四、Linux 配置步骤(环境变量 + udev 权限)
Linux 比 Windows 多一步:USB 设备权限(udev 规则),否则非 root 下hdc list targets看不到设备。
Step 1 找到 hdc 路径并加执行权限
# 进入 toolchains 目录cd~/HarmonyOS/Sdk/toolchains# 确认有 hdc,并赋予可执行权限(必须!)chmod+x hdc ./hdc-v# 能出版本号说明文件 OKStep 2 加进 PATH(两种 shell 写法)
# Bash 用户(大多数)echo'export PATH=$PATH:~/HarmonyOS/Sdk/toolchains'>>~/.bashrcsource~/.bashrc# Zsh 用户(macOS/部分 Linux)echo'export PATH=$PATH:~/HarmonyOS/Sdk/toolchains'>>~/.zshrcsource~/.zshrc路径换成你实际的 toolchains 绝对路径(建议用绝对路径,不要写
~展开可能出错)。
Step 3 配置 udev 规则(关键!解决非 root 看不到设备)
# 1. 先插上设备,看 USB 是否能识别到 HDC Devicelsusb# 输出里找类似 "HDC Device" / "Phytium HDC Device" 的行,记下 Vendor ID(如 12d1)# 2. 新建 udev 规则文件sudovim/etc/udev/rules.d/90-hdc.rules文件内容(华为设备 VID 为12d1;其它厂商先用lsusb查到 VID 再替换):
# 让所有用户可读写 HDC 设备(新手最简方案) SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666" # 若想用用户组方式(更规范),改为下面这行并把自己加入 plugdev 组: # SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"# 3. 重载规则并重新触发sudoudevadm control --reload-rulessudoudevadm trigger# 4. 重新插拔 USB 线# 5. 验证(无需 sudo)hdc list targets多渠道商设备 VID 不同,记不住就
lsusb看一眼,把12d1换成你设备实际的 Vendor ID 即可。
Step 4 验证
hdc-vhdc list targets五、设备侧准备(两端都要做)
不管 Windows 还是 Linux,设备端不开调试,PC 怎么配都连不上:
- 打开「设置 → 关于本机 → 连续点版本号 7 次开启开发者模式
- 「设置 → 系统 → 开发者选项 → 开启USB 调试」
- 用数据线连电脑,在设备弹窗里点「允许 USB 调试」(勾选"一律允许"更省事)
- 确认 USB 连接模式是「传输文件(MTP)」而非仅充电
六、连接设备 & 验证
# 查询已连接设备(返回 [empty] 就是没连上)hdc list targets# 打印详细信息(含 connect-key,多设备时用它区分)hdc list targets-v# 查看客户端与服务端版本是否匹配hdc checkserver连不上的通用救法:
hdc kill -r杀掉异常进程并重启服务,再hdc list targets。
七、无线/网络调试(不用 USB 线)
适合设备 USB 口坏了、或要做长时间稳定性测试时不想被线绊住。
# 方式 A:设备已在「开发者选项 → 无线调试」里开了,直接连hdc tconn192.168.1.100:5555# 方式 B:先通过 USB 打开设备网络通道,再拔线连hdc tmode port5555# 设备端开启 TCP 监听(此命令后 USB 会断)hdc tconn192.168.1.100:5555# 断开网络设备或恢复 USBhdc tconn192.168.1.100:5555-removehdc tmode usb# 恢复 USB 模式网络调试要求 PC 与设备同一网段。
hdc tconn的端口默认和OHOS_HDC_SERVER_PORT不是一回事,别混。
八、常用命令速查表(配好就能干活)
| 类别 | 命令 | 说明 |
|---|---|---|
| 版本/连接 | hdc -v | 查看 hdc 版本 |
hdc list targets | 列出已连接设备 | |
hdc list targets -v | 列出设备详情(含 connect-key) | |
hdc checkserver | 校验 client/server 版本 | |
| Shell | hdc shell | 进入设备 shell(前面 wukong 就在这敲) |
hdc shell <命令> | 单次执行,如hdc shell ps -ef | |
| 文件 | hdc file send 本地 远程 | 本地→设备,如hdc file send ./a.txt /data/local/tmp/a.txt |
hdc file recv 远程 本地 | 设备→本地,如hdc file recv /data/local/tmp/a.txt ./a.txt | |
| 应用 | hdc install xxx.hap | 安装应用(-r覆盖,-s替换) |
hdc uninstall 包名 | 卸载应用 | |
| 日志 | hdc hilog | 实时打印设备日志(配合grep用) |
| 服务 | hdc start -r | 启动/重启 hdc 服务 |
hdc kill -r | 终止/重启服务(连不上先试这个) | |
| 设备 | hdc target boot | 重启设备 |
| 多设备 | hdc -t <connect-key> shell | 指定某台设备执行命令 |
多设备场景一定加
-t connect-key,否则 hdc 不知道往哪台发命令。
九、关键环境变量(进阶但常用)
| 变量名 | 作用 | 默认值 | 怎么用 |
|---|---|---|---|
OHOS_HDC_SERVER_PORT | 修改 hdcserver 监听端口 | 8710 | 8710 被占用时改掉,如设18710 |
OHOS_HDC_LOG_LEVEL | 调整日志打印级别(排查用) | 默认 | 设5开详细日志 |
Windows 设置:此电脑 → 属性 → 高级 → 环境变量 → 新建系统变量。
Linux/macOS 设置:
echo'export OHOS_HDC_SERVER_PORT=18710'>>~/.bashrcecho'export OHOS_HDC_LOG_LEVEL=5'>>~/.bashrcsource~/.bashrc⚠️ 改完环境变量要重启命令行/DevEco Studio才生效。命令行里用
-s ip:port指定服务端口时会忽略这个环境变量。
十、⚠️ 新手必踩的 6 个坑
- 配完 PATH 不生效→ 八成是没重开命令行窗口。关掉重开。
- Linux 非 root 看不到设备→ 没配 udev 规则或没
chmod +x hdc。按第四节 Step 1、3 走。 - Windows 设备管理器 HDC Device 黄标→ 驱动没装。装 HiSuite 或手动更新驱动。
- 设备连上但
list targets是 [empty]→ 设备没开 USB 调试,或弹窗没点"允许",或 USB 模式是"仅充电"。 - 多个 hdc 版本打架→ DevEco Studio 自带一个、自己又下了一个,PATH 指向混乱。确保 PATH 里只留一个 toolchains。
- 8710 端口被占→ 设
OHOS_HDC_SERVER_PORT换个端口,重启命令行再试。
记忆口诀:连不上先
hdc kill -r,再看设备开没开调试,再看驱动/权限。
十一、标准作业流(SOP)
# 1. 设备开开发者模式 + USB 调试,连电脑,点允许# 2. Windows / Linux 按上面配好 PATH(Linux 还要 chmod +x 和 udev)# 3. 验证hdc-vhdc list targets# 能看到设备序列号 = 成功# 4. 进 shell 跑 wukong(接上一篇笔记)hdc shell wukong-v十二、一句话速记卡(贴显示器上)
hdc = 鸿蒙版 adb 路径:SDK 的 toolchains 目录 Windows: 加 Path → 重开终端 → hdc -v Linux: chmod +x + 加 Path + udev(VID 12d1) + 重插拔 设备: 开发者模式 + USB调试 + 点允许 + 传输文件模式 hdc list targets 查设备 hdc shell 进设备 hdc tconn IP:端口 无线连 hdc kill -r 连不上先重启服务 OHOS_HDC_SERVER_PORT 默认 8710,冲突就改参考来源
- 华为开发者文档:hdc 调试命令
- 华为设备开发文档:hdc - 调试命令