Android4.4的电池管理功能用于管理电池的充、放电功能。整个电池管理的部分包括Linux电池驱动、Android电池服务、电池属性和参数、电池曲线优化四个部分。 | ||
App层 | Apps |
|
frameworks/base/core/java/android/os | 定义对外的接口,真正的实现在下面的文件中 | |
Framework层 | frameworks/base/services/java/com/android/server/power | Android系统的上层电源管理服务: |
JNI层 | frameworks/base/services/jni |
|
Native层 | frameworks/native/services/powermanager | 和Binder Proxy紧密联系 |
HAL层 | 可能用vendor厂家提供的 | libhardware, libhardware_legacy, 到底用的是哪个? |
Driver层 | kernel/drivers/base/power | Linux电池驱动用于和PMIC交互、负责监听电池产生的相关事件,例如低电报警、电量发生变化、高温报警、USB插拔等等。 |
Kernel层 | kernel/kernel/power |
|
硬件层 |
| 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 |