Android Framework 框架测试之 关机
极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能
本篇文章主要介绍 Android
开发中的 关机 部分知识点,通过阅读本篇文章,您将收获以下内容:
1.如何初步定位异常关机问题
1.如何初步定位异常关机问题
由于异常关机问题可能存在多种可能性(异常重启,异常关机,hang机,掉电),请务必厘清复现过程和手法,保留问题现场,以下信息请在提case的时候一起提供:
1 . 确认是亮屏关机还是灭屏关机?关机时是否有播放关机动画?
如果有播放关机动画可以检查关机流程的调用是否有异常。
2 . 是直接关机还是关机后会自动重启?
可以检查log中是否有走ShutdownThread或者reboot流程,是否有对应的exception或db产生。
3 . 异常关机时,连上uart线是否可以吐log?插上usb后是否能显示关机充电动画?
如果可以吐log,可以通过log判断是hang机还是关机充电;若能正常显示关机充电动画可以确认之前的行为是关机而不是hang机。
4 . 如果按Powerkey可以重新开机,请注意按powerkey的时长是多少?
如果是关机,按Powerkey 2~4s即可重新开机;如果是Hang机,按Powerkey要8s以上才会强制掉电重启。
5 . 检查log中的Battery电压等信息,判断是否为低电或者电压波动异常大?
在 events_log 中 搜索关键字 battery_level,查看电池电量、电压、温度信息04-20 17:18:49.211290 1035 1035 I battery_level: [37(电量),3682(电压),280(电池温度)]
6 . 检查log中的Thermal信息,是否有电池温度或者板温过60度的情况?
同上5
7 . 如果是电池本身的过流/过压保护,异常关机后按Powerkey不能重启,必须要拔插电池才能恢复。
8 . 提供的log中请包括关机mobile log(最好能抓logcat和uart log),关机后再开机的mobile log(包括pl_lk log、kernel_log.boot、main_log.boot、last_kmsg、property、cmdline等信息),如果有exception信息请一并提供对应db文件。
Android O 之后log提供注意事项
Android O 中 mtklog 和db 不在同一个目录,提交log 时需要同时导出来:
adb pull /sdcard/mtklog
adb pull /data/aee_exp
adb pull /data/vendor/mtklog/aee_exp
2.关机流程上层浅析
MTK 平台关机线程类frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java
继承ShutdownThread 线程类:vendor/mediatek/proprietary/frameworks/base/services/core/java/com/mediatek/server/MtkShutdownThread.java
1. Google 原生ShutdownThread实现
ShutdownThread 浅析总结
ShutdownThread 浅析总结
ShutdownThread 类主要方法概览
ShutdownThread 类主要方法
部分静态变量如下:
部分静态变量
关机线程大致步骤
关机线程大致步骤
ShutdownThread Run 方法实现
Run 方法实现
发送关机广播
发送关机广播
关闭Activity Manager
关闭Activity Manager
关闭PackageManager
关闭PackageManager
关闭Radios
关闭Radios
关闭StorageManagerService
关闭StorageManagerService
关闭 StorageManager
关闭 StorageManager
播放关机动画,SystemServer 关闭结束
播放关机动画,SystemServer 关闭结束
关机完成震动,实现真正意义上的关机
关机完成震动
shutdown 构造方法 概览
shutdown 构造方法 概览
shutdown 构造方法
shutdown 构造方法
shutdownInner方法
shutdownInner方法
CloseDialogReceive
CloseDialogReceiver
beginShutdownSequence
beginShutdownSequence
关机进度条弹框showShutdownDialog
关机进度条弹框showShutdownDialog
Reboot 构造方法
Reboot 构造方法
重启进入安全模式 rebootSafeMode
重启进入安全模式 rebootSafeMode
MtkShutdownThread
MTK 平台关机自定义 继承ShutdownThread 线程类:vendor/mediatek/proprietary/frameworks/base/services/core/java/com/mediatek/server/MtkShutdownThread.java
MtkShutdownThread 继承关系
MtkShutdownThread 概览
MtkShutdownThread 概览
MtkShutdownThread 大致概览总结
MtkShutdownThread 大致概览总结
MTK 重写shutdownAnimationService方法
MTK 重写shutdownAnimationService方法
关闭背光灯 setBacklightOff
关闭背光灯 setBacklightOff
delayForPlayAnimation
delayForPlayAnimation
重写 showCustomizedShutdownAnimation
重写 showCustomizedShutdownAnimation
Runnable mDelayDim
Runnable mDelayDim
bootanimCust 方法
bootanimCust 方法
startBootAnimation
startBootAnimation
重写 customizedShutdownSequence
重写 customizedShutdownSequence
至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。
既然都看到这里,领两个红包在走吧!以下两个红包每天都可以领取
1.支付宝搜索 522398497,或扫码支付宝红包海报。
支付宝扫一扫,每天领取大红包
2.微信红包,微信扫一扫即可领取红包
微信扫一扫,每天领取微信红包
小礼物走一走,来简书关注我