HDC 2.0 与 ADB 指令对照表:从 15 个高频场景看 OpenHarmony 调试差异
HDC 2.0 与 ADB 指令对照表:从 15 个高频场景看 OpenHarmony 调试差异
对于从 Android 开发转向 OpenHarmony 的工程师来说,掌握 HDC(OpenHarmony Device Connector)工具是必备技能。作为 OpenHarmony 生态中的调试利器,HDC 2.0 在功能设计上既借鉴了 ADB 的成熟经验,又针对分布式架构做了独特优化。本文将聚焦 15 个最常用的调试场景,通过直观的指令对照表,帮助开发者快速实现从 ADB 到 HDC 的思维迁移。
1. 工具获取与环境配置
1.1 工具获取途径对比
HDC 获取方式:
- 通过 OpenHarmony SDK 获取,位于
toolchains目录下 - 独立下载地址(需匹配 OpenHarmony 版本)
ADB 获取方式:
- Android SDK 的
platform-tools目录 - 独立平台工具包下载
提示:建议将工具路径添加到系统环境变量,避免每次使用时输入完整路径。
1.2 环境配置差异
| 配置项 | HDC 2.0 | ADB |
|---|---|---|
| 默认端口 | 8710 | 5037 |
| 多设备连接 | -t <deviceId> | -s <serialNumber> |
| 服务重启命令 | hdc kill+hdc start -r | adb kill-server |
# HDC 多设备连接示例 hdc -t ABC123 shell # ADB 多设备连接示例 adb -s emulator-5554 shell2. 设备基础操作
2.1 设备连接管理
设备列表查询:
# HDC hdc list targets -v # 显示详细设备信息 # ADB adb devices -l网络连接控制:
# HDC 网络连接(支持主动断开) hdc tconnect 192.168.1.100:8710 hdc tconnect 192.168.1.100:8710 -remove # ADB 网络连接 adb connect 192.168.1.100:5555 adb disconnect 192.168.1.100:55552.2 设备状态控制
| 操作类型 | HDC 命令 | ADB 命令 |
|---|---|---|
| 重启设备 | hdc target boot | adb reboot |
| 进入恢复模式 | hdc target recovery | adb reboot recovery |
| 获取 root 权限 | hdc smode | adb root |
3. 应用生命周期管理
3.1 应用安装与卸载
安装参数对比:
| 参数 | HDC 含义 | ADB 对应参数 |
|---|---|---|
| -r | 替换已存在应用 | 相同 |
| -d | 允许降级安装 | 相同 |
| -g | 动态授权所有权限 | -g(需 Android 6.0+) |
# HAP 安装示例 hdc install -r demo.hap # APK 安装示例 adb install -r demo.apk3.2 应用调试控制
启动/停止应用:
# HDC 启动 Ability hdc shell aa start -a MainAbility -b com.example.demo # ADB 启动 Activity adb shell am start -n com.example.demo/.MainActivity强制停止应用:
# HDC hdc shell aa force-stop com.example.demo # ADB adb shell am force-stop com.example.demo4. 文件传输操作
4.1 基础文件传输
| 操作类型 | HDC 命令 | ADB 命令 |
|---|---|---|
| 上传文件 | hdc file send local remote | adb push local remote |
| 下载文件 | hdc file recv remote local | adb pull remote local |
保留时间戳下载:
hdc file recv -a /data/logs/ ./logs/ # -a 参数保留元数据4.2 高级文件操作
批量传输场景:
# HDC 批量上传(需配合 shell 命令) hdc shell "mkdir -p /data/test" hdc file send ./test_files/* /data/test/ # ADB 等价操作 adb shell "mkdir -p /data/test" adb push ./test_files/. /data/test/5. 日志系统深度对比
5.1 日志查看机制
基础日志查看:
# HDC 专用日志工具 hdc hilog # ADB 标准日志 adb logcat日志等级过滤:
| 等级 | HDC 参数 | ADB 对应级别 |
|---|---|---|
| 调试 | -l 4 | *:D |
| 信息 | -l 3 | *:I |
| 警告 | -l 2 | *:W |
| 错误 | -l 1 | *:E |
# 查看 DEBUG 级别日志 hdc hilog -l 4 # 等效 ADB 命令 adb logcat *:D5.2 日志持久化分析
日志导出技巧:
# HDC 日志导出(支持按时间范围) hdc hilog -w > hilog.txt hdc hilog -t 20240315-20240316 -o log.csv # ADB 日志导出 adb logcat -d > logcat.txt6. 系统调试进阶技巧
6.1 性能分析工具
CPU 使用率监控:
# HDC 专用命令 hdc shell hidumper --cpuusage # ADB 等价方案 adb shell top -n 1内存分析对比:
# OpenHarmony 内存详情 hdc shell hidumper --mem # Android 内存信息 adb shell dumpsys meminfo6.2 分布式调试支持
跨设备调试能力:
# HDC 远程调试(OpenHarmony 独有) hdc -s 192.168.1.100:8710 -m # 启动远程服务端 hdc -s 192.168.1.100:8710 list targets # 客户端查询7. 专项场景命令对照
7.1 屏幕操作命令
截图功能实现:
# HDC 两种截图方式 hdc shell uitest screenCap -p /sdcard/screen.png hdc shell snapshot_display -f /sdcard/screen.jpeg # 高性能方案 # ADB 标准截图 adb shell screencap -p /sdcard/screen.png屏幕录制差异:
> 注意:当前 HDC 2.0 尚未内置录屏命令,需通过第三方工具实现7.2 输入模拟测试
触摸事件模拟:
# HDC 输入事件 hdc shell uinput -K -d 2 -i 2 -u 2 # 收起键盘 # ADB 输入事件 adb shell input keyevent KEYCODE_BACK8. 网络调试工具链
8.1 端口转发机制
端口映射对比:
# HDC 端口转发 hdc fport tcp:8080 tcp:80 # 正向转发 hdc rport tcp:80 tcp:8080 # 反向转发 # ADB 端口转发 adb forward tcp:8080 tcp:80 adb reverse tcp:80 tcp:80808.2 网络诊断支持
网络状态检查:
# OpenHarmony 网络诊断 hdc shell net_analysis -c # Android 网络诊断 adb shell ping -c 4 www.example.com9. 系统信息获取
9.1 设备信息查询
系统属性获取:
# HDC 专用命令 hdc shell param get | grep ro.product # ADB 等价命令 adb shell getprop | grep ro.product9.2 进程管理对比
进程查看命令:
# OpenHarmony 进程列表 hdc shell ps -ef # Android 进程详情 adb shell ps -A10. 安全权限管理
10.1 权限调试命令
权限授予检查:
# HDC 权限查询 hdc shell aa dump -p com.example.demo # ADB 权限检查 adb shell dumpsys package com.example.demo10.2 SELinux 策略
安全上下文查看:
# OpenHarmony 安全策略 hdc shell ls -Z /data # Android SELinux 状态 adb shell getenforce11. 崩溃分析工具
11.1 崩溃日志获取
系统崩溃记录:
# HDC 崩溃日志 hdc shell hidumper -e # ADB 崩溃信息 adb shell dumpsys dropbox11.2 性能快照
系统状态捕获:
# OpenHarmony 系统快照 hdc shell hidumper --zip # Android bugreport adb bugreport12. 存储管理差异
12.1 存储空间分析
磁盘使用情况:
# HDC 存储查询 hdc shell df -h # ADB 存储详情 adb shell df -h12.2 挂载点管理
分区挂载操作:
# OpenHarmony 重新挂载 hdc shell mount -o remount,rw / # Android 等价命令 adb shell mount -o remount,rw /system13. 调试优化建议
13.1 性能优化技巧
日志缓冲区设置:
# HDC 日志缓冲调整 hdc shell hilog -b 2M # 设置为2MB缓冲区 # ADB 日志缓冲控制 adb logcat -G 2M13.2 连接稳定性
断线重连策略:
- HDC 推荐方案: 1. `hdc kill` 2. `hdc start -r` 3. 检查防火墙设置 - ADB 对应方案: 1. `adb kill-server` 2. `adb start-server`14. 扩展功能探索
14.1 鸿蒙特色能力
分布式调试支持:
# 跨设备能力调用查询 hdc shell dnetwork -l # 分布式设备发现 hdc shell dnetwork discover14.2 原子化服务
卡片服务管理:
# 卡片服务调试 hdc shell aa dump -f form # 卡片生命周期触发 hdc shell aa trigger -f form_12315. 最佳实践总结
15.1 命令组合技巧
自动化调试脚本示例:
#!/bin/bash # HDC 自动化调试流程 hdc -t $DEVICE_ID shell "rm -rf /data/logs/*" hdc -t $DEVICE_ID install demo.hap hdc -t $DEVICE_ID shell aa start -b com.example.demo hdc -t $DEVICE_ID hilog -w > debug.log15.2 异常处理指南
常见问题解决方案:
| 问题现象 | HDC 解决方案 | ADB 对应方案 |
|---|---|---|
| 设备连接超时 | 检查hdc start -r服务状态 | 重启adb server |
| 文件传输权限拒绝 | 使用hdc smode获取 root 权限 | adb root+adb remount |
| 日志输出不完整 | 调整hilog -b缓冲区大小 | 修改logcat -G缓冲配置 |
在实际项目迁移过程中,建议建立个人化的命令对照速查表。例如将常用的adb logcat | grep "Exception"替换为hdc hilog -l 1 | grep "E/",这种模式转换能显著提升调试效率。
