news 2026/4/3 4:36:03

稳定性(二):ANR

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
稳定性(二):ANR

组件类 ANR

  • 当 AMS 通过 Binder 向应用进程派发跨进程任务时,系统会同步启动一个倒计时器(例如针对 Service 启动的 20 秒阈值),这一“埋炸弹”机制实质上将异步任务转化为带有超时约束的同步契约。应用进程在完成任务后必须通过 Binder 回调主动“拆弹”
  • AMS 利用 MainHandler 发送延迟消息实现精确计时
  • Android 15 对后台服务施加了更严格的约束:前台服务必须在 3 秒内完成初始化并调用 startForeground(),否则系统将直接触发 ANR。

Input 类 ANR

  • InputDispatcher 会通过 socket 与窗口建立事件通道,并在事件派发后启动超时检测。
  • 当事件被分发后,系统通过 MonitoredTimeout 机制跟踪其处理状态。
  • 默认超时时间为 5000 毫秒(可通过系统属性调整),超时检测采用事件驱动模式,在新事件到达、应用回调完成或周期性心跳检查时触发。
  • 一旦检测到超时,系统会通过 WindowManagerService 通知 ActivityManagerService,并收集包括 InputDispatcher 状态及应用进程信息在内的诊断数据,随后可能触发 ANR 弹窗及进程重启流程。
  • input事件5秒之内再次有事件才会ANR,如果没有不会弹窗

常见原因

综述:

  • 任何的耗时操作
  • 线程:阻塞 死锁
  • 资源不够:自身消耗 不能释放 系统分配

细分:

  • Binder 通信数据量过大
  • service binder 的数量达到上限
  • SystemServer Binder 锁竞争太多,导致等锁超时
  • 频繁 GC 触发 STW 导致主线程暂停,处理事件时间被拉长
  • 大量 SharedPerference 同时读写
  • SurfaceFlinger 超时
  • System Server 中 WatchDog 出现 ANR
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 13:02:13

有限元方法入门宝典 - 何晓明教授的全套学习资源解析

有限元方法入门宝典 - 何晓明教授的全套学习资源解析 【免费下载链接】有限元基础课程资源-何晓明 本仓库提供了一个关于有限元基础课程的资源文件下载,课程由何晓明讲授。资源文件包括上课课件、九次作业的MATLAB代码以及课堂答疑内容。这些资源非常适合正在学习这…

作者头像 李华
网站建设 2026/3/31 23:32:54

终极指南:如何在Google Apps Script中实现OAuth2认证

终极指南:如何在Google Apps Script中实现OAuth2认证 【免费下载链接】apps-script-oauth2 An OAuth2 library for Google Apps Script. 项目地址: https://gitcode.com/gh_mirrors/ap/apps-script-oauth2 想要在Google Apps Script中轻松实现OAuth2认证&…

作者头像 李华
网站建设 2026/3/30 23:46:42

创客匠人峰会新视角:AI 时代知识变现的 “组织化转型”—— 从个人 IP 到 “AI+IP” 组织的增长革命

引言:峰会核心洞察 —— 知识变现的竞争已升级为 “组织能力” 的竞争2025 年 11 月 22 日 - 25 日,由创客匠人主办的 “全球创始人 IPAI 万人高峰论坛” 在厦门圆满落幕。这场汇聚近万名创业者、投资人及行业领袖的盛会,以 “AI 重构生产力&…

作者头像 李华
网站建设 2026/3/21 22:27:17

VFlow流处理平台终极指南:简单快速部署与配置使用

VFlow是由Verizon Digital开发的开源流处理平台,专注于提供高性能数据处理解决方案。该平台能够高效处理多种网络流协议,包括IPFIX、Netflow和sFlow,为网络流量分析、安全监控和容量规划提供强大的技术支撑。 【免费下载链接】vflow 项目地…

作者头像 李华
网站建设 2026/3/26 16:19:28

部署Prometheus+Grafana监控平台

可视化监控方案在宿主机上编写Prometheus配置文件 mkdir /etc/prometheus vi /etc/prometheus/prometheus.yml文件配置内容如下: global:scrape_interval: 15sevaluation_interval: 15s alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093 r…

作者头像 李华
网站建设 2026/3/19 12:03:59

15、文件与进程操作全解析

文件与进程操作全解析 1. 文件权限与所有权管理 1.1 文件权限修改 在系统中,普通文件的默认权限是所有者、所属组和其他用户都有读权限,所有者和所属组有写权限,且任何人都没有执行权限。若要修改权限,可通过以下两种方式: - 八进制模式 :例如,若要使只有所有者有…

作者头像 李华