本文共 2795 字,大约阅读时间需要 9 分钟。
主要进行硬件开关的控制和清理一次应用
配置信息
public final static int mPowerSaveBrightnessValue = (int) (0xFF * 0.45); public final static int mPowerSaveScreenOffTimeoutValue = 30000; public final static boolean mPowerSaveCloseRotationLock = true; public final static boolean mPowerSaveCloseGps = false; public final static boolean mPowerSaveCloseScreenSaver = true; public final static boolean mPowerSaveCloseWifi = false; public final static boolean mPowerSaveCloseWifiIfUnConn = true; public final static boolean mPowerSaveCloseWifiAp = true; public final static boolean mPowerSaveCloseBt = false; public final static boolean mPowerSaveCloseBtIfUnConn = true; public final static boolean mPowerSaveCloseGprs = false; public final static boolean mPowerSaveCloseSyncAuto = true; public final static boolean mPowerSaveCloseVibrateOnTouch = true;
主要进行硬件开关的控制和严格的进程管理
public void startPowerSave() { updateFlagStatue(); startSuperPowerConfig(mContext); startGMSPowerSave(); startGooglePowerSave(); startBrightnessValuePowerSave(); startScreenOffTimeOutPowerSave(); startBlueToothPowerSave(); startWiFiPowerSave(); startWiFiApPowerSave(); startGprsPowerSave(); startSyncAutoPowerSave(); startScreenSaverPowerSave(); startRotationLockPowerSave(); startVibrateOnTouchPowerSave(); startCameraDoubleTapPowerSave(); startLockScreenShowNotificationPowerSave(); startPictorialSettingsPowerSave(); startGpsPowerSave(); startBlackGesturePowerSave(); mShareUtil.setShare(KEY_FLAG, mPublicFlag); }
主要分为应用冻结,同步唤醒,自启动管理三项应用管控。
解决安装大量第三方应用带来的卡顿和待机发热问题。
实测700多个应用下可以进行合理的管控针对 frameworks\base\core\res\res\xml\power_profile.xml 进行校正得到较为准确的耗电数据
当电量在20%,15%,5%的低电量下会触发低电量提醒
可以使用 adb shell dumpsys battery set level 100 进行快速调试
可以使用 adb shell “echo 55> /sys/devices/platform/battery/Battery_Temperature”
进行模拟测试主要根据屏幕背光进行省电
主要进行待机的唤醒和jobscheduler管理,主要分为light和deep的两个睡眠模式
主要进行前台进程资源优先,后台进程被限制,adj中级别过低的,会被及时清理
网络防火墙管理,主要对后台进程限制过度调用网络资源
优化了lte模式下的省电,防止modem的耗电异常
对高耗电场景尤其是游戏和视频进行无感知的亮度控制
比较普通模式提升1倍的夜间待机时长
防止后台进程异常启动
针对界面级进行帧率控制,尤其是游戏的动态场景
针对界面级和常用场景进行CPU核数和频率的控制,个别情况下可以适当修改CPU电压改善功耗异常
部分视频白名单进行硬解码,达到省电效果
常用应用后台正常运行,即使白名单应用如果长期不使用也会被kill
针对7万个应用进行分类并记录应用使用情况,场景化优化,例如不同场景进行帧率和CPU、分辨率控制等等