你是否了解过ANR?
什么是 ANR
ANR(Application Not responding),即应用程序无响应,简单来说,就是用户界面突然卡住,无法响应用户的操作(比如触摸事件)。
Android 系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成 ANR。一般情况下,ANR 后会弹出一个提示框,告知用户当前应用无响应,用户可选择继续等待或者关闭应用。
出现场景
InputDispatching Timeout:5 秒内无法响应屏幕触摸事件或键盘输入事件。
BroadcastQueue Timeout :在执行前台广播(BroadcastReceiver)的onReceive()函数时 10s 没有处理完成,后台为 60s。
Service Timeout :前台服务 20s 内,后台服务在 200s 内没有执行完毕。
ContentProvider Timeout :ContentProvider的 publish 在 10s 内没进行完。
二:.如何定位是前端问题还是后台问题
1.首先确定是界面问题还是功能性问题
如果是界面问题,如文字错误,样式错误,等,则需要截图
如果时功能问题,控制台的问题至少定位到www的问题还是数据库问题,如果是www问题至少要定位到是前端还是后端问题;如果是数据库问题至少要定位到 是服务端接口问题还是中间件问题。
2.前端bug主要分为3个类别:HTML、CSS、Javascript三类问题
最大的区别方法:
出现样式的问题基本都是CSS的bug
出现文本的问题基本都是html的bug
出现交互类的问题基本都是Javascript的bug
3.我们可以从接口url是否正确,传参是否正确,如果是接口URL,传参不正确,解释前端问题;
后端问题:响应是否正确,如果不正确,就是后台不正确,具体判断是不是后端的问题。我们可以查看报错日志,通过日志分析问题,可以查看数据库确认数据的正确性,也可以查看缓存是否正确
参考网址:https://blog.csdn.net/sinat_21118695/article/details/103268769