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 |
相关文章推荐
- 史上最全的maven pom.xml文件教程详解
- AndroidStudio怎样导入jar包
- Android HOOK工具Cydia Substrate使用详解
- Android Studio 快捷键
- ANDROID_MARS学习笔记_S04_008_用Listview、自定义adapter显示返回的微博数据
- AndroidStudio快捷键
- Android程式設計 - 如何中止Thread
- 配置同时使用PowerMock和Robolectric对Android进行单元测试
- SpriteSheet(精灵列表)在Android中的应用
- ActionBar学习笔记(一)
- Android 通过JNI实现守护进程,使得Service服务不被杀死
- EditText属性及使用
- [转]Android dex分包方案
- .Net 转战 Android 4.4 日常笔记(3)--目录结构分析
- .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
- .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决
- .Net 转战 Android 4.4 日常笔记(6)--Android Studio DDMS用法
- .Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译
- .Net 转战 Android 4.4 日常笔记(8)--常见事件响应及实现方式
- .Net 转战 Android 4.4 日常笔记目录