ANR案例

149 阅读1分钟

日志太长,我只想简单点

  1. 死锁导致anr案例。

    tid=1 locked1 binder#methed1

    tid=3 binder#methed1 wait locked2

    tid=25 locked2 wait locked3

    tid=56 locked3 wait locked2

    分析:主线程锁住,有binder调用,被调用的线程在等待,继续分析发现线程25、56因为两个锁出现互锁,两处同属于同一个实例,改争用同一个锁从而避免死锁。
    死锁:需要了解死锁的4个必要条件&解决办法。
    
  2. 广播接受处理超时

    tid=1 locked binder#methed1

    tid=121 binder#methed1

    分析:主线程锁住,有binder调用,被调线程没有等待或者锁,说明正在执行,超时了。需要根据实际业务走异步处理。
    
  3. 待补