Android
  • Introduction
  • Android Studio
    • AS的项目结构
    • adb
    • aapt
    • dx
    • Gradle
    • Kotlin on android
  • Smaller
  • decompiler
  • MISC
  • 框架 framework
  • 设计模式
  • dex
  • reinforce加固
  • code
    • Java Tips
      • 负数 negative
      • The Java Tutorials
        • 原始数据类型 Primitive Data Types
      • 运算符
        • 一元运算符
        • 算术运算符
        • 移位运算符
        • 关系运算符
      • 逻辑运算符
        • 逻辑 非 ! 关系值表
        • 逻辑 与 && 关系值表
        • 逻辑 或 || 关系值表
        • 与 & And
        • 或 | Or
        • 非 ~ Nor
        • 异或 ^ Xor
        • 赋值运算符
        • tips
      • == equals
      • Try Catch finally
        • 有意思的东西
      • String、StringBuilder、StringBuffer区别
      • inner classes、nested static classes
    • runtime_memory
    • javaStackTrace
    • Guava
    • FFMPEG
    • GoogleSamples
    • Full Kotlin Reference
    • release屏蔽Log代码
    • Thread
  • ANR
  • 注解改进代码检查
Powered by GitBook
On this page

Was this helpful?

ANR

PreviousThreadNext注解改进代码检查

Last updated 5 years ago

Was this helpful?

官方列的主要可能原因

这些常见的形式导致ANR:

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

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

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

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

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

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/
死锁