Android P 省电模式(LowPowerMode)(二) ------ 省电行为
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android P 省电模式(LowPowerMode)(二) ------ 省电行为相关的知识,希望对你有一定的参考价值。
参考技术A 在上篇文章 android P 省电模式(LowPowerMode)(一) ------ 省电模式手动开启流程 中最后分析到,开启省电模式后,会在 BatterySaverController 中回调所有注册的 LowPowerModeListener(onLowPowerModeChanged)和 plugin(onBatterySaverChanged),并发出广播。 我们看一下 系统做了哪些事情来实现省电。主要有 振动,亮度,网络访问,GPS位置信息,动画,语音识别几个方面。
VibratorService.java中回调:
frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java :
frameworks\base\services\core\java\com\android\server\power\BatterySaverPolicy.java :
BatterySaverPolicy.java 这个类很关键,所有关于省电模式的默认配置都在这个类里面初始化,如果要定制省电模式行为的话,这个类会被用到。
回调的流程的最终目的就是根据配置修改了 mLowPowerMode 变量的值,这个值会在调用振动时使用,用以决定要不要振动。
frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java :
frameworks\base\services\core\java\com\android\server\display\DisplayManagerService.java :
frameworks\base\services\core\java\com\android\server\display\DisplayPowerController.java
sendUpdatePowerStateLocked 内部交由 Handler 消息处理,最终会调用 updatePowerState 方法:
BatterySaverPolicy.java 中定义的 默认亮度缩放比例是 0.5,亮度降低一半
mAdjustBrightnessDisabled = parser.getBoolean(KEY_ADJUST_BRIGHTNESS_DISABLED, true); //原生的配置是省电模式情况下默认不调节亮度
mAdjustBrightnessFactor = parser.getFloat(KEY_ADJUST_BRIGHTNESS_FACTOR, 0.5f);
frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java :
9.0上低电量模式下是不关闭动画的,8.0上是关闭的。
frameworks\base\services\core\java\com\android\server\net\NetworkPolicyManagerService.java
低电量模式下主要就是去更新网络访问的规则,没仔细研究,不敢妄言,Android P上也是默认没有打开限制的,开启低电量模式不去限制网络。
frameworks\base\services\core\java\com\android\server\power\batterysaver\BatterySaverLocationPlugin.java :
低电量情况下,灭屏后会关闭GPS,临时限制所有应用访问位置信息。
以上都是 开启低电量模式后,BatterySaverController.java 中主动去回调的,以下是 各模块自己监听 ACTION_POWER_SAVE_MODE_CHANGED 广播后自己处理的
frameworks\base\services\voiceinteraction\java\com\android\server\soundtrigger\SoundTriggerHelper.java :
低电量模式下不识别语音
其他各上层模块,如settings,systemUI 也监听了 ACTION_POWER_SAVE_MODE_CHANGED 广播,主要是做一些 UI上的变化。
PhpStorm代码提示(省电模式)的设置与使用
PhpStorm中有个,Power Save Mode(省电模式),开启则代码不能自动提示,关闭则可以。
开启/关闭:
1、点击“File”菜单,最下面,Power Save Mode,勾选或取消;
2、点击右下角,Event Log,有个 “Disable Power Save Mode”,点击即可关闭省电模式。
以上是关于Android P 省电模式(LowPowerMode)(二) ------ 省电行为的主要内容,如果未能解决你的问题,请参考以下文章