HarmonyOS 鸿蒙Next中hdc工具有哪些高级调试技巧?
HarmonyOS 鸿蒙Next中hdc工具有哪些高级调试技巧?
我知道 hdc shell 可以看日志,但遇到 ANR 或内存泄漏时,光看 logcat 不够。有没有类似 adb bugreport 或 dumpsys 的命令来抓取系统快照?
【背景知识】
hdc(HarmonyOS Device Connector)是为开发人员提供的用于调试的命令行工具。
-
开发者联盟中的hdc命令列表介绍。
- hdc常用命令。
| 命令 | 说明 |
|---|---|
| hdc shell reboot | 重启设备 |
| hdc shell aa start -b 包名 -a Ability名称 | 启动Ability |
| hdc -t 设备id shell | 多设备操作 |
| hdc discover | 查询port号 |
| hdc bugreport | 抓取bugreport信息 |
【解决方案】
hdc有获取bugreport的指令,使用方法为:
-
打开命令行工具:
在电脑上按Win+R,输入cmd或powershell打开命令行。
-
检查设备是否已连接:
若提示需要授权,在设备上确认允许连接。
hdc list targets -
抓取bugreport调试信息:
hdc bugreport
更多关于HarmonyOS 鸿蒙Next中hdc工具有哪些高级调试技巧?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
看一下这里有你需要的命令没:codematrixer/awesome-hdc: 鸿蒙NEXT HDC命令合集
hdc 提供多种高级诊断命令:
hdc shell hidumper -a:输出当前 Ability 的完整状态(类似 dumpsys activity);hdc shell perf -p <pid>:采集指定进程的 CPU 性能剖析;hdc shell meminfo <bundleName>:查看应用内存分布;hdc shell crashpad_dump:导出最近崩溃的 minidump 文件;hdc file send/recv:快速传输文件用于离线分析。
可以使用命令,导致异常日志:
hdc bugreport > crash.txt
HDC工具在鸿蒙Next中支持多设备调试,可通过hdc list targets查看连接设备。使用hdc shell进入设备命令行,配合hilog命令查看系统日志。hdc file send/recv可实现高效文件传输。调试HAP应用时,hdc install可指定调试参数进行安装。hdc tmode可用于切换设备运行模式。
在HarmonyOS Next中,hdc工具提供了强大的高级调试命令,可以满足你对系统状态深度分析的需求。
针对ANR和内存泄漏问题,你可以使用以下命令来获取系统快照和详细信息:
-
hdc shell dumpsys:这是核心的系统服务信息转储命令,功能类似Android的dumpsys。- 查看特定服务:
hdc shell dumpsys [service_name]。例如,hdc shell dumpsys ability查看Ability信息,hdc shell dumpsys meminfo查看内存信息。 - 分析ANR:
hdc shell dumpsys anr可以获取ANR的详细堆栈和原因。 - 分析内存:
hdc shell dumpsys meminfo [package_name]可以查看指定应用的内存使用详情,是排查内存泄漏的起点。
- 查看特定服务:
-
hdc shell dump:用于抓取特定系统或应用状态的快照。- 抓取系统级bugreport:
hdc shell dump -h查看帮助,通常hdc shell dump [target]可用于抓取系统日志、CPU、内存等综合状态。对于完整的系统状态存档,可以使用hdc shell dump-capture命令(或类似变体,具体请参考最新文档)来生成一个包含日志、堆栈、系统状态的压缩包,这是最接近adb bugreport的功能。
- 抓取系统级bugreport:
-
进程与线程分析:
hdc shell ps或hdc shell top:查看进程状态和资源占用。hdc shell kill:发送信号或终止进程。hdc shell thread或通过dumpsys查看特定进程的线程状态,对分析ANR卡死线程至关重要。
-
性能分析:
hdc shell cpuinfo:查看CPU使用情况。hdc shell procrank或hdc shell showmem:查看进程内存排名(具体命令名可能略有差异)。
排查建议流程:
- ANR:首先使用
hdc shell dumpsys anr获取直接原因和堆栈。配合hdc shell ps和hdc shell top查看当时系统负载。使用hdc shell dump-capture抓取完整现场。 - 内存泄漏:使用
hdc shell dumpsys meminfo [package_name]观察关键指标(如PSS、Java堆)是否持续增长。在怀疑点通过hdc shell dump [内存相关target]抓取更详细的内存快照进行分析。
请注意,部分命令的参数和输出格式在HarmonyOS Next中可能进行了优化或调整,建议通过 -h 参数查看具体帮助。例如,hdc shell dumpsys -l 可以列出所有可用的系统服务名称。

