Android5.1--电源管理之省电模式分析

本文分析了Android 5.0及5.1系统的省电模式开启方式,包括设置入口和代码实现。详细探讨了省电模式的流程,如ACTION_POWER_SAVE_MODE_CHANGING和ACTION_POWER_SAVE_MODE_CHANGED广播的处理,涉及PowerManagerService、BatteryController、PowerUI等多个组件。在省电模式下,系统会降低屏幕亮度、关闭动画、阻止震动并可能关闭GPS和语音识别等功能,以延长电池使用时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一、如何开启5.0省电模式

打开安卓5.0设备的设置选项,然后前往电池菜单,点击菜单键,弹出并选择“节电助手”,随后点击顶部的开关便可。

此外,要是用户运行的是原生版安卓,可以下拉安卓通知中心,然后点击电池按钮,便可进入电池界面,找到“省电模式”。

            

开启此模式后,屏幕亮度会调低,后台数据(大部分)关闭,动画全部取消,震动关闭,基本上和厂商们的省电模式行为差不多,都是以牺牲可用性来换取使用时间

不同的是,开启此模式后,Android 5.0除了一个通知图标之外,还会用无处不在的亮橙色来提醒你:顶部状态栏、底部通知栏全部变为橙色,很多图标等素材资源增加橙色,甚至一些应用的顶部栏里也会变色。

二、相关代码

设置应用入口文件:

./packages/apps/Settings/src/com/android/settings/fuelgauge/BatterySaverSettings.java

 

托盘显示:

./frameworks/base/packages/SystemUI/src/com/android/systemui/power/PowerUI.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java

 

托盘中callback回调函数onPowerSaveChanged():

./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java

 

onPowerSaveChanged():(systemui内部处理)

./frameworks/base/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/doze/DozeService.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java

./frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java

 

GPS根据mode 更新处理:

./frameworks/base/services/core/java/com/android/server/location/GpsLocationProvider.java:

 

发送模式切换ing/切换 广播:

./frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java

 

voice根据mode 更新处理:

./frameworks/base/services/voiceinteraction/java/com/android/server/voiceinteraction/SoundTriggerHelper.java

三、省电模式流程分析

1、设置应用入口文件:

./packages/apps/Settings/src/com/android/settings/fuelgauge/BatterySaverSettings.java

节能助手开启或关闭时,调用onSwitchChanged方法,参数isChecked表示节能助手处于开启(true)或关闭(false)状态。开启时isChecked为true,发送消息mStartMode开启新线程开启省电模式;否则关闭省电模式。

2、提供调用接口文件:

.\frameworks\base\core\java\android\os\PowerManager.java

3、发送模式切换广播:

./frameworks/base/services/core/java/com/android/server/power/PowerManagerService.ja

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值