美文网首页Android专题Android
Android中的ANR到底是如何产生的、如何解决?

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

作者: 千夜零一 | 来源:发表于2021-03-16 23:40 被阅读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)。

相关文章

网友评论

    本文标题:Android中的ANR到底是如何产生的、如何解决?

    本文链接:https://www.haomeiwen.com/subject/znojcltx.html