前言
电量优化,大部分高级安卓开发可能也只知道一个概念,大型公司项目中电量优化却直接关系用户的体验。要完全掌握电量优化技能,adb使用一定要很熟
常用adb命令
1.重置手机电量分析数据
adb shell dumpsys batterystats --reset
2.导出当前电量数据报告 ,会到处很多日志,包括ANR日志也在里面
adb bugreport
3.完成数据导出后,打开地址battery-histogram: 可能需要梯子
4.针对系统的Doze模式下,adb使用
Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性 ,当用户一段时间没有使用手机的时候,Doze模式通过延缓app后台的CPU和网络活动减少电量的消耗 App Stanbdy延缓用户最近没有使用app的后台网络活动
比如大部分应用有推送功能,不希望在锁屏、不充电时被Doze模式干掉
检测方式:
查看当前手机状态 :
adb shell dumpsys battery
模拟手机未充电状态:
adb shell dumpsys battery unplug
让手机IDLE有效:
adb shell dumpsys deviceidle enable
进入IDLE模式方法:
1.屏幕亮着状态按下电源按钮关闭屏幕,敲入命令让其进入IDLE模式
第一种在黑屏后执行以下命令后,依次出现各种状态:
C02S2K53FVH5:~ zhouhao287$ adb shell dumpsys deviceidle step
Stepped to deep: IDLE_PENDING
C02S2K53FVH5:~ zhouhao287$ adb shell dumpsys deviceidle step
Stepped to deep: SENSING
C02S2K53FVH5:~ zhouhao287$ adb shell dumpsys deviceidle step
Stepped to deep: LOCATING
C02S2K53FVH5:~ zhouhao287$ adb shell dumpsys deviceidle step
Stepped to deep: IDLE
- 强制进入:
adb shell dumpsys deviceidle force-idle
查看并验证当前手机是否已经进入IDLE模式:
adb shell dumpsys deviceidle
mScreenOn=true
mNetworkConnected=true
mCharging=false
mMotionActive=true
mNotMoving=false
mLocating=false mHasGps=true mHasNetwork=false mLocated=false
mState=IDLE mLightState=OVERRIDE
mInactiveTimeout=+30m0s0ms
mActiveIdleOpCount=-1
mNextAlarmTime=+3h58m32s895ms
mNextIdlePendingDelay=+10m0s0ms
mNextIdleDelay=+6h0m0s0ms
mMaintenanceStartTime=-1m29s91ms
adb shell dumpsys deviceidle disable 和 adb shell dumpsys battery reset 即可让手机恢复状态。再敲入 adb shell dumpsys battery 查看一下手机是否已经恢复状态
网友评论