Android ANR(超时未响应) 触发的原理(基于Android 9/10)

ANR的触发场景

1.前台应用启动服务(startservice)

2.后台应用启动服务

3.前台广播10秒(android.content.intent#Flag_receiver_***)

4.后台广播60秒

5.CP

6.输入事件

*以上时间数据基于android 10(不同的api会有差异)

* targetSdkVersion 8.0以后才有前台ANR

*检测ANR的机制:消息机制,looper循环去检测

android 源码中的 超时时间定义:

常见service触发机制:

*handleThread处理耗时操作容易导致ANR

附下图说明service的启动过程

*每个进程binder线程数是16个 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值