常用 HDC 命令及使用场景
更新日期:2026-10-17
hdc(HarmonyOS Device Connector)是 OpenHarmony/HarmonyOS 的设备连接调试工具,类似 Android 的 adb。
环境变量:OHOS_HDC_SERVER_PORT 可指定 hdc server 端口;多端场景建议固定端口避免混连。
0. 服务与设备管理
| 命令 | 场景 |
|---|
hdc -v | 查看 hdc 版本(排查工具问题时先看这个) |
hdc list targets | 列出当前连接的所有设备(debug 时确认连没连上) |
hdc list targets -v | 查看设备详细信息(连接方式、IP、端口等) |
hdc -t <conn_key> <cmd> | 多设备时指定目标设备执行命令(-t 后跟 list targets 里的 key) |
hdc kill / hdc start | 杀掉 / 启动 hdc server(连不上设备时先 kill 再 restart) |
hdc tconn <ip>:<port> | 连接网络设备(无线调试场景,如 hdc tconn 192.168.1.100:5555) |
hdc tconn <ip>:<port> remove | 断开指定的网络设备 |
hdc tmode port 5555 | 让设备开启网络调试端口(之后可用 tconn 走网络) |
hdc -l | 输出更详细的日志(排查连接问题) |
1. 应用安装与管理
| 命令 | 场景 |
|---|
hdc install <path/xxx.hap> | 安装 HAP 包(最常用的调试安装方式) |
hdc install -r <path/xxx.hap> | 覆盖安装(保留应用数据更新版本) |
hdc install -s <path/xxx.hap> | 安装到 SD 卡(部分支持场景) |
hdc uninstall <bundleName> | 卸载应用 |
hdc shell bm dump -a | 查看设备上所有已安装应用(不知道 bundleName 时先查) |
hdc shell bm dump -n <bundleName> | 查看某应用的详细信息(版本、appId、安装路径等) |
hdc shell bm install -p <data路径> | 设备侧安装(先传文件到设备再装,特殊场景用) |
2. 应用启动与调试
| 命令 | 场景 |
|---|
hdc shell aa start -a <abilityName> -b <bundleName> | 拉起应用(冷启动测试,如 aa start -a EntryAbility -b com.example.demo) |
hdc shell aa force-stop <bundleName> | 强制停止应用(测冷启动前先杀干净) |
hdc shell aa dump -a | 查看当前运行的 Ability 信息 |
hdc file recv /data/app/el2/100/base/<bundleName>/haps/entry/files/xxx ./ | 拉取应用沙箱文件(看 log 文件、数据库等) |
hdc shell ps -ef | grep <bundleName> | 查看应用进程是否存活 |
hdc shell param get persist.hilog.enabled | 查看日志开关状态 |
3. 日志(hilog)
| 命令 | 场景 |
|---|
hdc shell hilog -r | 清空日志缓冲(复现问题前先清,方便看新日志) |
hdc shell hilog | 实时打印全部日志(抓现场) |
hdc shell hilog | grep <关键字> | 实时过滤日志(配合 app 关键字 / tag) |
hdc shell hilog -x | 打印缓冲区已有日志后退出(不持续跟踪) |
hdc shell hilog -T <tag> | 按 domain/tag 过滤日志 |
hdc shell hilog -L <domain/level> | 按日志级别过滤(如只看 Error) |
hdc shell hilog -Q debugoff | 关闭调试日志流量控制(某些日志看不到时用) |
小技巧:hdc shell hilog > app.log 存到本地再分析更方便(注意在 shell 外重定向,别在 shell 内)。
4. 文件传输
| 命令 | 场景 |
|---|
hdc file send <local> <remote> | 本地文件推到设备(推测试数据、so 库、安装包等) |
hdc file recv <remote> <local> | 从设备拉文件到本地(拉日志、崩溃栈、截图) |
hdc shell ls /data/app/el2/100/base/ | 浏览设备目录(找应用沙箱路径) |
hdc shell rm -f <remote> | 删除设备上的文件(谨慎使用) |
注意:/data 下部分目录需要 root 权限;商用版设备很多系统目录受限,优先访问应用沙箱和 /data/local/tmp。
5. 截图、录屏与性能
| 命令 | 场景 |
|---|
hdc shell snapshot_display -f /data/local/tmp/s.jpeg | 屏幕截图(之后 hdc file recv 拉回本地) |
hdc shell uitest uiDump -p /data/local/tmp | 导出当前页面控件树(写自动化测试、查控件 ID) |
hdc shell uitest uiInput click 300 500 | 模拟点击指定坐标(自动化/回归小脚本) |
hdc shell uitest uiInput swipe 300 800 300 200 | 模拟滑动 |
hdc shell uitest uiInput text "hello" | 模拟输入文本(焦点在输入框时) |
hdc shell hidumper -s <serviceId> -a <args> | dump 系统服务信息(查内存、窗口等,如 hidumper -s WindowManagerService) |
hdc shell hidumper --mem <pid> | 查看指定进程内存占用(性能排查) |
hdc shell power-shell dump | 查看功耗/电源相关信息 |
hdc shell hiprofiler_cmd ... | 启动性能采集(CPU/内存/trace,DevEco Profiling 的命令行方式) |
6. 系统信息与调试
| 命令 | 场景 |
|---|
hdc shell param get const.product.model | 查看设备型号 |
hdc shell param get const.product.software.version | 查看系统版本(提 bug 前先确认) |
hdc shell param set persist.xxx value | 设置系统参数(调试开关,改完一般要重启生效) |
hdc reboot | 重启设备 |
hdc shell reboot loader | 重启进入刷机模式(升级/刷机场景) |
hdc shell mount -o remount,rw / | 重挂载系统分区为可写(root 环境替换系统文件时用) |
hdc shell ps -ef | 查看所有进程 |
hdc shell netstat -anp | 查看网络连接状态 |
hdc shell ifconfig | 查看设备 IP(网络调试/写自动化脚本前用) |
hdc shell df -h | 查看磁盘空间(安装失败先怀疑空间不足) |
7. 端口转发与抓包
| 命令 | 场景 |
|---|
hdc fport local=8080 remote=8080 | 端口转发(本地访问设备上的服务,如调试 Web 服务) |
hdc fport ls | 查看已建立的转发规则 |
hdc fport rm local=8080 | 删除指定转发规则 |
hcd rport | 反向转发(设备访问本地 PC 服务,注意拼写是 hdc rport) |
hdc shell tcpdump -i any -w /data/local/tmp/cap.pcap | 设备侧抓包(root 环境拉回本地用 Wireshark 分析) |
典型调试流程串讲
hdc list targets
hdc shell bm dump -a
hdc install -r entry-default.hap
hdc shell hilog -r
hdc shell aa force-stop com.example.demo
hdc shell aa start -a EntryAbility -b com.example.demo
hdc shell hilog | grep MyTag
hdc shell snapshot_display -f /data/local/tmp/s.jpeg
hdc file recv /data/local/tmp/s.jpeg ./
几个高频原则
- 多设备同连时,所有命令都要带
-t <conn_key>,否则容易打到别的设备上。 - 安装报错先看两件事:签名是否匹配(覆盖安装需同签名)、
df -h 磁盘是否够。 - 设备连不上:
hdc kill && hdc start 再 list targets,USB 不行换 tmode port + tconn。 - 系统目录受限属正常,测试文件统一放
/data/local/tmp,应用数据走沙箱路径。 snapshot_display、uitest、hidumper 是 UI 自动化和性能排查三件套,值得熟练。
所有评论(0)