Android ANR trace日志如何导出
什么是ANR ?
上网搜索,一搜一大片,我就说个很容易识别的字眼,XXXAPP无响应
ANR trace日志如何导出?
使用ADB命令: adb pull data/anr/trace.txt + 你要存放的路径。
查看ANR报错位置
全局搜索你APP的包名,定位到报错点,同时分析错误原因,也可以全局搜索DALVIK THREADS。
导致ANR的几种情况:
1):Input dispatching timed out(5 seconds) 按键或触摸事件处理超时(一般是UI主线程做了耗时的操作,这类ANR最常见)
2):BroadcastTimeout(10 seconds) 广播的分发和处理超时(一般是onReceiver执行时间过长)
3):ServiceTimeout(20 seconds) Service的启动和执行超时
如何避免ANR
UI线程尽量只做跟UI相关的工作
耗时的工作(比如数据库操作,I/O,连接网络或者别的有可能阻碍UI线程的操作)把它放入单独的线程处理
尽量用Handler来处理UIthread和别的thread之间的交互
例子分析

这里我通过搜索我的包名定位到这个地方有警告,告诉我这个检测网络状态的服务存在可能导致ANR的问题。显示只是警告,我们可以去处理,也可以忽略。