android 4.4电池管理流程 Rock.Tong
Framework\base\services\java\com\android\server
├── SystemServer.java
创建了BatteryServices、PowerManagerService、ActivityManagerService
├── BatterySevices.java
监听底层上报的battery事件,广播电池发生改变的消息
Framework\base\services\java\com\android\server\am
├── ActivityManagerService.java
创建了BatteryStatsService
├── BatteryStatsService.java
统计和记录电池参数的信息,创建了BatteryStatsImpl
Framework\base\services\java\com\android\server\power
├── PowerManagerService.java
监听电池发生变化的广播消息,并调节系统的电源状态,例如亮屏
Framework\base\core\java\com\android\internal\os\
├── BatteryStatsImpl.java
统计和记录电池参数的信息,并通知其他模块
读取返回给上层
System\core\healthd
├── healthd.cpp---init.rc里的service healthd /sbin/healthd -n critical
创建uevent socket,监听内核上报的内核事件
├── BatteryMonitor.cpp---监听uevent上报的事件,读取文件中的电池参数,返回给注册器
初始化本地电池数据结构,将power_supply路径下属性节点路径填充进去,
├── BatteryMonitor.h---new BatteryPropertiesRegistrar(this);
├── BatteryPropertiesRegistrar.cpp---bool BatteryMonitor::update(void)
创建电池属性监听器,并将其注册到Android的系统服务中
├── BatteryPropertiesRegistrar.h
Framework\base\services\java\com\android\server
├── SystemServer.java
创建了BatteryServices、PowerManagerService、ActivityManagerService
├── BatterySevices.java
监听底层上报的battery事件,广播电池发生改变的消息
Framework\base\services\java\com\android\server\am
├── ActivityManagerService.java
创建了BatteryStatsService
├── BatteryStatsService.java
统计和记录电池参数的信息,创建了BatteryStatsImpl
Framework\base\services\java\com\android\server\power
├── PowerManagerService.java
监听电池发生变化的广播消息,并调节系统的电源状态,例如亮屏
Framework\base\core\java\com\android\internal\os\
├── BatteryStatsImpl.java
统计和记录电池参数的信息,并通知其他模块
读取返回给上层
System\core\healthd
├── healthd.cpp---init.rc里的service healthd /sbin/healthd -n critical
创建uevent socket,监听内核上报的内核事件
├── BatteryMonitor.cpp---监听uevent上报的事件,读取文件中的电池参数,返回给注册器
初始化本地电池数据结构,将power_supply路径下属性节点路径填充进去,
├── BatteryMonitor.h---new BatteryPropertiesRegistrar(this);
├── BatteryPropertiesRegistrar.cpp---bool BatteryMonitor::update(void)
创建电池属性监听器,并将其注册到Android的系统服务中
├── BatteryPropertiesRegistrar.h