安卓出现ARN的原因

ANR 出现的原因汇总如下:

1.主线程执行了耗时操作,比如数据库操作或网络编程

2.其他进程(就是其他程序)占用 CPU 导致本进程得不到 CPU 时间片,比如其他进程的频繁读写操作可能会导致这个问题。

细分的话,导致 ANR 的原因有如下几点:

1.耗时的网络访问

2.大量的数据读写

3.数据库操作

4.硬件操作(比如 camera)

5.调用 thread 的 join()方法、sleep()方法、wait()方法或者等待线程锁的时候

6.service binder 的数量达到上限

7.system server 中发生 WatchDog ANR

8.service 忙导致超时无响应

9.其他线程持有锁,导致主线程等待超时

10.其它线程终止或崩溃导致主线程一直等待

厚积薄发
原文地址:https://www.cnblogs.com/yr434/p/14029939.html