Loading services/core/java/com/android/server/power/stats/AggregatedPowerStats.java +10 −2 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.text.format.DateFormat; import android.util.IndentingPrintWriter; import android.util.Slog; import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.TimeUtils; import com.android.internal.os.PowerStats; Loading Loading @@ -73,15 +74,22 @@ class AggregatedPowerStats { private long mDurationMs; AggregatedPowerStats(@NonNull AggregatedPowerStatsConfig aggregatedPowerStatsConfig) { this(aggregatedPowerStatsConfig, new SparseBooleanArray()); } AggregatedPowerStats(@NonNull AggregatedPowerStatsConfig aggregatedPowerStatsConfig, @NonNull SparseBooleanArray enabledComponents) { mConfig = aggregatedPowerStatsConfig; List<PowerComponent> configs = aggregatedPowerStatsConfig.getPowerComponentsAggregatedStatsConfigs(); mPowerComponentStats = new SparseArray<>(configs.size()); for (int i = 0; i < configs.size(); i++) { PowerComponent powerComponent = configs.get(i); if (enabledComponents.get(powerComponent.getPowerComponentId(), true)) { mPowerComponentStats.put(powerComponent.getPowerComponentId(), new PowerComponentAggregatedPowerStats(this, powerComponent)); } } mGenericPowerComponent = createGenericPowerComponent(); mPowerComponentStats.put(BatteryConsumer.POWER_COMPONENT_ANY, mGenericPowerComponent); } Loading services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +1 −0 Original line number Diff line number Diff line Loading @@ -428,5 +428,6 @@ public class BatteryUsageStatsProvider { */ public void setPowerStatsExporterEnabled(int powerComponentId, boolean enabled) { mPowerStatsExporterEnabled.put(powerComponentId, enabled); mPowerStatsExporter.setPowerComponentEnabled(powerComponentId, enabled); } } services/core/java/com/android/server/power/stats/PowerStatsAggregator.java +12 −3 Original line number Diff line number Diff line Loading @@ -16,7 +16,9 @@ package com.android.server.power.stats; import android.annotation.NonNull; import android.os.BatteryConsumer; import android.os.BatteryStats; import android.util.SparseBooleanArray; import com.android.internal.os.BatteryStatsHistory; import com.android.internal.os.BatteryStatsHistoryIterator; Loading @@ -32,6 +34,8 @@ public class PowerStatsAggregator { private static final long UNINITIALIZED = -1; private final AggregatedPowerStatsConfig mAggregatedPowerStatsConfig; private final BatteryStatsHistory mHistory; private final SparseBooleanArray mEnabledComponents = new SparseBooleanArray(BatteryConsumer.POWER_COMPONENT_COUNT + 10); private AggregatedPowerStats mStats; private int mCurrentBatteryState = AggregatedPowerStatsConfig.POWER_STATE_BATTERY; private int mCurrentScreenState = AggregatedPowerStatsConfig.SCREEN_STATE_OTHER; Loading @@ -42,8 +46,13 @@ public class PowerStatsAggregator { mHistory = history; } AggregatedPowerStatsConfig getConfig() { return mAggregatedPowerStatsConfig; void setPowerComponentEnabled(int powerComponentId, boolean enabled) { synchronized (this) { if (mStats != null) { mStats = null; } mEnabledComponents.put(powerComponentId, enabled); } } /** Loading @@ -62,7 +71,7 @@ public class PowerStatsAggregator { Consumer<AggregatedPowerStats> consumer) { synchronized (this) { if (mStats == null) { mStats = new AggregatedPowerStats(mAggregatedPowerStatsConfig); mStats = new AggregatedPowerStats(mAggregatedPowerStatsConfig, mEnabledComponents); } mStats.start(startTimeMs); Loading services/core/java/com/android/server/power/stats/PowerStatsExporter.java +4 −0 Original line number Diff line number Diff line Loading @@ -376,4 +376,8 @@ public class PowerStatsExporter { } return true; } void setPowerComponentEnabled(int powerComponentId, boolean enabled) { mPowerStatsAggregator.setPowerComponentEnabled(powerComponentId, enabled); } } Loading
services/core/java/com/android/server/power/stats/AggregatedPowerStats.java +10 −2 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.text.format.DateFormat; import android.util.IndentingPrintWriter; import android.util.Slog; import android.util.SparseArray; import android.util.SparseBooleanArray; import android.util.TimeUtils; import com.android.internal.os.PowerStats; Loading Loading @@ -73,15 +74,22 @@ class AggregatedPowerStats { private long mDurationMs; AggregatedPowerStats(@NonNull AggregatedPowerStatsConfig aggregatedPowerStatsConfig) { this(aggregatedPowerStatsConfig, new SparseBooleanArray()); } AggregatedPowerStats(@NonNull AggregatedPowerStatsConfig aggregatedPowerStatsConfig, @NonNull SparseBooleanArray enabledComponents) { mConfig = aggregatedPowerStatsConfig; List<PowerComponent> configs = aggregatedPowerStatsConfig.getPowerComponentsAggregatedStatsConfigs(); mPowerComponentStats = new SparseArray<>(configs.size()); for (int i = 0; i < configs.size(); i++) { PowerComponent powerComponent = configs.get(i); if (enabledComponents.get(powerComponent.getPowerComponentId(), true)) { mPowerComponentStats.put(powerComponent.getPowerComponentId(), new PowerComponentAggregatedPowerStats(this, powerComponent)); } } mGenericPowerComponent = createGenericPowerComponent(); mPowerComponentStats.put(BatteryConsumer.POWER_COMPONENT_ANY, mGenericPowerComponent); } Loading
services/core/java/com/android/server/power/stats/BatteryUsageStatsProvider.java +1 −0 Original line number Diff line number Diff line Loading @@ -428,5 +428,6 @@ public class BatteryUsageStatsProvider { */ public void setPowerStatsExporterEnabled(int powerComponentId, boolean enabled) { mPowerStatsExporterEnabled.put(powerComponentId, enabled); mPowerStatsExporter.setPowerComponentEnabled(powerComponentId, enabled); } }
services/core/java/com/android/server/power/stats/PowerStatsAggregator.java +12 −3 Original line number Diff line number Diff line Loading @@ -16,7 +16,9 @@ package com.android.server.power.stats; import android.annotation.NonNull; import android.os.BatteryConsumer; import android.os.BatteryStats; import android.util.SparseBooleanArray; import com.android.internal.os.BatteryStatsHistory; import com.android.internal.os.BatteryStatsHistoryIterator; Loading @@ -32,6 +34,8 @@ public class PowerStatsAggregator { private static final long UNINITIALIZED = -1; private final AggregatedPowerStatsConfig mAggregatedPowerStatsConfig; private final BatteryStatsHistory mHistory; private final SparseBooleanArray mEnabledComponents = new SparseBooleanArray(BatteryConsumer.POWER_COMPONENT_COUNT + 10); private AggregatedPowerStats mStats; private int mCurrentBatteryState = AggregatedPowerStatsConfig.POWER_STATE_BATTERY; private int mCurrentScreenState = AggregatedPowerStatsConfig.SCREEN_STATE_OTHER; Loading @@ -42,8 +46,13 @@ public class PowerStatsAggregator { mHistory = history; } AggregatedPowerStatsConfig getConfig() { return mAggregatedPowerStatsConfig; void setPowerComponentEnabled(int powerComponentId, boolean enabled) { synchronized (this) { if (mStats != null) { mStats = null; } mEnabledComponents.put(powerComponentId, enabled); } } /** Loading @@ -62,7 +71,7 @@ public class PowerStatsAggregator { Consumer<AggregatedPowerStats> consumer) { synchronized (this) { if (mStats == null) { mStats = new AggregatedPowerStats(mAggregatedPowerStatsConfig); mStats = new AggregatedPowerStats(mAggregatedPowerStatsConfig, mEnabledComponents); } mStats.start(startTimeMs); Loading
services/core/java/com/android/server/power/stats/PowerStatsExporter.java +4 −0 Original line number Diff line number Diff line Loading @@ -376,4 +376,8 @@ public class PowerStatsExporter { } return true; } void setPowerComponentEnabled(int powerComponentId, boolean enabled) { mPowerStatsAggregator.setPowerComponentEnabled(powerComponentId, enabled); } }