#[Android穩定性] Android System Watchdog原理簡單梳理 (基於O)
##一.Watchdog概述
1.Watchdog定義
framework層有一個軟件WatchDog用於定期檢測關鍵系統服務是否發生死鎖事件,主要監控system_server進程各個關鍵線程是否block和核心服務的大鎖是否被長期佔用。
2.Watchdog種類
一種是mMonitorChecker,檢測關鍵服務大鎖是否被持有block,通過在Fg線程中持鎖操作完成;
另一種是mHandlerCheckers,檢測Systsem_server關鍵工作線程handler消息處理是否被block,會將檢測處理放置
監測線程的handler消息隊列最前面,保證監測線程下一次處理的一定是檢測處理,若檢測處理遲遲不被操作,及該監測線程
被block,將會觸發watchdog;
##二. Watchdog原理簡述
可以閱讀以下博客基本上寫的很詳細了,就不贅述了。
https://blog.csdn.net/omnispace/article/details/72529114
https://duanqz.github.io/2015-10-12-Watchdog-Analysis
1.檢查block的HandlerChecker:
2.Watchdog觸發主要過程:
##三.總結:
watchdog詳細原理:
附上上面使用draw.io繪製的流程圖原稿以及下面詳細流程圖的uml文件:
https://pan.baidu.com/s/19z2jhopVjHtfE-I_KdOejA
watchdog_simplify.xml 是上面的流程圖原稿,使用draw.io導入即可
uml文件使用安裝plantuml插件的intellij或AndroidStudio打開即可
如有問題或需要提醒自己注意的讀者可自行添加