Android专题Android

Android中的ANR到底是如何产生的、如何解决?

2021-03-16  本文已影响0人  千夜零一

Android中的ANR到底是如何产生的

首先,ANR:是说Application Not Responsing 应用程序无法响应。一般是一些耗时操作导致。

产生ANR的场景

 (1)input事件超过5 s 没有处理完成;
 (2)service executing 超时(bind,create,start,unbind等等),前台20s,后台200s;
 (3)广播处理超时,前台10S,后台60s;
 (4)ContentProvider执行超时,20s。


常见的原因

  A.耗时操作,如复杂的layout,庞大的for循环,IO等;
  B.被Binder 对端block;
  C.被子线程同步锁block;
  D.Binder被占满导致主线程无法和SystemServer通信;
  E.得不到系统资源(CPU/RAM/IO)。

上一篇 下一篇

猜你喜欢

热点阅读