1.2 为什么会产生ANR
在Android里, App的响应能力是由Activity Manager和Window Manager系统服务来监控的....如上trace信息中的添加的中文注释已基本说明了trace文件该怎么分析:
文件最上的即为最新产生的ANR的trace信息。
前面两行表明ANR发生的进程pid, 时间, 以及进程名字(包名)。...寻找我们的代码点, 然后往前推, 看方法调用栈, 追溯到问题产生的根源。
以上的ANR trace是属于相对简单, 还有可能你并没有在主线程中做过于耗时的操作, 然而还是ANR了。...3.2 使用子线程的方式有哪些
上面我们几乎一直在说, 避免ANR的方法就是在子线程中执行耗时阻塞操作. 那么在Android中有哪些方式可以让我们实现这一点呢。...同样的优先级的Thread, CPU调度上还是可能会阻塞掉你的UI Thread, 导致ANR的。
结语
对于ANR问题, 个人认为还是预防为主, 认清代码中的阻塞点, 善用线程.