一、 SWT 手機重啟問題簡介
SWT(Software Watch Dog )主要用來監控SystemServer等重要線程/Service的運行情況。如果發現其阻塞超過60s,看門狗進程就會把系統重啟,進而保證系統可以恢復到正常狀態。
判斷阻塞的方法有如下兩種。
1.利用 Services 注冊monitor 去Check
2. 發送handler 到重要的Loop 線程來Check 是否阻塞。
主要是:Main Thread、UI Thread、IO Thread、Display Thread、WMS、Other Services。
3.SWT 判斷阻塞的方法
SWT 判斷阻塞的方法
二、 SWT 手機重啟問題處理流程
SWT 處理流程:
1.每半分鐘30scheck 一次system_server 進程
檢查系統是否卡住,如果卡住,dump一次system_server的backtrace
2.一分鐘卡住后kill,并重新計數
如果卡住,第二次dump,并kill掉system_server進程 ,否則重新計時。
3.SWT 處理大致流程如下
SWT 處理流程
三、 SWT 手機重啟問題的原因
導致SWT重啟原因的原因有很多種。
1.主要導致的原因如下:
檢查SWT 原因分類
四、 SWT 手機重啟問題分析流程
首先搜索關鍵watchdog,查看是否有重啟發生。
SWT 流程分析
五、SWT 手機重啟問題分析舉例
1.分析 trace ,確認線程關系
線程被Block搜索關鍵字held by
確認線程關系
確認線程關系
3.線程死鎖
確認Block的線程是否有閉環的死鎖關系。
線程死鎖
線程死鎖
4.Binder的Server 端卡住
線程狀態Native,并且callstack中含有一對
IPCThreadState::waitForResponse
IPCThreadState::talkWithDriver
的明顯特征。
Bind的Server端卡住
Bind的Server端卡住
5.SurfaceFlinger 卡住導致重啟
搜索關鍵字I watchdog,
查看是否有surfaceflinger hang,默認卡住40s,就會重啟。
SurfaceFlinger 卡住
6.Native 方法執行時間過長導致重啟
線程狀態Native,查看是否有
PowerManagerService.nativeSetAutoSuspend
Native 方法執行時間過長
7.Zygote Fork 進程時卡住
線程狀態Native,查看是否有
Process.zygoteSendArgsAndGetResult
Zygote Fork 進程時卡住
8.Dump 時間過長
Dump超過60s可能會引起手機重啟。
搜索關鍵字dumpStackTraces或dumpStackTraces process
Dump 時間過長
9.前面有ANR 發生
前面有ANR 發生
前面有ANR 發生
10.前面有fatal JE NE KE 等Exception發生
前面有fatal JE NE KE 等Exception發生
11.自動化測試腳本有call dumpsys 去dump 系統信息
自動化測試腳本有call dumpsys 去dump 系統信息
六、 Android O以上導 Log 注意事項
Android O以上的mtklog和db不在同一個目錄,需要執行以下adb命令 導Log.
//1. 導 MTK log adb pull /sdcard/mtklog //2. 導 AEE log,如果沒有,請執行第3步 adb pull /data/aee_exp //3.導 data 下MTK緩存 的aee log adb pull /data/vendor/mtklog/aee_exp
-
手機
+關注
關注
35文章
6932瀏覽量
159245 -
看門狗
+關注
關注
10文章
580瀏覽量
71593 -
線程
+關注
關注
0文章
507瀏覽量
20092 -
SWT
+關注
關注
0文章
4瀏覽量
6709
原文標題:六、 Android O以上導 Log 注意事項
文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
MPC5748G SWT溢出的數量是否有限制?
SPC57 SWT靜止不動
多載波SWT測量PXA怎么使用
是什么原因導致手機不斷重啟呢
長按電源鍵10S強制重啟手機優化
S32K3x4EVB-Q257 SWT會無限期地重置怎么解決?
MPC5777C swt_1在swt_0工作時不工作怎么解決?
MPC5777C可以更改swt1的時鐘速度嗎?
S32R294的SWT jd_watchpt怎么使用?
基于SWT的多線程解決方案
蘋果手機經常死機或自動重啟應該如何解決
手機卡頓,重啟和關機再開,差別竟有這么大!

評論