一、什么是ANR?
Android Not Response : 通常是UI线程做耗时操作会导致ANR。
A 界面操作按钮的点击等待响应时间超过5秒
B HandleMessage回调函数执行超过10秒,BroadcasterReciver里的onRecive()方法处理超过10秒
B HandleMessage回调函数执行超过10秒,BroadcasterReciver里的onRecive()方法处理超过10秒
二、导出日志
1. 导出log到文件中
adb logcat -d > /sdcard/logcat.txt
2. 导出ANR文件的命令
anr日志的存放目录:\data\anr\traces.txt
adb pull \data\anr\traces.txt ./traces.txt
导出到当前目录下
CPU usage from 4834ms to -10002ms ago:
127% 31817/co.lvdou.superuser: 112% user + 14% kernel / faults: 1980 minor 13 major
9.7% 624/system_server: 6.1% user + 3.5% kernel / faults: 4082 minor 140 major
......
99% TOTAL: 69% user + 19% kernel + 10% iowait + 0.6% softirq
1. CPU在ANR前
adb logcat -d > /sdcard/logcat.txt
2. 导出ANR文件的命令
anr日志的存放目录:\data\anr\traces.txt
adb pull \data\anr\traces.txt ./traces.txt
导出到当前目录下
三、现象CPU耗尽导致ANR
CPU usage from 4834ms to -10002ms ago:
127% 31817/co.lvdou.superuser: 112% user + 14% kernel / faults: 1980 minor 13 major
9.7% 624/system_server: 6.1% user + 3.5% kernel / faults: 4082 minor 140 major
......
99% TOTAL: 69% user + 19% kernel + 10% iowait + 0.6% softirq
1. CPU在ANR前