极力推荐Android 开发大总结文章:欢迎收藏
程序员Android 力荐 ,Android 开发者需要的必备技能

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

1.SWT 手机重启问题 (阻塞60s 系统重启)简介
2.SWT 手机重启问题处理流程
3.SWT 手机重启问题的原因
4.SWT 手机重启问题分析流程
5.SWT 手机重启问题分析举例

欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

1. SWT 手机重启问题 (阻塞60s 系统重启)简介

SWT(Software Watchdog ) 主要用来监控SystemServer 重要线程/Service 的运行情况。
如果判断阻塞 60s ,就会把系统重启,来保证系统恢复正常状态。

判断阻塞的方法

  • 利用Services 注册monitor 去Check

主要是: AMS、 Foreground Thread

  • 发送handler 到重要的Loop 线程来Check 是否阻塞。

主要是: Main ThreadUI ThreadIO ThreadDisplay ThreadWMS 、Other Services

SWT 判断阻塞的方法 图文描述如下:

SWT 判断阻塞的方法

2. SWT 手机重启问题处理流程

SWT 处理流程:
半分钟
检查系统是否卡住,如果卡住,dump 一次system_server 的backtrace

一分钟
如果卡住,第二次dump,并kill掉 system_server ,重新计时。

SWT 处理大致流程如下:

SWT 处理流程

3. SWT 手机重启问题的原因

导致 SWT 重启原因如下:

检查SWT 原因分类

4. SWT 手机重启问题分析流程

搜索关键 watchdog

SWT 流程分析

5.SWT 手机重启问题分析举例

确认线程关系

线程被 Block 搜索关键字held by

确认线程关系

线程被 Waiting 结合代码分析。

确认线程关系

线程死锁

确认Block的线程是否有闭环的死锁关系。

线程死锁

线程死锁

Binder的Server 端卡住

线程状态Native,并且callstack中含有一对IPCThreadState::waitForResponse-->IPCThreadState::talkWithDriver 的明显特征。

Bind的Server端卡住

Bind的Server端卡住

SurfaceFlinger 卡住导致重启

搜索关键字 I watchdog ,查看是否有 surfaceflinger hang,默认卡住40s,就会重启。

SurfaceFlinger 卡住

Native 方法执行时间过长导致重启

线程状态Native,查看是否有PowerManagerService.nativeSetAutoSuspend

Native 方法执行时间过长

Zygote Fork 进程时卡住

线程状态Native,查看是否有 Process.zygoteSendArgsAndGetResult

Zygote Fork 进程时卡住

Dump 时间过长

Dump 超过60s 可能会引起手机重启。
搜索关键字dumpStackTraces 或 dumpStackTraces process

Dump 时间过长

前面有ANR 发生

前面有ANR 发生

前面有fatal JE NE KE 等Exception发生

自动化测试脚本有call dumpsys 去dump 系统信息

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。

既然都看到这里,领两个红包在走吧!
以下两个红包每天都可以领取

1.支付宝搜索 522398497,或扫码支付宝红包海报。

支付宝扫一扫,每天领取大红包

2.微信红包,微信扫一扫即可领取红包

微信扫一扫,每天领取微信红包

小礼物走一走,来简书关注我

