android framework层及 WatchDog

本文深入探讨了Android系统中Watchdog机制的工作原理及其在保证SystemServer稳定性和系统可用性方面的作用。介绍了Watchdog如何通过定时检查关键服务的状态来预防死锁,并在必要时重启SystemServer。同时列举了被监控的关键服务并解释了Watchdog的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- 探索Android FrameWork底层开发视频全套
http://pan.baidu.com/s/1kUx35K7 密码:kjwv 解压密码:www.mukedaba.com_fw

-- Android Watchdog源码简析- https://www.cnblogs.com/GMCisMarkdownCraftsman/p/6117129.html
Android 系统稳定性 - Watchdog- http://rayleeya.iteye.com/blog/1963408

Watchdog - https://github.com/wojteklu/Watchdog

Watchdog位于frameworks/base/services/java/com/android/server/ ,系统框架服务目录下,可以看到名为Watchdog.java文件
  由于Android的SystemServer内有一票重要Service,所以在进程内有一个软件实现的Watchdog机制,用于监视SystemServer中各Service是否正常工作。如果超过一定时间(默认30秒),就dump现场便于分析,再超时(默认60秒)就重启SystemServer保证系统可用性。
  Watchdog是SystemServer中的独立线程,它隔一定时间间隔会向各监视线程调度一次检查操作。这个检查操作当中会调用已注册的Monitor对象。如果Monitor对象上产生死锁,或是关键线程hang住,那么该检查必定不能按时结束,这样就被Watchdog检查到。
  Watchdog是一个软件实现的检测SystemServer进程内死锁或挂起问题,并能够从中恢复的机制。除了Watchdog外,Android中还有一些自检容错及出错信息收集机制,前者有ANR,OOM Killer,init中的重启机制等,后者有Dropbox,Debuggerd,Eventlog,Bugreport等
  在 SystemServer里运行的服务中,最重要的几个服务应该数ActivityManager、WindowManager、 PowerManager 、InputManager、MountService(未启用)、NetworkManagementService。软件的WatchDog主要就是确保这几个服务发生死锁之后,退出SystemServer进程,让init进程重启它,让系统回到可用状态。
  有可能会出现,应用连续ANR或者崩溃,已经启动服务等操作交替出现的时候,超过了TIMEOUT定义的60s,Watchdog monitor在监视到服务持有的锁超过60s没有释放的情况下,认为SystemServer进程异常,强行退出SystemServer进程,由init进程重新启动SystemServer

WatchDog主要作用:
1).接收系统内部reboot请求,重启系统。
2).监护SystemServer进程,防止系统死锁。

提供的问题定位方法:
1.ActivityManagerService.dumpStackTraces
2.dumpKernelStackTraces

被监控的关键服务,这些服务必须实现Watchdog.Monitor接口:
ActivityManagerService
InputManagerService
MountService
NativeDaemonConnector
NetworkManagementService
PowerManagerService
WindowManagerService
MediaRouterService
MediaProjectionManagerService

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值