转自:https://www.cnblogs.com/rayray/archive/2013/03/09/2932043.html
【Android】抓取log(anr)
1、anr问题的log一般都在/data/anr/目录下,使用如下命令即可导出log
adb pull /data/anr/traces.txt d:/ =》意思是将手机上的traces.txt导出到电脑的d目录下
但是也会有该命令失效的时候。你能adb shell ls /data/anr/ 看到该文件,但是导出时会提示该文件不存在,原因没有去跟,但是导出的方式可以如下:
1、adb shell
2、cat /data/anr/xxx >/mnt/sdcard/yy/zz.txt
3、exit
【Android】抓取log(anr)
1、anr问题的log一般都在/data/anr/目录下,使用如下命令即可导出log
adb pull /data/anr/traces.txt d:/ =》意思是将手机上的traces.txt导出到电脑的d目录下
但是也会有该命令失效的时候。你能adb shell ls /data/anr/ 看到该文件,但是导出时会提示该文件不存在,原因没有去跟,但是导出的方式可以如下:
1、adb shell
2、cat /data/anr/xxx >/mnt/sdcard/yy/zz.txt
3、exit
4、adb pull /mnt/sdcard/yy/zz.txt d: ,即可将文件导出到了d盘
ANR(Application Not Responding)定义
在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样系统不会显示ANR给用户。
出现ANR的原因
默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。超出就会提示应用程序无响应(ANR:Application Not Responding)对话框。
三种常见类型
1:KeyDispatchTimeout(5 seconds) --主要类型
按键或触摸事件在特定时间内无响应
2:BroadcastTimeout(10 seconds)
BroadcastReceiver在特定时间内无法处理完成
3:ServiceTimeout(20 seconds) --小概率类型
Service在特定的时间内无法处理完成
如何分析ANR生成的Traces
出现Application Not Responding的提示后,系统会将日志LOG写到到
data\anr\traces.txt文件