ANR(App not respond)是Android定义的一种稳定性问题类型;系统发出关键消息,同时发出此消息的超时消息。处理逻辑有两种情况:
- 关键消息被执行,超时消息被清除;ANR不会发生
- 超时消息被执行;触发ANR机制,通知AMS抓取堆栈,生成dropbox内容,kill目标进程
本专栏分为以下章节详细解析ANR:
稳定性问题ANR-input
稳定性问题ANR-广播
稳定性问题ANR-service
稳定性问题ANR- Activity
稳定性问题ANR-provide
简介
ANR检测点逻辑都在system_server进程中,假设如果system_server出现hang的场景,ANR逻辑有可能就不会被触发。而且ANR都是针对Android app的机制。因此每种机制中都会依据App当时的状态,如前台还是后台等行为,进行特殊处理。