summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/am/ActivityStackSupervisor.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/am/ActivityStackSupervisor.java')
-rw-r--r--services/java/com/android/server/am/ActivityStackSupervisor.java114
1 files changed, 64 insertions, 50 deletions
diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/java/com/android/server/am/ActivityStackSupervisor.java
index bddca2b..a638981 100644
--- a/services/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/java/com/android/server/am/ActivityStackSupervisor.java
@@ -2215,82 +2215,95 @@ public class ActivityStackSupervisor {
return getFocusedStack().getDumpActivitiesLocked(name);
}
+ static boolean printThisActivity(PrintWriter pw, ActivityRecord activity, String dumpPackage,
+ boolean needSep, String prefix) {
+ if (activity != null) {
+ if (dumpPackage == null || dumpPackage.equals(activity.packageName)) {
+ if (needSep) {
+ pw.println();
+ needSep = false;
+ }
+ pw.print(prefix);
+ pw.println(activity);
+ }
+ }
+ return needSep;
+ }
+
boolean dumpActivitiesLocked(FileDescriptor fd, PrintWriter pw, boolean dumpAll,
boolean dumpClient, String dumpPackage) {
- pw.print(" mStackState="); pw.println(stackStateToString(mStackState));
- if (mGoingToSleepActivities.size() > 0) {
- pw.println(" Activities waiting to sleep:");
- dumpHistoryList(fd, pw, mGoingToSleepActivities, " ", "Sleep", false, !dumpAll, false,
- dumpPackage);
- }
- if (dumpAll) {
- pw.println(" mSleepTimeout: " + mSleepTimeout);
- }
final int numStacks = mStacks.size();
for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
final ActivityStack stack = mStacks.get(stackNdx);
- pw.print(" Stack #"); pw.print(mStacks.indexOf(stack)); pw.println(":");
- stack.dumpActivitiesLocked(fd, pw, dumpAll, dumpClient, dumpPackage);
- pw.println(" ");
- pw.println(" Running activities (most recent first):");
- dumpHistoryList(fd, pw, stack.mLRUActivities, " ", "Run", false, !dumpAll, false,
- dumpPackage);
-
- pw.print(" Stack #"); pw.println(mStacks.indexOf(stack));
- if (stack.mPausingActivity != null) {
- pw.println(" mPausingActivity: " + stack.mPausingActivity);
+ if (stackNdx != 0) {
+ pw.println();
}
- pw.println(" mResumedActivity: " + stack.mResumedActivity);
+ pw.print(" Stack #"); pw.print(mStacks.indexOf(stack)); pw.println(":");
+ stack.dumpActivitiesLocked(fd, pw, dumpAll, dumpClient, dumpPackage, false);
+ dumpHistoryList(fd, pw, stack.mLRUActivities, " ", "Run", false, !dumpAll, false,
+ dumpPackage, true, " Running activities (most recent first):");
+
+ boolean needSep = true;
+ needSep = printThisActivity(pw, stack.mPausingActivity, dumpPackage, needSep,
+ " mPausingActivity: ");
+ needSep = printThisActivity(pw, stack.mResumedActivity, dumpPackage, needSep,
+ " mResumedActivity: ");
if (dumpAll) {
- pw.println(" mLastPausedActivity: " + stack.mLastPausedActivity);
+ printThisActivity(pw, stack.mLastPausedActivity, dumpPackage, needSep,
+ " mLastPausedActivity: ");
}
}
- if (mFinishingActivities.size() > 0) {
- pw.println(" ");
- pw.println(" Activities waiting to finish:");
- dumpHistoryList(fd, pw, mFinishingActivities, " ", "Fin", false, !dumpAll, false,
- dumpPackage);
- }
-
- if (mStoppingActivities.size() > 0) {
- pw.println(" ");
- pw.println(" Activities waiting to stop:");
- dumpHistoryList(fd, pw, mStoppingActivities, " ", "Stop", false, !dumpAll, false,
- dumpPackage);
- }
+ dumpHistoryList(fd, pw, mFinishingActivities, " ", "Fin", false, !dumpAll, false,
+ dumpPackage, true, " Activities waiting to finish:");
+ dumpHistoryList(fd, pw, mStoppingActivities, " ", "Stop", false, !dumpAll, false,
+ dumpPackage, true, " Activities waiting to stop:");
+ dumpHistoryList(fd, pw, mWaitingVisibleActivities, " ", "Wait", false, !dumpAll,
+ false, dumpPackage, true, " Activities waiting for another to become visible:");
+ dumpHistoryList(fd, pw, mGoingToSleepActivities, " ", "Sleep", false, !dumpAll, false,
+ dumpPackage, true, " Activities waiting to sleep:");
+ dumpHistoryList(fd, pw, mGoingToSleepActivities, " ", "Sleep", false, !dumpAll, false,
+ dumpPackage, true, " Activities waiting to sleep:");
- if (mWaitingVisibleActivities.size() > 0) {
- pw.println(" ");
- pw.println(" Activities waiting for another to become visible:");
- dumpHistoryList(fd, pw, mWaitingVisibleActivities, " ", "Wait", false, !dumpAll,
- false, dumpPackage);
- }
-
- if (dumpAll) {
- pw.println(" ");
- pw.println(" mCurTaskId: " + mCurTaskId);
+ if (dumpPackage == null) {
+ pw.println();
+ pw.print(" mStackState="); pw.println(stackStateToString(mStackState));
+ if (dumpAll) {
+ pw.println(" mSleepTimeout: " + mSleepTimeout);
+ }
+ if (dumpAll) {
+ pw.println(" mCurTaskId: " + mCurTaskId);
+ }
}
return true;
}
- static void dumpHistoryList(FileDescriptor fd, PrintWriter pw, List<ActivityRecord> list,
+ static boolean dumpHistoryList(FileDescriptor fd, PrintWriter pw, List<ActivityRecord> list,
String prefix, String label, boolean complete, boolean brief, boolean client,
- String dumpPackage) {
+ String dumpPackage, boolean needNL, String header) {
TaskRecord lastTask = null;
- boolean needNL = false;
- final String innerPrefix = prefix + " ";
- final String[] args = new String[0];
+ String innerPrefix = null;
+ String[] args = null;
+ boolean printed = false;
for (int i=list.size()-1; i>=0; i--) {
final ActivityRecord r = list.get(i);
if (dumpPackage != null && !dumpPackage.equals(r.packageName)) {
continue;
}
+ if (innerPrefix == null) {
+ innerPrefix = prefix + " ";
+ args = new String[0];
+ }
+ printed = true;
final boolean full = !brief && (complete || !r.isInHistory());
if (needNL) {
- pw.println(" ");
+ pw.println("");
needNL = false;
}
+ if (header != null) {
+ pw.println(header);
+ header = null;
+ }
if (lastTask != r.task) {
lastTask = r.task;
pw.print(prefix);
@@ -2341,6 +2354,7 @@ public class ActivityStackSupervisor {
needNL = true;
}
}
+ return printed;
}
void scheduleIdleTimeoutLocked(ActivityRecord next) {