SWT手机重启问题分析指南

一、 swt 手机重启问题简介
swt(software watch dog ) 主要用来监控systemserver等重要线程/service 的运行情况。如果发现其阻塞超过 60s ,看门狗进程就会把系统重启,进而保证系统可以恢复到正常状态。
判断阻塞的方法有如下两种。
1.利用 services 注册monitor 去check
主要是: ams、 foreground thread
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
确认线程关系
2.线程被 waiting 结合代码分析。
确认线程关系
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  


7805三端稳压管输入电压范围是多少 7805和稳压二极管5v的区别
小米7最新消息:攻关屏下指纹识别技术 或五月发布
2017年WWDC苹果开发者发布会,有哪些重点,值得你惊叫?
投资超213亿!这座城市强化“双招双引”推动传感器产业高质量发展
小米40w无线快充实测 4000mAh电池39分钟57秒充满
SWT手机重启问题分析指南
创建jar文件的过程
化肥元素测定仪的详细操作步骤介绍
OGS触控模块市场乐观 宸鸿光电忙布局
可调片电容的工作原理_可调贴片电容的作用
我国农村宽带信息网络建设已经取得了巨大成效
Silicon Labs推出业界最快的隔离电流感测放大器
硬核DIY:油管把Up主180W的锐龙线程撕裂者塞到笔记本里
测定cod的方法有哪些?
在电源及电机控制中常用到过流保护功能
豪威科技计划每年新增12寸晶圆测试量42万片
制作一个Arduino Uno电源板
Wi-Fi和5G有望在6GHz频段共存?
什么是LC连接器?
首个5G边缘计算开源平台EdgeGallery在Gitee上正式开源