SWT 手机重启问题分析相关推荐

  1. MTK平台手机重启问题分析

    阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.AEE 系统机制简介 二.AEE 重 ...

  2. Android 手机重启相关内容

    极力推荐Android 开发大总结文章:欢迎收藏 程序员Android 力荐 ,Android 开发者需要的必备技能 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...

  3. Android 手机重启解决方案

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 1.MTK 平台AEE 搜集重启问题介绍 欢迎关注微信公众号:程序员Android 微信公众号:Progra ...

  4. android afw模式,[HUAWEI-TITANC328]手机加密功能开启后,工作区中添加超级备份手机不断重启的分析报告...

    工作区中添加超级备份手机不断重启的分析报告 [华为反馈] [TIT-AL00C328B120_AFW_必现]创建工作空间后升级系统,升级失败,手机循环重启. 通过分析log发现,实际上这个问题与OTA ...

  5. android swt问题分析,Android 重启问题分析指南

    阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一. AEE 系统机制简介 二.AEE ...

  6. Android 系统(126)---Android的死机、重启问题分析方法

    Android的死机.重启问题分析方法 阅读数:11986 Android的死机.重启问题分析方法 1.     死机现象 1.1      死机定义 当手机长时间无法再被用户控制操作时,我们称为死机 ...

  7. Android的死机、重启问题分析方法

    Android的死机.重启问题分析方法 原文链接:https://blog.csdn.net/jinlu7611/article/details/50592385 1.死机现象 1.1 死机定义 当手 ...

  8. Android 系统(74)--Android重启原因分析

    Android重启原因分析 重启原因分类 1.上层造成重启 system_server被杀 watchdog重启 重要线程阻塞 2.kernel造成重启 空指针 非法地址 3.kernel watch ...

  9. android手动触发ke,手机重启问题快速分析定位指南

    #####阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一. AEE 系统机制简介 二 ...

  10. 安卓手机重启日志_[手机维修自学教程]苹果安卓 手机无线重启故障原因维修技巧...

    应粉丝要求,今天跟大家聊聊手机的重启问题,在实际的手机维修中,界面故障是比较好修的,然后就是不开机故障,针对不开机大部分维修朋友根据耗电电流的大小来判断大致故障位置,通过分析测量找出故障.那么针对重启 ...

最新文章

  1. python基于tpot训练模型并抑制输出stackingestimator、而是输出单模型例如xgboost设置
  2. android json.out,Android 之 json数据的解析(jsonReader)
  3. 企业架构研究总结(24)——TOGAF架构开发方法(ADM)之机会及解决方案阶段
  4. 本地提交到yarn_Yarn运行Flink作业 0449
  5. 即时系统和非即时系统的区别?_企业即时通讯系统拥有哪些二次开发能力?
  6. python自学记录 pydev安装
  7. wordpress网站提示“建立数据库连接时出错”
  8. Skyline软件二次开发初级——6如何在WEB页面中的三维地图上进行坐标和方向计算...
  9. delphi商业源码
  10. 四足鼎立,北京互联网产业地图
  11. 2022-03微软漏洞通告
  12. 我的世界正版端游服务器ip地址,我的世界1period;8小游戏服务器ip地址 | 手游网游页游攻略大全...
  13. LeetCode——150. 逆波兰表达式求值(Evaluate Reverse Polish Notation)[中等]——分析及代码(Java)
  14. 两个字符串中最长公共单词 C语言
  15. cacai安装与配置
  16. linux文件管理作业,N31-第二周作业—文件的管理
  17. AD9851电路设计
  18. 云栖大会上海峰会,AI、云计算、大数据领衔的新产品哪些看点不容错过?
  19. 十四、系统与环境函数
  20. “95后”“00后”互联网产品新取向、市场分析

热门文章

  1. 交替性注意力_征服一个男人的秘诀:推拉交替
  2. 实现一个函数 isSimilar,对比两个字符串是否相似
  3. 有1000桶酒,其中1桶有毒。而一旦吃了,毒性会在1周后发作。 现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠。 (老鼠的使用量越少越好,注意,毒性1周后才会发作,而且一周后必须出
  4. 【AI底层逻辑】——篇章6:人工神经网络(深度学习算法)
  5. No qualifying bean of type ‘service.Impl.BookSaveServiceImpl‘ available
  6. ABAPGIT安装ABAP2XLSX
  7. 2023 ”蓉漂杯“高层次人才创新创业大赛
  8. Crystal FLOW for C++
  9. Effie:笔记整理神器
  10. 给力!华为鸿蒙操作系统入门到精通