原创文章,转载请保留出处:http://blog.csdn.net/s278777851/article/details/7168559
ANR(application no respon) 的错误大家都不陌生了, 原因就是主线阻塞超过5秒没有响应, 或者是BroadcastReceiver 没有在十秒内完成返回。
只要一些类似网络连接等耗时的操作开子线程去跑, 这样就可以避免这个错误了, 但是, 如果现在项目的确是出现了呢。下面教你怎么分析ANR错误。
打开控制台(开始->运行-cmd), 输入adb pull /data/anr/traces.txt d:/traces.txt, traces.txt 的文件就会复制到D盘上, 用记事本打开这个就像看一般的错误日志那样了. 找到自己熟悉的类名, 根据定位的行数就可以找到耗时的代码了.
另外补充一下, 如果手机有root的权限,可以直接在DDMS的File Explorer看到traces文件
2013-2-18: Android平台中(Android 2.3起),新增加了一个新的类,叫StrictMode(android.os.StrictMode)。这个类可以用来帮助开发者改进他们编写的应用,并且提供了各种的策略,这些策略能随时检查和报告开发者开发应用中存在的问题,比如可以监视那些本不应该在主线程中完成的工作或者其他的一些不规范和不好的代码