1 ANR即Application Not Responding(应用程序无响应)
2 只有java才会产生,因为是JVM收到异常信号后触发的该逻辑。
所以native 层或者apk的jni以下不会产生anr。
3 kill -3 pid_number
产生应用的trace文件,会打印该进程的各线程堆栈
4 ANR一般是主线程响应超时导致问题,
要不就是在做其他事情而block了导致ui线程没有响应,要不就是响应了逻辑但返回结果太慢。
5 可能发生的原因:
binder 卡住:server端api间有deadlock的情况
binder server端线程数量到达上限,也会卡住
读写文件
操作数据库
上网等
自己的api有锁的影响