summaryrefslogtreecommitdiff
path: root/services/usage
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2020-02-16 22:23:24 -0800
committerSudheer Shanka <sudheersai@google.com>2020-02-18 18:59:59 +0000
commitb497dd4045da03a57a8d87c59adc4c4cdd57979b (patch)
tree00effa58580a2536a56f916540a1ae500c4b93cc /services/usage
parentcce9df2afc3edc9a58a97dbd3746c5d2acb217a9 (diff)
Allow usagestats for multiple pkgs to be dumped.
+ Skip dumping database summaries when dumping data for specific pkgs. Bug: 145420790 Test: manual Change-Id: If4ac1008ffc73ad4b3227c0a407323b43547a6b8
Diffstat (limited to 'services/usage')
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsService.java13
-rw-r--r--services/usage/java/com/android/server/usage/UserUsageStatsService.java31
2 files changed, 25 insertions, 19 deletions
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index df5b311bbab1..0d1b3523bf9b 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -86,6 +86,7 @@ import android.util.SparseIntArray;
import com.android.internal.content.PackageMonitor;
import com.android.internal.os.BackgroundThread;
+import com.android.internal.util.CollectionUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.LocalServices;
@@ -104,6 +105,7 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
@@ -1121,7 +1123,7 @@ public class UsageStatsService extends SystemService implements
boolean checkin = false;
boolean compact = false;
- String pkg = null;
+ final ArrayList<String> pkgs = new ArrayList<>();
if (args != null) {
for (int i = 0; i < args.length; i++) {
@@ -1214,8 +1216,7 @@ public class UsageStatsService extends SystemService implements
return;
} else if (arg != null && !arg.startsWith("-")) {
// Anything else that doesn't start with '-' is a pkg to filter
- pkg = arg;
- break;
+ pkgs.add(arg);
}
}
}
@@ -1230,15 +1231,15 @@ public class UsageStatsService extends SystemService implements
if (checkin) {
mUserState.valueAt(i).checkin(idpw);
} else {
- mUserState.valueAt(i).dump(idpw, pkg, compact);
+ mUserState.valueAt(i).dump(idpw, pkgs, compact);
idpw.println();
}
}
- mAppStandby.dumpUser(idpw, userId, pkg);
+ mAppStandby.dumpUser(idpw, userId, pkgs);
idpw.decreaseIndent();
}
- if (pkg == null) {
+ if (CollectionUtils.isEmpty(pkgs)) {
pw.println();
mAppStandby.dumpState(args, pw);
}
diff --git a/services/usage/java/com/android/server/usage/UserUsageStatsService.java b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
index db26d88dbfbb..b7779fd40990 100644
--- a/services/usage/java/com/android/server/usage/UserUsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
@@ -48,6 +48,7 @@ import android.util.Slog;
import android.util.SparseIntArray;
import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.CollectionUtils;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.usage.UsageStatsDatabase.StatCombiner;
@@ -753,18 +754,21 @@ class UserUsageStatsService {
});
}
- void dump(IndentingPrintWriter pw, String pkg) {
- dump(pw, pkg, false);
+ void dump(IndentingPrintWriter pw, List<String> pkgs) {
+ dump(pw, pkgs, false);
}
- void dump(IndentingPrintWriter pw, String pkg, boolean compact) {
- printLast24HrEvents(pw, !compact, pkg);
+
+ void dump(IndentingPrintWriter pw, List<String> pkgs, boolean compact) {
+ printLast24HrEvents(pw, !compact, pkgs);
for (int interval = 0; interval < mCurrentStats.length; interval++) {
pw.print("In-memory ");
pw.print(intervalToString(interval));
pw.println(" stats");
- printIntervalStats(pw, mCurrentStats[interval], !compact, true, pkg);
+ printIntervalStats(pw, mCurrentStats[interval], !compact, true, pkgs);
+ }
+ if (CollectionUtils.isEmpty(pkgs)) {
+ mDatabase.dump(pw, compact);
}
- mDatabase.dump(pw, compact);
}
void dumpDatabaseInfo(IndentingPrintWriter ipw) {
@@ -894,7 +898,8 @@ class UserUsageStatsService {
pw.println();
}
- void printLast24HrEvents(IndentingPrintWriter pw, boolean prettyDates, final String pkg) {
+ void printLast24HrEvents(IndentingPrintWriter pw, boolean prettyDates,
+ final List<String> pkgs) {
final long endTime = System.currentTimeMillis();
UnixCalendar yesterday = new UnixCalendar(endTime);
yesterday.addDays(-1);
@@ -914,7 +919,7 @@ class UserUsageStatsService {
}
Event event = stats.events.get(i);
- if (pkg != null && !pkg.equals(event.mPackage)) {
+ if (!CollectionUtils.isEmpty(pkgs) && !pkgs.contains(event.mPackage)) {
continue;
}
accumulatedResult.add(event);
@@ -958,7 +963,7 @@ class UserUsageStatsService {
}
void printIntervalStats(IndentingPrintWriter pw, IntervalStats stats,
- boolean prettyDates, boolean skipEvents, String pkg) {
+ boolean prettyDates, boolean skipEvents, List<String> pkgs) {
if (prettyDates) {
pw.printPair("timeRange", "\"" + DateUtils.formatDateRange(mContext,
stats.beginTime, stats.endTime, sDateFormatFlags) + "\"");
@@ -974,7 +979,7 @@ class UserUsageStatsService {
final int pkgCount = pkgStats.size();
for (int i = 0; i < pkgCount; i++) {
final UsageStats usageStats = pkgStats.valueAt(i);
- if (pkg != null && !pkg.equals(usageStats.mPackageName)) {
+ if (!CollectionUtils.isEmpty(pkgs) && !pkgs.contains(usageStats.mPackageName)) {
continue;
}
pw.printPair("package", usageStats.mPackageName);
@@ -998,7 +1003,7 @@ class UserUsageStatsService {
pw.println("ChooserCounts");
pw.increaseIndent();
for (UsageStats usageStats : pkgStats.values()) {
- if (pkg != null && !pkg.equals(usageStats.mPackageName)) {
+ if (!CollectionUtils.isEmpty(pkgs) && !pkgs.contains(usageStats.mPackageName)) {
continue;
}
pw.printPair("package", usageStats.mPackageName);
@@ -1023,7 +1028,7 @@ class UserUsageStatsService {
}
pw.decreaseIndent();
- if (pkg == null) {
+ if (CollectionUtils.isEmpty(pkgs)) {
pw.println("configurations");
pw.increaseIndent();
final ArrayMap<Configuration, ConfigurationStats> configStats = stats.configurations;
@@ -1060,7 +1065,7 @@ class UserUsageStatsService {
final int eventCount = events != null ? events.size() : 0;
for (int i = 0; i < eventCount; i++) {
final Event event = events.get(i);
- if (pkg != null && !pkg.equals(event.mPackage)) {
+ if (!CollectionUtils.isEmpty(pkgs) && !pkgs.contains(event.mPackage)) {
continue;
}
printEvent(pw, event, prettyDates);