上帝说要有ANR,于是Bugly就有了ANR上报,那么ANR到底是什么?
最近很多童鞋问起精神哥ANR的问题,那么这次就来聊一下,鸡爪怎么泡才好吃,噢不,是如何快速定位ANR。
ANR是什么
简单说,通常就是App运行的时候,duang~卡住了,怎么搞都动不了。当卡住超过一定时间,Android系统认为这就是一次“ANR(Application Not Responding)”。
具体说,在以下情况发生时,会发生ANR(可能在不同ROM 中时间有所更改):
-
用户的输入在5s内没被App响应;
-
BroadcastReceiver的onReceiver()超过10s;
-
Service中各生命周期函数执行超过20s。
ANR必须死
用户在App的绝大部分操作,都需要有App的主动回应,比如按下按钮之后按钮样式的改变、下拉滚动条内容的移动、加载资源时的菊花转转转,它们都是“操作-反馈”配对的模式。对于我们手机上最常见的触摸操作,0.1s的响应延迟已经有很明显的卡顿感了。而对于常见的ANR,用户至少要等5s以上!

本文深入探讨了Android平台上的ANR(应用程序无响应)问题,详细解释了ANR产生的原因、典型场景及其对用户体验的影响,并提供了通过日志进行问题定位的方法。
最低0.47元/天 解锁文章
1367





