Android Power management的层次结构。


Android4.4的电池管理功能用于管理电池的充、放电功能。整个电池管理的部分包括Linux电池驱动、Android电池服务、电池属性和参数、电池曲线优化四个部分。

App层

Apps

 

frameworks/base/core/java/android/os
├── PowerManager.java

定义对外的接口,真正的实现在下面的文件中

Framework层

frameworks/base/services/java/com/android/server/power
├── PowerManagerService.java

Android系统的上层电源管理服务:
1. 系统待机
2. 屏幕背光
3. 按键背光
4. 键盘背光
5. 用户事件的处理
6. 传感器上层查询和控制
7. LCD亮度调节

JNI层

frameworks/base/services/jni
├── com_android_server_power_PowerManagerService.cpp

 

Native层

frameworks/native/services/powermanager
│── IPowerManager.cpp

IPowerManager.stub
是什

和Binder Proxy紧密联系

HAL层

可能用vendor厂家提供的


//下面是Android提供的

hardware/libhardware/include/hardware
├── power.h

hardware/libhardware_legacy/power
└── power.c

libhardware, libhardware_legacy, 到底用的是哪个?

Libpower
WakeLock的信息传递到内核空间

Driver层

kernel/drivers/base/power
.
── clock_ops.c
── common.c
── generic_ops.c
── main.c
── opp.c
── qos.c
── runtime.c
── sysfs.c
└── wakeup.c

kernel/drivers/power
── power_supply_core.c
── power_supply.c
└── power_supply_sysfs.c

Linux电池驱动用于和PMIC交互、负责监听电池产生的相关事件,例如低电报警、电量发生变化、高温报警、USB插拔等等。

Kernel层

kernel/kernel/power
── qos.c
── main.c
── process.c
── suspend.c
── wakelock.c
── userwakelock.c
── earlysuspend.c
── fbearlysuspend.c
── suspend_time.c
── poweroff.c

 

硬件层

 

PMU, PMIC

 


Android4.4的电池管理功能用于管理电池的充、放电功能。整个电池管理的部分包括Linux电池驱动、Android电池服务、电池属性和参数、电池曲线优化四个部分。
App层Apps 
frameworks/base/core/java/android/os
├── PowerManager.java
定义对外的接口,真正的实现在下面的文件中
Framework层frameworks/base/services/java/com/android/server/power
├── PowerManagerService.java
Android系统的上层电源管理服务:
1. 系统待机
2. 屏幕背光
3. 按键背光
4. 键盘背光
5. 用户事件的处理
6. 传感器上层查询和控制
7. LCD亮度调节
JNI层frameworks/base/services/jni
├── com_android_server_power_PowerManagerService.cpp
 
Native层frameworks/native/services/powermanager
│── IPowerManager.cpp

IPowerManager.stub是什么?
和Binder Proxy紧密联系
HAL层可能用vendor厂家提供的


//下面是Android提供的

hardware/libhardware/include/hardware
├── power.h

hardware/libhardware_legacy/power
└── power.c
libhardware, libhardware_legacy, 到底用的是哪个?

Libpower将WakeLock的信息传递到内核空间。
Driver层kernel/drivers/base/power
.
├── clock_ops.c
├── common.c
├── generic_ops.c
├── main.c
├── opp.c
├── qos.c
├── runtime.c
├── sysfs.c
└── wakeup.c

kernel/drivers/power
├── power_supply_core.c
├── power_supply.c
└── power_supply_sysfs.c
Linux电池驱动用于和PMIC交互、负责监听电池产生的相关事件,例如低电报警、电量发生变化、高温报警、USB插拔等等。
Kernel层kernel/kernel/power
├── qos.c
├── main.c
├── process.c
├── suspend.c
├── wakelock.c
├── userwakelock.c
├── earlysuspend.c
├── fbearlysuspend.c
├── suspend_time.c
├── poweroff.c
 
硬件层 PMU, PMIC



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值