Android机顶盒M1上ANR问题的排查方法和应对方案

1. ANR的理论背景

1.1 ANR的定义

ANR是Application Not Response的英文缩写,即应用程序无响应。当某个应用(非visible)出现ANR时,会在主界面中弹出一个“应用无响应”的弹出框,严重影响用户体验。

ANR是Android自身消息调度逻辑中的一套针对应用的耗时检测机制,每一个应用都是依靠UI主线程去绘制画面从而展现给用户,但是,这其中就可能出现某些应用的UI主线程

中由于逻辑太过复杂或者UI主线程未能在有限的时间内处理完四大组件(Activity、Service、Broadcast和Content Provider)的特定逻辑,Android为了防止不影响其自身消息调度

逻辑中的其他消息的传递,于是通过ANR的机制来报告给用户,用户在其弹出的窗口中可以选择“等待”或者“关闭应用”。

1.2 ANR的机制

Android定义了四大组件的ANR机制,具体如下表:

组件名称 耗时字段定义耗时字 耗时阈值 含义
 Activity  KEY_DISPATCHING_TIMEOUT  5秒 针对某个应用进行有效按键后,其未在该阈值内响应则会出现ANR
 Service

SERVICE_TIMEOUT

SERVICE_BACKGROUND_TIMEOUT

前台服务20秒

后台服务200秒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值