☰
第232篇 ANR 机制全解:超时阈值与 traces 分析
2026/10/20 9:10:56 网站建设 项目流程

先把结论放在前面:ANR 不是"卡了就算",而是系统在一个特定条件下做出的判定——某个组件在规定时间内没有完成系统要求的动作。判定权在ActivityManagerService,依据是四类超时阈值加上被阻塞组件的类型;应用侧拿到的ApplicationNotRespondingDialog只是系统告知用户后的结果,真正的处理入口是ApplicationNotRespondingHandler与 traces 采集。

面试里这题属于"高频实战题"。答得浅的是"ANR 就是主线程卡了超过 5 秒";答得深的是能说清广播、输入、Service、BroadcastReceiver 四类场景各自的阈值,指出 broadcast 超时在部分版本是 10 秒与 60 秒两档,讲得清 traces 文件的结构与CPU: xx% user + yy% sys的解读方式,以及ApplicationExitInfo这条新链路。

四类超时阈值

ANR 的阈值定义在系统侧,不同 Android 版本略有差异。理解这四类是答题的基础:

场景典型阈值判定条件说明
输入事件无响应5 秒按

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询