调试手册:
一、anr信息产生的原因:
(1). KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应
(2). BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成
(3). ServiceTimeout(20 seconds) --小概率类型 Service在特定的时间内无法处理完成
二、anr信息解析:
当ANR发生时,往往通过Logcat和traces文件(目录/data/anr)的相关信息输出来定位问题,主要包括以下几个方面:
1 基本信息,包括进程号名,进程号,包名,系统build号,ANR类型等等
2 CPU使用信息,包括活跃进程的CPU平均占用率,IO情况等
3 线程堆栈信息,所属进程包括发生ANR的进程,其父进程,最近有活动的3个进程等
4.当ANR不是发生在system server进程时,mian log会有关键字"ANR in”,如果anr发生在 system server进程,则main log一般不会记录到关键字"ANR in”;
5.system_server进程发生死锁:搜索关键字“am_anr”;
6.通过trace log得知ANR发生在system_server进程,主线程在等待一个锁:
- waiting to lock <0x02e6b629> (a com.android.server.am.ActivityManagerService) held by thread 9
从此处无法得知问题点在哪里,根据第一节的介绍