[Android穩定性] Android System Watchdog原理簡單梳理(基於O)

#[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打開即可
如有問題或需要提醒自己注意的讀者可自行添加
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章