diff options
author | Dianne Hackborn <hackbod@google.com> | 2013-10-22 18:45:27 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2013-10-22 19:15:49 -0700 |
commit | 237cefbcee8721e3268ba778297a0ad48e67f079 (patch) | |
tree | 2b8bf3429a2504a967773e90edcb622a61590ef9 /services/java/com/android/server/am/ProcessStatsService.java | |
parent | ce39e8ced8bcbc6663d420bea66280f8b438e027 (diff) |
Fix issue #11323037: Android apk incorrectly marked as running in app processes
The android package is now a special case, not being added to the package list
when creating a multi-process component. There is no need, since this package
is actually the framework itself which must be loaded in every process.
Also cleaned up some of the procstats dump output to help see what is going
on here.
Change-Id: If65d35ecd562f3154bdebfded69c454af6ce8c96
Diffstat (limited to 'services/java/com/android/server/am/ProcessStatsService.java')
-rw-r--r-- | services/java/com/android/server/am/ProcessStatsService.java | 64 |
1 files changed, 42 insertions, 22 deletions
diff --git a/services/java/com/android/server/am/ProcessStatsService.java b/services/java/com/android/server/am/ProcessStatsService.java index 50a7b5c5e56c..8d168807bbd8 100644 --- a/services/java/com/android/server/am/ProcessStatsService.java +++ b/services/java/com/android/server/am/ProcessStatsService.java @@ -529,6 +529,33 @@ public final class ProcessStatsService extends IProcessStats.Stub { } } + private void dumpAggregatedStats(PrintWriter pw, long aggregateHours, long now, + String reqPackage, boolean isCompact, boolean dumpDetails, boolean dumpFullDetails, + boolean dumpAll, boolean activeOnly) { + ParcelFileDescriptor pfd = getStatsOverTime(aggregateHours*60*60*1000 + - (ProcessStats.COMMIT_PERIOD/2)); + if (pfd == null) { + pw.println("Unable to build stats!"); + return; + } + ProcessStats stats = new ProcessStats(false); + InputStream stream = new ParcelFileDescriptor.AutoCloseInputStream(pfd); + stats.read(stream); + if (stats.mReadError != null) { + pw.print("Failure reading: "); pw.println(stats.mReadError); + return; + } + if (isCompact) { + stats.dumpCheckinLocked(pw, reqPackage); + } else { + if (dumpDetails || dumpFullDetails) { + stats.dumpLocked(pw, reqPackage, now, !dumpFullDetails, dumpAll, activeOnly); + } else { + stats.dumpSummaryLocked(pw, reqPackage, now, activeOnly); + } + } + } + static private void dumpHelp(PrintWriter pw) { pw.println("Process stats (procstats) dump options:"); pw.println(" [--checkin|-c|--csv] [--csv-screen] [--csv-proc] [--csv-mem]"); @@ -789,28 +816,8 @@ public final class ProcessStatsService extends IProcessStats.Stub { } return; } else if (aggregateHours != 0) { - ParcelFileDescriptor pfd = getStatsOverTime(aggregateHours*60*60*1000 - - (ProcessStats.COMMIT_PERIOD/2)); - if (pfd == null) { - pw.println("Unable to build stats!"); - return; - } - ProcessStats stats = new ProcessStats(false); - InputStream stream = new ParcelFileDescriptor.AutoCloseInputStream(pfd); - stats.read(stream); - if (stats.mReadError != null) { - pw.print("Failure reading: "); pw.println(stats.mReadError); - return; - } - if (isCompact) { - stats.dumpCheckinLocked(pw, reqPackage); - } else { - if (dumpDetails || dumpFullDetails) { - stats.dumpLocked(pw, reqPackage, now, !dumpFullDetails, dumpAll, activeOnly); - } else { - stats.dumpSummaryLocked(pw, reqPackage, now, activeOnly); - } - } + dumpAggregatedStats(pw, aggregateHours, now, reqPackage, isCompact, + dumpDetails, dumpFullDetails, dumpAll, activeOnly); return; } @@ -875,6 +882,19 @@ public final class ProcessStatsService extends IProcessStats.Stub { } } if (!isCheckin) { + if (dumpAll) { + if (sepNeeded) { + pw.println(); + pw.println("AGGREGATED OVER LAST 24 HOURS:"); + } + dumpAggregatedStats(pw, 24, now, reqPackage, isCompact, + dumpDetails, dumpFullDetails, dumpAll, activeOnly); + pw.println(); + pw.println("AGGREGATED OVER LAST 3 HOURS:"); + dumpAggregatedStats(pw, 3, now, reqPackage, isCompact, + dumpDetails, dumpFullDetails, dumpAll, activeOnly); + sepNeeded = true; + } synchronized (mAm) { if (isCompact) { mProcessStats.dumpCheckinLocked(pw, reqPackage); |