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

Android Framework源码解读 - Audio - SoundTrigger(1) - AIDL SoundTrigger语音识别架构是Android5.0才引入,在Android7.0逐步完善。 官方介绍:https://source.android.google.cn/devices/audio/sound-trigger The Sound Trigger feature provides apps with the ability to listen for certain acoustic events, like hotwords, in a low-power and privacy- 阅读详情

 一、如何开启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 Framework源码解读 - Audio - SoundTrigger(2) 在上一篇中Android Framework源码解读 - Audio - SoundTrigger(1) - AIDL,提到startRecognition如何到达HAL层(主要本例中使用的唤醒词检测驱动来自厂商,HAL层的代码实现也是厂商提供),请看下图: 相关代码位于./frameworks/av/soundtrigger/ISoundTrigger.cpp 、./frameworks/av/services/soundtrigger/SoundTriggerHwService.cpp 共4步: 阅读详情

相关推荐

Android SoundTrigger架构学习

SoundTriggerHelper是一个应用辅助工具类,它是应用和服务(这里是SoundTriggerSerivice)之间的适配层,其内部封装了常用的API接口,供APP直接调用;SoundTriggerHelper与SoundTriggerService之间使用HIDL/AIDL 进行交互;它是SoundTrigger架构的服务核心,运行在system server进程下,负责SoundTrigger整个系统的调度;registerSoundModel() // 模型注册。

zhanghui962623727的博客 1309

2023 Android性能分析工具全解析:从Perfetto到LeakCanary的实战指南

性能分析是软件工程中确保应用从“能用”迈向“好用”的核心环节,其原理在于通过系统化的数据采集与监控,定位代码、系统及硬件层面的瓶颈。这项技术的核心价值在于将性能优化从被动救火转变为主动预防,直接提升用户体验与应用稳定性。在Android开发领域,其典型应用场景包括解决界面卡顿、优化启动速度、治理内存泄漏以及降低能耗。本文聚焦于当前Android性能分析的主流生态,深入探讨了以Perfetto和LefCanary为代表的工具链。Perfetto作为下一代系统级追踪平台,为分析复杂的卡顿与多线程问题提供了统一视

weixin_33924770的博客 320

Android 9闪屏问题终极指南:从GPU驱动到亮度设置的14种修复方案

本文详细解析了Android 9闪屏问题的14种修复方案,涵盖从GPU驱动更新到亮度设置调整的多种方法。针对黑屏、白屏、闪屏等常见现象,提供了硬件诊断、系统优化和高级故障排除的实用技巧,帮助用户彻底解决这一困扰。

weixin_29291069的博客 105

MyoWare 2.0肌肉传感器实战:从肌电信号采集到无线可穿戴交互

肌电信号是肌肉活动时产生的生物电信号,其采集与分析是人机交互、康复医疗和运动科学等领域的基础技术。其原理是通过电极捕捉皮肤表面的微伏级电信号,经过放大、滤波和整流,将其转换为可处理的模拟或数字信号。这项技术的核心价值在于能够将人体的生理活动转化为机器可理解的指令,从而实现非接触、直觉化的控制。在应用层面,它广泛用于手势识别、假肢控制、肌肉疲劳监测和虚拟现实交互等场景。本文以MyoWare 2.0传感器及其生态为核心,详细解析了如何利用ESP32等微控制器,构建一套完整的无线肌电信号采集与处理系统,并深入探讨

chengyixian7877的博客 375

Synares病毒实战:如何手动清除C盘隐藏的Synaptics.exe(附资源修复脚本)

本文详细介绍了Synares感染型病毒的手动清除方法,该病毒伪装成Synaptics触摸板驱动,感染EXE和XLSX文件。文章提供了从病毒行为分析、母体清除到被感染文件修复的全流程指南,并附有实用的资源修复脚本和防御加固方案,帮助用户彻底清除这一顽固病毒。

lg888的博客 2267

小米路由器安装Misstar tools 和MIXBOX

1.该教程适用于如下路由器: 小米路由器1代硬盘版(R1D) 小米路由器mini(R1CM) 全新小米路由器硬盘版(R2D) 小米路由器3(R3) 小米路由器3G(R3G) 小米路由器Pro(R3P) 小米路由器HD(R3D) 2.Misstar2.0在线安装 方法如下: 1.根据路由器对应文件解压文件,把解压目录(比如小米3路由器为R3)和offline_install.sh到U盘根目录,并插入路由器 2.ssh登录后,cd到U盘的目录,比如小米3路...

wybarcelona的博客 2万+

相机图像质量研究(15)常见问题总结:光学结构对成像的影响--暗角

老式相机的暗角往往比较明显,周围一圈能够明显感觉到亮度下降的很多,当然有些电源模仿手持相机的摄影效果,也能看到周围明显的亮度下降。一、

xiaoshixiu的专栏 1113

保姆级教程:用U盘给浪潮服务器装系统(含RAID驱动加载技巧)

本文提供了一份详细的浪潮服务器U盘安装系统指南,重点介绍了RAID驱动加载技巧与实战步骤。从准备工作到系统安装全流程,涵盖RAID配置、驱动加载方法及常见问题排查,帮助用户高效完成服务器系统部署。特别强调RAID驱动与服务器型号的匹配性,确保安装过程顺利。

uuu88的博客 713

工程师必看:如何用MINITAB快速计算传感器寿命(附详细步骤)

本文为工程师提供了使用MINITAB软件快速计算传感器寿命的详细实战指南。文章重点阐述了如何通过数据预处理、回归分析拟合阿伦尼斯模型,并最终预测平均寿命与置信区间,帮助工程师高效处理加速寿命试验数据,提升可靠性分析工作的准确性与效率。

weixin_29296241的博客 240

如何浏览与下载全球免费的地图高分辨率(亚米级)的遥感影像?

前言 如果你想使用商业卫星的高分辨遥感影像,一般价格昂贵。我们可以使用地图平台上免费的高分辨率数据。目前数据源很多,比如说google earth、天地图、四维地球、必应地图等等。这些影像统一有一个共同点就是:RGB三波段;Web地图瓦片服务。这意味着我们可以通过瓦片服务下载影像,但下载的影像只有三个波段,分别是 一.引言 二、可使用高分辨率的地图数据源 1.Google Earth影像 2.Esri World Image 3.天地图 4.必...

锐多宝的地理空间 2万+

COMSOL介电弹性体数值仿真指南:预拉伸圆形DEA的稳态变形分析(I)

本期博客是《COMSOL介电弹性体数值仿真指南》系列博客中的一期。聚焦于介电弹性体驱动器(DEA)中最为经典的预拉伸圆形DEA驱动器构型,对其物理特性及数值仿真总体方案进行介绍与讨论。

忘了面孔的Batou 448

使用 Visual Studio Code 搭建 SAP UI5 本地开发环境

工欲善其事,必先利其器。时至今日,SAP 提供了非常多的 SAP UI5 开发工具,既包含本地搭建的,也包含浏览器里远端使用的工具,比如 WebIDE 和 Business Application Studio. 我们访问下面这个链接,就能找到所有这些工具的安装或者配置步骤: https://tools.hana.ondemand.com/#sapui5 如果想选择本地开发,SAP 推荐的工具是 Visual Studio Code,也就是本文要介绍的内容。 也可以下载 WebIDE 的本地安装包,将其安

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: dumpsys activity
下一篇: Android开机流程分析 -- Zygote
Kitty_London
博客等级 码龄12年 104粉丝 69原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值