Merge "Add log for fetch data from BatteryStatsManager." into main

This commit is contained in:
YK Hung
2024-08-30 07:34:31 +00:00
committed by Android (Google) Code Review

View File

@@ -172,13 +172,21 @@ public final class DataProcessor {
/** Gets the {@link BatteryUsageStats} from system service. */ /** Gets the {@link BatteryUsageStats} from system service. */
@Nullable @Nullable
public static BatteryUsageStats getBatteryUsageStats(final Context context) { public static BatteryUsageStats getBatteryUsageStats(final Context context) {
final long startTime = System.currentTimeMillis();
final BatteryUsageStatsQuery batteryUsageStatsQuery = final BatteryUsageStatsQuery batteryUsageStatsQuery =
new BatteryUsageStatsQuery.Builder() new BatteryUsageStatsQuery.Builder()
.includeBatteryHistory() .includeBatteryHistory()
.includeProcessStateData() .includeProcessStateData()
.build(); .build();
return context.getSystemService(BatteryStatsManager.class) final BatteryUsageStats batteryUsageStats =
context.getSystemService(BatteryStatsManager.class)
.getBatteryUsageStats(batteryUsageStatsQuery); .getBatteryUsageStats(batteryUsageStatsQuery);
Log.d(
TAG,
String.format(
"getBatteryUsageStats() from BatteryStatsManager in %d/ms",
System.currentTimeMillis() - startTime));
return batteryUsageStats;
} }
/** Gets the {@link UsageEvents} from system service for all unlocked users. */ /** Gets the {@link UsageEvents} from system service for all unlocked users. */
@@ -1693,8 +1701,14 @@ public final class DataProcessor {
final UserManager userManager = context.getSystemService(UserManager.class); final UserManager userManager = context.getSystemService(UserManager.class);
final SparseArray<BatteryEntry> batteryEntryList = new SparseArray<>(); final SparseArray<BatteryEntry> batteryEntryList = new SparseArray<>();
final ArrayList<BatteryEntry> results = new ArrayList<>(); final ArrayList<BatteryEntry> results = new ArrayList<>();
final long startTime = System.currentTimeMillis();
final List<UidBatteryConsumer> uidBatteryConsumers = final List<UidBatteryConsumer> uidBatteryConsumers =
batteryUsageStats.getUidBatteryConsumers(); batteryUsageStats.getUidBatteryConsumers();
Log.d(
TAG,
String.format(
"get %d uidBatteryConsumers from BatteryUsageStats in %d/ms",
uidBatteryConsumers.size(), (System.currentTimeMillis() - startTime)));
// Sort to have all apps with "real" UIDs first, followed by apps that are supposed // Sort to have all apps with "real" UIDs first, followed by apps that are supposed
// to be combined with the real ones. // to be combined with the real ones.
@@ -1763,9 +1777,11 @@ public final class DataProcessor {
deviceConsumer.getConsumedPowerForCustomComponent(componentId))); deviceConsumer.getConsumedPowerForCustomComponent(componentId)));
} }
final int numComponentEntries = batteryEntryList.size();
final List<UserBatteryConsumer> userBatteryConsumers = final List<UserBatteryConsumer> userBatteryConsumers =
batteryUsageStats.getUserBatteryConsumers(); batteryUsageStats.getUserBatteryConsumers();
for (int i = 0, size = userBatteryConsumers.size(); i < size; i++) { final int numUserEntries = userBatteryConsumers.size();
for (int i = 0; i < numUserEntries; i++) {
final UserBatteryConsumer consumer = userBatteryConsumers.get(i); final UserBatteryConsumer consumer = userBatteryConsumers.get(i);
results.add( results.add(
new BatteryEntry( new BatteryEntry(
@@ -1785,6 +1801,13 @@ public final class DataProcessor {
results.add(batteryEntryList.valueAt(i)); results.add(batteryEntryList.valueAt(i));
} }
Log.d(
TAG,
String.format(
"getCoalescedUsageList(): uidEntries = %d, "
+ "userEntries = %d, componentEntries = %d",
numUidSippers, numUserEntries, numComponentEntries));
// The sort order must have changed, so re-sort based on total power use. // The sort order must have changed, so re-sort based on total power use.
results.sort(BatteryEntry.COMPARATOR); results.sort(BatteryEntry.COMPARATOR);
return results; return results;