ANR原理与问题分析

2020-03-09  本文已影响0人  leo567
  1. ANR工作原理
    Application Not Responding,应用程序无响应。工作线程向检测线程发送请求,检测线程初始化检测状态,开始计时,工作线程业务执行完成后向检测线程发送清除检测请求,检查线程在计时时间内未收到清除请求则进行超时处理并发送ANR弹窗。
  2. ANR分类
  1. ANR问题的分析方法
  1. 广播ANR分析
    广播投递即开始计时,并设置超时消息。广播事件共享UI线程消息队列,要排队,此队列消息处理直接影响广播事件的处理。调用onReceive()处理广播,处理效率直接影响计时。finishReceiver()通知AMS不及时,将影响到超时消息的移除。
    'adb shell dumpsys activity broadcasts' 查看广播注册信息,查看广播都有谁接收。

  2. ANR问题的分析方法
    1)查找ANR进程原因。
    2)检查cpu负载情况,cpu是否被抢占
    3)查看调用堆栈,分析代码(耗时,死循环,线程阻塞或挂起)

  3. ANR问题的优化方向

上一篇下一篇

猜你喜欢

热点阅读