阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android
ANR(Application Not Responding )应用无响应的简称,是为了在 APP卡死时,用户 可以强制退出APP的选择,从而避免卡机无响应问题,这是Android系统的一种自我保护机制。
通过本篇阅读,您将学习到以下内容
一、ANR 概述
二、ANR的类型
三、ANR 产生的原因
四、如何分析解决 ANR问题
五、ANR 问题分析解决建议
六、MTK 平台 ANR问题分析
一、 ANR 概述
在Android中,应用程序响应由Activity Manager和Window Manager系统服务进行监视。ANR(Application Not Responding ),则是Android的一种自我保护措施,当主线程出现卡顿时候,Android 系统会给用户一个弹出提示,让用户手动选择继续等待还是强制关闭此APP。
当Android检测到以下情况之一时,Android将显示特定应用程序的ANR对话框,比如以下三种情况下ANR将经常发生:
1.
UI Thread超过5 s没有响应2.
Broadcast广播超过10 s没响应3.
Service服务超过20s没响应
因此,为避免ANR发生,请不要在主线程中进行耗时操作,耗时操作请尽量在子线程中运行。
4.发生
ANR截图 如下:

ANR Dialog 举例
二、 ANR的类型
ANR在Android 手机中很常见,按其相应类型可以分为以下 常见 三种类型。
ANR类型如下:
按键响应分发超时(Key Dispatch Timeout)
默认5 s,超过则会出现ANR。广播超时(Broadcast Timeout)
默认10 s,超过则会出现ANR。服务超时(Service Timeout)
默认20 s,超过则会出现ANR。
三、ANR 产生的原因
在Android系统中

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



