android ANR

http://gityuan.com/2019/04/06/android-anr/

// TODO


超时时长

Service 是通过Handler 添加超时Message, 执行完成后会remove掉,如果没有remove,就会报ANR
Service 报告流程

ActiveServices.realStartServiceLocked()

bumpServiceExecutingLocked()

scheduleServiceTimeoutLocked()

ActiveServices.serviceTimeout()

mAm.mAppErrors.appNotResponding()
Input ANR
InputDispatcher::dispatchOnceInnerLocked()

findFocusedWindowTargetsLocked()

checkWindowReadyForMoreInputLocked() // 检查窗口是否有能力再接收新的输入事件

InputDispatcher::handleTargetsNotReadyLocked() // 事件5s之内还没有分发完毕,则调用

InputDispatcher::onANRLocked()

NativeInputManager.notifyANR()

InputManagerService.notifyANR()

InputMonitor.notifyANR()

AMS.inputDispatchingTimeOut()
AMS.UiHandler.sendMessage()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是ANR ANR(Application Not Responding)就是应用在规定的时间内没有响应用户输入...
    lbtrace阅读 3,553评论 3 9
  • ==================================================== 一:什么...
    爱情小傻蛋阅读 10,124评论 3 31
  • 在实际情况中,当Android项目的用户量特别大时候,一些细小的问题也会被放大,ANR问题就是一个典型的例子。一些...
    Uprising阅读 54,358评论 4 116
  • android ANR发生的原因总结和解决办法 ANR的全称是application not responding...
    码农朱同学阅读 2,993评论 0 4
  • 从技术的角度看,ANR对用户体验的伤害仅次于Crash。多年的开发实践过程中遇到过不少ANR问题,有两次印象比较深...
    omottec阅读 2,307评论 0 10

友情链接更多精彩内容