ANR

https://developer.android.com/topic/performance/vitals/anr.html#identify_the_problem

https://developer.android.com/training/articles/perf-anr.html?hl=zh-cn

http://droidyue.com/blog/2015/07/18/anr-in-android/

官方列的主要可能原因

这些常见的形式导致ANR:

  1. 该应用程序是在主线程在做涉及 I/O 慢操作。(主线程做慢I/O操作

  2. 该应用程序中耗时计算做在主线程中。(主线程做耗时计算

  3. 主线程正在做一个同步调用跨进程,以及此进程需要很长时间才能返回。(主线程做binder等待返回的耗时同步binder跨进程任务

  4. 主线程被阻塞等待对于被另一个线程上发生长时间操作同步的块。(主线程等待别一个线程执行耗时操作同步代码块

  5. 他主线程与另一个线程死锁,无论是在你的过程中,或通过粘合剂电话。主线程不只是等待很长的操作完成,但在死锁的情况。欲了解更多信息,请参见 死锁维基百科。(死锁、死循环等

Last updated

Was this helpful?