BatteryStatsService主要负责电池电量的统计信息,首先我们简单的看下电量统计服务的启动过程。
BatteryStatsService启动过程
从BatteryStatsService的启动时序图可以看出,BatteryStatsService服务是在ActivityManagerService服务中启动的
1. 在SystemServer中startBootstrapServices()方法中创建了ActivityManagerService服务的对象,并调用了SystemServiceManager的startService()方法启动了BatteryStatsService服务
首先分析BatteryStatsService的构造方法
mStats = new BatteryStatsImpl(systemDir, handler, mHandler);
构造方法中创建了一个BatterystatsImpl对象,BatteryStatsService真正的处理逻辑其实都是在BatteryStatsImpl类中。
在BatteryStatsImpl类的构造函数中首先创建了一个文件
if (systemDir != null) {mFile = new J