diff options
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 |