ANR 全称 Applicatipon No Response;Android 设计 ANR 的用意,是系统通过与之交互的组件(Activity,Service,Receiver,Provider)以及用户交互(InputEvent)进行超时监控,以判断应用进程(主线程)是否存在卡死或响应过慢的问题,通俗来说就是很多系统中看门狗(watchdog)的设计思想。
常规的分析思路:
上述手段只能分析一些比较简单的异常,如遇到NativePollOnce等异常时就无法分析了。今日头条有分享一系列文章,个人觉得阐述的非常深入浅出,受益匪浅。详情请自行阅读:
今日头条 ANR 优化实践系列 - 设计原理及影响因素
今日头条 ANR 优化实践系列 - Barrier 导致主线程假死
今日头条 ANR 优化实践系列分享 - 实例剖析集锦
今日头条 ANR 优化实践系列 - 监控工具与分析思路