HarmonyOS鸿蒙Next中如何在HarmonyOS 5中获取应用的ANR日志?

HarmonyOS鸿蒙Next中如何在HarmonyOS 5中获取应用的ANR日志? 线上用户反馈 App 卡死,需分析 ANR 原因,如何获取应用的 ANR日志?

4 回复

开发者您好,ANR日志获取即AppFreeze的日志获取,AppFreeze的日志获取和日志规格说明可以参见日志获取日志规格

更多关于HarmonyOS鸿蒙Next中如何在HarmonyOS 5中获取应用的ANR日志?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS 5中获取ANR日志,可通过以下方式:

  1. 使用DevEco Studio的Log窗口,筛选日志级别为“Error”或“Fatal”,可查看ANR相关记录。

  2. 通过hdc命令行工具连接设备,执行 hdc shell cat /data/log/LogService/ 查看系统日志文件,ANR信息通常记录在故障日志中。

  3. 在设备的“文件管理”应用中,进入内部存储的“log”目录,查找相关日志文件。

在HarmonyOS 5中,获取应用ANR日志的核心途径是通过hdc命令行工具。具体步骤如下:

  1. 连接设备:确保设备通过USB或网络与开发机连接,并已开启调试模式。
  2. 使用hdc shell:在终端执行 hdc shell 进入设备shell环境。
  3. 定位ANR目录:ANR日志通常存储在 /data/anr 目录下。执行 cd /data/anr 进入该目录。
  4. 查看日志文件:执行 ls -la 可查看目录下的ANR文件(通常以 traces_ 开头或包含 anr_ 字样)。使用 catmore 命令查看具体文件内容,例如 cat traces.txt

注意:访问 /data/anr 通常需要root权限或调试版本的系统。在非root的普通用户设备上,可能无法直接访问此目录。此时,可尝试通过以下方式间接获取:

  • 通过应用内监控:在应用代码中集成性能监控工具(如HiTraceMeter),主动检测主线程阻塞并记录堆栈信息。
  • 使用DevEco Studio调试:在卡死时触发调试会话,通过IDE的Profiler或日志面板查看线程状态。

ANR日志会记录发生ANR时所有线程的堆栈信息,重点分析主线程(main)的堆栈,查找阻塞点(如锁竞争、耗时I/O、复杂计算等)。

回到顶部