summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java3
-rw-r--r--services/core/java/com/android/server/am/BatteryStatsService.java7
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java47
-rw-r--r--services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java2
4 files changed, 31 insertions, 28 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 0c70bfe198ce..e583a6cd6b1f 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -20149,8 +20149,7 @@ public class ActivityManagerService extends IActivityManager.Stub
* Returns the {@link BatteryStatsService} instance
*/
public BatteryStatsService getBatteryStatsService() {
- return new BatteryStatsService(mContext, SystemServiceManager.ensureSystemDir(),
- BackgroundThread.get().getHandler());
+ return new BatteryStatsService(mContext, SystemServiceManager.ensureSystemDir());
}
/**
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index eea93374886d..c96c2ff4f2eb 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -381,8 +381,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
}
};
- BatteryStatsService(Context context, File systemDir, Handler handler) {
- // BatteryStatsImpl expects the ActivityManagerService handler, so pass that one through.
+ BatteryStatsService(Context context, File systemDir) {
mContext = context;
mUserManagerUserInfoProvider = new BatteryStatsImpl.UserInfoProvider() {
private UserManagerInternal umi;
@@ -416,7 +415,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
.build();
mPowerStatsUidResolver = new PowerStatsUidResolver();
mStats = new BatteryStatsImpl(mBatteryStatsConfig, Clock.SYSTEM_CLOCK, mMonotonicClock,
- systemDir, handler, this, this, mUserManagerUserInfoProvider, mPowerProfile,
+ systemDir, mHandler, this, this, mUserManagerUserInfoProvider, mPowerProfile,
mCpuScalingPolicies, mPowerStatsUidResolver);
mWorker = new BatteryExternalStatsWorker(context, mStats);
mStats.setExternalStatsSyncLocked(mWorker);
@@ -477,7 +476,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
*/
public static BatteryStatsService create(Context context, File systemDir, Handler handler,
BatteryStatsImpl.BatteryCallback callback) {
- BatteryStatsService service = new BatteryStatsService(context, systemDir, handler);
+ BatteryStatsService service = new BatteryStatsService(context, systemDir);
service.mStats.setCallback(callback);
synchronized (service.mStats) {
service.mStats.readLocked();
diff --git a/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java b/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
index 32656b15b143..c3221e4929bd 100644
--- a/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
+++ b/services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java
@@ -170,7 +170,11 @@ public class BatteryUsageStatsProvider {
final double minConsumedPowerThreshold = query.getMinConsumedPowerThreshold();
final BatteryUsageStats.Builder batteryUsageStatsBuilder;
+ long monotonicStartTime, monotonicEndTime;
synchronized (stats) {
+ monotonicStartTime = stats.getMonotonicStartTime();
+ monotonicEndTime = stats.getMonotonicEndTime();
+
batteryUsageStatsBuilder = new BatteryUsageStats.Builder(
stats.getCustomEnergyConsumerNames(), includePowerModels,
includeProcessStateData, minConsumedPowerThreshold);
@@ -195,35 +199,36 @@ public class BatteryUsageStatsProvider {
UidBatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE,
getProcessForegroundServiceTimeMs(uid, realtimeUs));
}
- }
- final int[] powerComponents = query.getPowerComponents();
- final List<PowerCalculator> powerCalculators = getPowerCalculators();
- for (int i = 0, count = powerCalculators.size(); i < count; i++) {
- PowerCalculator powerCalculator = powerCalculators.get(i);
- if (powerComponents != null) {
- boolean include = false;
- for (int powerComponent : powerComponents) {
- if (powerCalculator.isPowerComponentSupported(powerComponent)) {
- include = true;
- break;
+ final int[] powerComponents = query.getPowerComponents();
+ final List<PowerCalculator> powerCalculators = getPowerCalculators();
+ for (int i = 0, count = powerCalculators.size(); i < count; i++) {
+ PowerCalculator powerCalculator = powerCalculators.get(i);
+ if (powerComponents != null) {
+ boolean include = false;
+ for (int powerComponent : powerComponents) {
+ if (powerCalculator.isPowerComponentSupported(powerComponent)) {
+ include = true;
+ break;
+ }
+ }
+ if (!include) {
+ continue;
}
}
- if (!include) {
- continue;
- }
+ powerCalculator.calculate(batteryUsageStatsBuilder, stats, realtimeUs, uptimeUs,
+ query);
+ }
+
+ if ((query.getFlags()
+ & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY) != 0) {
+ batteryUsageStatsBuilder.setBatteryHistory(stats.copyHistory());
}
- powerCalculator.calculate(batteryUsageStatsBuilder, stats, realtimeUs, uptimeUs, query);
}
if (mPowerStatsExporterEnabled) {
mPowerStatsExporter.exportAggregatedPowerStats(batteryUsageStatsBuilder,
- stats.getMonotonicStartTime(), stats.getMonotonicEndTime());
- }
-
- if ((query.getFlags()
- & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_HISTORY) != 0) {
- batteryUsageStatsBuilder.setBatteryHistory(stats.copyHistory());
+ monotonicStartTime, monotonicEndTime);
}
BatteryUsageStats batteryUsageStats = batteryUsageStatsBuilder.build();
diff --git a/services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java b/services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java
index feb6bd930bf3..467c15dd2a75 100644
--- a/services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/am/BatteryStatsServiceTest.java
@@ -54,7 +54,7 @@ public final class BatteryStatsServiceTest {
mBgThread.start();
File systemDir = context.getCacheDir();
Handler handler = new Handler(mBgThread.getLooper());
- mBatteryStatsService = new BatteryStatsService(context, systemDir, handler);
+ mBatteryStatsService = new BatteryStatsService(context, systemDir);
}
@After