在android开发过程中,总会容易遇到各种anr(Application Not Responding),今天测试同事发现一个bug,在连接wifi后,回到桌面,提示启动器无响应,并黑屏。于是分析了下日志:
1、首先找到对应的trace.txt文件或者anr文件。
我们公司的anr日志信息主要在anr/trace.txt和dropbox/文件夹下,通过dropbox/system_app_anr@1510126733678.txt,搜索:Cmd line:
Cmd line: com.**.android.launcher3
Cmd line: system_server
发现有对应的launcher和system_server的anr,分别看日志,可以初步判断,是由于system_server出现anr导致了launcher的anr。
2、找到出现anr的进程后,首先查看主线程,其日志入下。可以看出,主线程是0x097ca713 这个锁被其他线程给拿锁了,且是被线程号为53的线程拿住。(在线程后面,tid即为线程号)
"main" prio=5 tid=1 Blocked
| group="main" sCount=1 dsCount=0 obj=0x74f26cc8 self=0x7f7ba96a00
| sysTid=1759 nice=-2 cgrp=default sched=0/0 handle=0x7f8004ba98
| state=S schedstat=( 6861267460 2526571997 15724 ) utm=491 stm=195 core=6 HZ=100
| stack=0x7fd14ba000-0x7fd14bc000 stackSize=8MB
| held mutexes=
at com.android.server.net.NetworkPolicyManagerService.isNetworkMetered(NetworkPolicyManagerService.java:2342)
- waiting to lock