Android ANR常见案例分析 - 详解
1.前言
体验不好的一种表现,所以这时候对于系统性能优化来说,就是在系统开发过程中,对于用户在使用的过程中,出现ANR无响应弹窗也
应对ANR也是非常有必要的,接下来分析下ANR常见案例
2.ANR产生的相关原理分析
Android anr原理
由于主线程(UI线程)被阻塞或者执行了耗时处理导致的。就是Android ANR(Application Not Responding)是指应用程序在执行过程中,由于某种原因导致其无法在规定时间内(通常是5秒)响应用户的输入或平台的事件,从而触发系统显示的警告。这通常
ANR的原理和工作机制:
触发条件:
主线程(通常称为UI线程)在一定时间内(通常是5秒)无法完成事件处理,例如响应用户的触摸、按键操作或系统的事件(如Activity启动、服务绑定等)。
检测机制:
Android系统为每个应用程序提供了一个主线程,这个线程负责UI的更新和事件处理。系统通过一个名为Looper的机制来管理消息循环,其中包括一个队列来存放待处理的事件和消息。
系统使用Handler类和Looper类来分发事件和消息。当UI线程在处理某个事件时,如果超过了一定的时间限制(例如5秒),系统会检测到这种情况。
ANR常见案例分析如下:
日志分析 (logcat): 搜索关键字ANR in, am_anr, Slow operation等。查看主线程日志输出
1.应用进程自身引起的:
调用thread的join()方法、sleep()方法、wait
浙公网安备 33010602011771号