ANR类型
ANR一般有三种类型:
-
KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应
-
BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成
-
ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成
获取trace文件
- cat /data/anr/traces.txt > /mnt/sdcard/tt.txt
基本信息解析(Log信息)
从LOG可以看出ANR的类型,CPU的使用情况,如果CPU使用量接近100%,说明当前设备很忙,有可能是CPU饥饿导致了ANR
如果CPU使用量很少,说明主线程被BLOCK了
如果IOwait很高,说明ANR有可能是主线程在进行I/O操作造成的
其他进程间接引起,例如:
当前应用进程进行进程间通信请求其他进程,其他进程的操作长时间没有反馈;
其他进程的CPU占用率高,使得当前应用进程无法抢占到CPU时间片;
-
仔细查看ANR的成因(iowait?block?memoryleak?)
-
01-15 16:49:02.433 E/ActivityManager( 2466): Load: 0.6 / 0.61 / 0.42
翻译:5分钟,10分钟&#x