ANR возникает, когда main thread не обрабатывает input/lifecycle вовремя: долгий I/O, синхронный binder, lock contention, тяжёлый inflate/layout, бесконечный цикл, редкий native hang.
Разбор
- SharedPreferences commit, database на main, сеть на main — классика.
- BroadcastReceiver onReceive >~10s.
- Service без ухода в фон при долгой работе.
- Читайте /data/anr/traces или Play ANR clusters.
Итог
ANR = блокировка main thread; профилактика — асинхронность и StrictMode на этапе разработки.