
ANR问题分析:
1.ANR出现的原因
1.1 Activity 5s内没被App响应
1.2 BroadcastReceiver的onReceiver()超过10s
1.3 Service中各生命周期函数执行超过20s
1.4 系统CPU占满
2.ANR日志导出
2.1 执行命令导出日志:adb bugreport

2.2 打开ANR日志,目录:dumpstate\FS\data\anr

3.ANR日志分析
3.1 一个 ANR 日志,会包含当前设备中所有进程的使用情况,每个进程开头都会
以----- pid 16808 at date ----- 来开头,以 ----- end 16808 ----- 来结尾;通过包名,找到自己应用的进程:

3.2 查看主线程定位问题,找到:"main" prio=5 tid=1 Native

根据log使用profiler cpu进一步定位问题。
4.profiler cpu分析

问题已经找到了,修复即可。
本文聚焦Android的ANR问题,分析了其出现的原因,如Activity 5s内未响应、BroadcastReceiver的onReceiver()超10s等。还介绍了ANR日志的导出方法,以及如何分析日志,可通过包名找应用进程、查看主线程定位问题,最后用profiler cpu进一步分析并修复。

6144

被折叠的 条评论
为什么被折叠?



