• Android watchdog


    看门狗是一种在软件中用于检测和处理挂起及死锁的定时器实现。Android 内置的看门狗机制
    可监视一组重要的系统服务:活动管理器服务、窗口管理器服务和电源管理器服务。
    这些系统服务往往会在相关内核或原生代码出现问题时发生挂起或死锁。这类问题可能包括
    硬件故障、内核驱动程序或原生代码挂起、线程在 IPC 调用时被阻止等。

    如果任何受监视的系统服务出现卡断情况,Android 看门狗定时器会超时,随后看门狗会将其
    终止。但是,这往往会导致多米诺效应,因为它会终止上级系统服务器进程,进而终止 zygote
    进程,最终导致 Android 框架与设备重启。
    默认情况下,一旦系统进程超过一分钟未做出响应,看门狗便会将其终止。看门狗超时往往
    在“应用程序未响应”(ANR) 情况之后发生。

    检查机制

    Android 看门狗最初由系统服务器启动。看门狗初始化后,会创建大量处理程序检查器,负责
    监视各项系统服务。
    看门狗一旦启动,便会无限期地每隔 30 秒执行一次检查。在每次检查间隙,看门狗会使用处
    理程序检查器执行如下检查:
    ■ 尝试获取并等待系统服务监视锁,可能的状态有以下几种:
    □ 完成 – 超时前成功获取锁
    □ 等待 – 仍继续等待锁且尚未超时(不到一分钟)
    □ 过期 – 已超时(超过一分钟)
    ■ 检查连接至每一个主线程的消息 looper,确认队列中待处理的消息是否已超时(一分
    钟)。
    如果任何处理程序检查器报告过期状态或消息超时,则将输出相关消息并终止挂起的服务。

    要在调试时禁用自动重新启动特性,请删除如下文件:

    /frame

  • 相关阅读:
    2022年戴森设计大奖中国赛区三强揭晓 着眼世界问题,提出解决方案
    阿里巴巴专场——第322场周赛题解
    AutoReleasePool 工作机制
    java基于springboot+vue的园区入驻停车管理系统
    【Python】计算机视觉 手掌图片穴位识别
    P4451 [国家集训队] 整数的lqp拆分
    聚观早报 | 保时捷将于月底挂牌上市;宁德时代首创MTB技术落地
    26-SpringBoot 缓存
    Java方法的使用
    java位运算及移位运算你还记得吗
  • 原文地址:https://blog.csdn.net/weixin_47456647/article/details/125496939