当前位置: 首页 > news >正文

解析Android ANR问题

一、ANR介绍

ANR 由消息处理机制保证,Android 在系统层实现了一套精密的机制来发现 ANR,核心原理是消息调度和超时处理。ANR 机制主体实现在系统层,所有与 ANR 相关的消息,都会经过系统进程system_server调度,具体是ActivityManagerService服务,然后派发到应用进程完成对消息的实际处理,同时,系统进程设计了不同的超时限制来跟踪消息的处理。 一旦应用程序处理消息不当,超时限制就起作用了,它收集一些系统状态,譬如 CPU/IO 使用情况、进程函数调用栈 CallStack,(有些平台比如 MTK,还会打印相应的 Message 出来供调试分析),最后报告用户有进程无响应了( ANR 对话框)。

1.1、ANR类型

ANR 一般有三种类型:

1.1.1、KeyDispatchTimeout

这个主要是按键或触摸事件在特定时间内无响应,一般 Android 平台默认超时时间是 5s 会报 anr,不过有些平台会修改这个时间,比如 MTK 有些平台就是 8s 的超时时间。

这个超时时间可以在 ActivityManagerService.java 查看:

//

http://www.lryc.cn/news/31538.html

相关文章:

  • ESP32设备驱动-MicroSD Card驱动
  • XC7K160T-1FBG484I、XC7A100T-2CSG324I FPGA可编程门阵列 PDF规格书
  • 基于HD-RK3568-IO评估板的读写速度测试报告
  • jconsole远程linux下的tomcat
  • Redis和MySQL如何保持数据一致性?
  • 频谱分析仪的工作原理
  • docker项目自动化部署脚本(认真排版、工作积累)
  • 【经验分享】使用了6年的实时操作系统,是时候梳理一下它的知识点了 | 文末赠书4本
  • 蓝桥杯C/C++程序设计 往届真题汇总(进阶篇)
  • yocto 将kernel添加到rootfs
  • 高通 Android10/12 4 6dof Camera+2RGBCamera异常处理经验总结
  • 项目实战典型案例17——环境混用来带的影响
  • Linux【进程理解】
  • 【华为OD机试2023】数组的中心位置 C++ Java Python
  • “大数据时代下的地理信息可视化:ECharts地图和数据面板实践“
  • MySQL数据库基础
  • 近自由电子近似
  • 【JavaWeb】从输入URL到展示出页面的过程
  • 华为OD机试真题Java实现【数字涂色】真题+解题思路+代码(20222023)
  • Log Structure Merge Tree
  • Python QT5设计UI界面教程
  • uniapp系列-图文并茂手把手教你hbuilder进行uniapp云端打包 - 安心打包
  • 【精品】SpringBoot中基于拦截器实现登录验证功能
  • 哈工大服务科学与工程第一章作业
  • SpringMVC源码:参数解析、方法调用与返回值处理
  • 【MySQL】表的数据处理
  • 反思当下所处的环境,有没有让你停滞不前、随波逐流
  • 小程序(十四)后端-签到成功
  • X264简介-Android使用(一)
  • DetectGPT:使用概率曲率的零样本机器生成文本检测