您的位置:首页 > 移动开发 > Android开发

Android Power management的层次结构。

2016-02-22 13:43 756 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: