1. 程式人生 > >Android Fk:【Stability】System Watchdog原理簡潔梳理

Android Fk:【Stability】System Watchdog原理簡潔梳理

#Android Fk:【Stability】System Watchdog原理簡潔梳理
##一.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開啟即可
如有問題或需要提醒自己注意的讀者可自行新增
這裡寫圖片描述