Android ANR不会?这里有ANR全解析和各种案例!包教包会!

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

完整开源地址:https://docs.qq.com/doc/DSkNLaERkbnFoS0ZF

  1. 结合应用日志,代码或源码等,分析ANR问题发生前,应用是否有异常,其中具体问题具体分析。
2.2 导出ANR日志

ANR问题发生时,系统会收集ANR相关的日志信息,CPU使用情况,trace日志也就是各线程执行情况等信息,生成一个traces.txt的文件并且放在/data/anr/路径下。

注意:每一次新的ANR问题的发生,会把之前的ANR信息覆盖掉。

我们可以通过adb命令将traces文件导出到本地。

adb root

adb shell ls /data/anr

adb pull /data/anr/

复制代码

2.3 读取关键日志信息

1)在log中找到ANR发生信息: Traces文件中的关键字,例如:

09-24 15:20:20.211 1001 1543 1570 XXXXXXX: ANR in xxxxxx

09-24 15:20:20.211 1001 1543 1570 XXXXXXX: PID: xxxxx

09-24 15:20:20.211 1001 1543 1570 XXXXXXX: Reason: xxxxxx

复制代码

其中:

  • ANR in中,包括导致ANR的包名,类名

  • PID 中,为发生ANR的进程PID

  • Reason 中,为导致ANR的原因,例如keyDispatchingTimedOut

2)找到CPU Usage信息

09-24 15:20:20.211 1001 1543 1570 XXXXXX: CPUusage from xxx to xxx ago xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx

09-24 15:20:20.211 1001 1543 1570 XXXXXX: CPUusage from xxx to xxx later xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx

复制代码

其中

你可能感兴趣的:(android)