一、 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
-
手机
+关注
关注
36文章
6980浏览量
160636 -
看门狗
+关注
关注
10文章
607浏览量
72573 -
线程
+关注
关注
0文章
508浏览量
20753 -
SWT
+关注
关注
0文章
4浏览量
6828
原文标题:六、 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的多线程解决方案
苹果手机经常死机或自动重启应该如何解决
手机卡顿,重启和关机再开,差别竟有这么大!

SWT手机重启问题分析指南
评论