电池管理

电源管理结构

kernel/power/:该目录下实现了系统的电源管理框架
Drivers/power/:该目录实现的是设备电源管理的基础框架,为驱动提供了电源管理接口,所有的其他设备驱动都依赖于这个框架
android定义了几种低功耗状态:
earlysuspend让某些设备选择进入某中功耗低的状态
suspend是除了电源管理意外的其他外围模块和CPU均不工作
hibernation所有内存镜像都被写入磁盘,然后系统关机,重启后系统能恢复到关机之前的状态

android电源管理机制

android的电源管理机制主要是通过锁和定时器来切换系统的状态,框架层:java中通过JNI访问C++函数->HAL->sysfs文件系统->调用内核提供函数实现
main.c(pm_init)初始化函数完成,sys/power/* 设备节点生成

分析Framework层

frameworks/base/core/java/android/os/PowerManager.java
frameworks/base/service/java/com/android/server/power/PowerManagerService.java

1.文件PowerManager
提供给应用层调用,核心实现在文件PowerManagerService中
goToSleep强制设备进入sleep状态,wakeUp强制设备进入wakeUp状态
发生user activity事件,电源设备会切断到Full on的状态,并同时Reset screen off time

2.PowerManagerService服务是Android系统的上层的电源管理服务,主要负责系统待机,屏幕背光,按键背光以及用户事件的处理

JNI层架构分析

文件frameworks/base/core/jni/android_os_Power实现

与linux kernel的交互是通过文件hardware/libhardware/power/power.c实现,Android和kernel的交互主要通过sys文件的方式实现

kernel层架构分析

drivers/android/power.c,drivers/base/main.c,drivers/base/power/suspend.c,drivers/base/power/resume.c
kernel/power/main.c,kernel/power/wakelock.c,kernel/power/unwakelock.c,kernel/power/earlysuspend.c

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容