HarmonyOS 鸿蒙Next中hdc工具有哪些高级调试技巧?

HarmonyOS 鸿蒙Next中hdc工具有哪些高级调试技巧? 我知道 hdc shell 可以看日志,但遇到 ANR 或内存泄漏时,光看 logcat 不够。有没有类似 adb bugreportdumpsys 的命令来抓取系统快照?

6 回复

【背景知识】

hdc(HarmonyOS Device Connector)是为开发人员提供的用于调试的命令行工具。

  1. 开发者联盟中的hdc命令列表介绍。

    1. hdc常用命令。
命令 说明
hdc shell reboot 重启设备
hdc shell aa start -b 包名 -a Ability名称 启动Ability
hdc -t 设备id shell 多设备操作
hdc discover 查询port号
hdc bugreport 抓取bugreport信息

【解决方案】

hdc有获取bugreport的指令,使用方法为:

  1. 打开命令行工具:

    在电脑上按Win+R,输入cmd或powershell打开命令行。

  2. 检查设备是否已连接:

    若提示需要授权,在设备上确认允许连接。

    hdc list targets
    
  3. 抓取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和内存泄漏问题,你可以使用以下命令来获取系统快照和详细信息:

  1. hdc shell dumpsys:这是核心的系统服务信息转储命令,功能类似Android的dumpsys。

    • 查看特定服务hdc shell dumpsys [service_name]。例如,hdc shell dumpsys ability 查看Ability信息,hdc shell dumpsys meminfo 查看内存信息。
    • 分析ANRhdc shell dumpsys anr 可以获取ANR的详细堆栈和原因。
    • 分析内存hdc shell dumpsys meminfo [package_name] 可以查看指定应用的内存使用详情,是排查内存泄漏的起点。
  2. hdc shell dump:用于抓取特定系统或应用状态的快照。

    • 抓取系统级bugreporthdc shell dump -h 查看帮助,通常 hdc shell dump [target] 可用于抓取系统日志、CPU、内存等综合状态。对于完整的系统状态存档,可以使用 hdc shell dump-capture 命令(或类似变体,具体请参考最新文档)来生成一个包含日志、堆栈、系统状态的压缩包,这是最接近 adb bugreport 的功能。
  3. 进程与线程分析

    • hdc shell pshdc shell top:查看进程状态和资源占用。
    • hdc shell kill:发送信号或终止进程。
    • hdc shell thread 或通过 dumpsys 查看特定进程的线程状态,对分析ANR卡死线程至关重要。
  4. 性能分析

    • hdc shell cpuinfo:查看CPU使用情况。
    • hdc shell procrankhdc shell showmem:查看进程内存排名(具体命令名可能略有差异)。

排查建议流程

  • ANR:首先使用 hdc shell dumpsys anr 获取直接原因和堆栈。配合 hdc shell pshdc 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 可以列出所有可用的系统服务名称。

回到顶部