android 中anr的分析方法总结

本文总结了在Android开发中遇到ANR问题的分析方法。当出现ANR时,主要通过查找anr/trace.txt和dropbox/文件夹下的日志,关注Cmd line以确定问题进程。在案例中,主线程被一个关于NTP时间更新的锁阻塞,导致应用无响应。分析发现,连接WiFi时的时间同步操作存在问题,可能是引起ANR的原因。
摘要由CSDN通过智能技术生成

在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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值