Merge "Improved output for 'dumpsys window displays'"

This commit is contained in:
Wale Ogunwale
2016-01-07 00:32:40 +00:00
committed by Android (Google) Code Review
4 changed files with 33 additions and 38 deletions

View File

@@ -570,38 +570,19 @@ class DisplayContent {
pw.print("x"); pw.println(mDisplayInfo.largestNominalAppHeight);
pw.print(subPrefix); pw.print("deferred="); pw.print(mDeferredRemoval);
pw.print(" layoutNeeded="); pw.println(layoutNeeded);
for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
final TaskStack stack = mStacks.get(stackNdx);
pw.print(prefix); pw.print("mStacks[" + stackNdx + "]"); pw.println(stack.mStackId);
stack.dump(prefix + " ", pw);
}
pw.println();
pw.println(" Application tokens in top down Z order:");
int ndx = 0;
for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
final TaskStack stack = mStacks.get(stackNdx);
pw.print(" mStackId="); pw.println(stack.mStackId);
ArrayList<Task> tasks = stack.getTasks();
for (int taskNdx = tasks.size() - 1; taskNdx >= 0; --taskNdx) {
final Task task = tasks.get(taskNdx);
pw.print(" mTaskId="); pw.println(task.mTaskId);
AppTokenList tokens = task.mAppTokens;
for (int tokenNdx = tokens.size() - 1; tokenNdx >= 0; --tokenNdx, ++ndx) {
final AppWindowToken wtoken = tokens.get(tokenNdx);
pw.print(" Activity #"); pw.print(tokenNdx);
pw.print(' '); pw.print(wtoken); pw.println(":");
wtoken.dump(pw, " ");
}
}
}
if (ndx == 0) {
pw.println(" None");
stack.dump(prefix + " ", pw);
}
pw.println();
if (!mExitingTokens.isEmpty()) {
pw.println();
pw.println(" Exiting tokens:");
for (int i=mExitingTokens.size()-1; i>=0; i--) {
for (int i = mExitingTokens.size() - 1; i >= 0; i--) {
WindowToken token = mExitingTokens.get(i);
pw.print(" Exiting #"); pw.print(i);
pw.print(' '); pw.print(token);

View File

@@ -603,12 +603,23 @@ class Task implements DimLayer.DimLayerUser {
return "Task=" + mTaskId;
}
public void printTo(String prefix, PrintWriter pw) {
pw.print(prefix); pw.print("taskId="); pw.println(mTaskId);
pw.print(prefix + prefix); pw.print("mFullscreen="); pw.println(mFullscreen);
pw.print(prefix + prefix); pw.print("mBounds="); pw.println(mBounds.toShortString());
pw.print(prefix + prefix); pw.print("mdr="); pw.println(mDeferRemoval);
pw.print(prefix + prefix); pw.print("appTokens="); pw.println(mAppTokens);
pw.print(prefix + prefix); pw.print("mTempInsetBounds="); pw.println(mTempInsetBounds);
public void dump(String prefix, PrintWriter pw) {
final String doublePrefix = prefix + " ";
pw.println(prefix + "taskId=" + mTaskId);
pw.println(doublePrefix + "mFullscreen=" + mFullscreen);
pw.println(doublePrefix + "mBounds=" + mBounds.toShortString());
pw.println(doublePrefix + "mdr=" + mDeferRemoval);
pw.println(doublePrefix + "appTokens=" + mAppTokens);
pw.println(doublePrefix + "mTempInsetBounds=" + mTempInsetBounds.toShortString());
final String triplePrefix = doublePrefix + " ";
for (int i = mAppTokens.size() - 1; i >= 0; i--) {
final AppWindowToken wtoken = mAppTokens.get(i);
pw.println(triplePrefix + "Activity #" + i + " " + wtoken);
wtoken.dump(pw, triplePrefix);
}
}
}

View File

@@ -619,16 +619,15 @@ public class TaskStack implements DimLayer.DimLayerUser {
}
public void dump(String prefix, PrintWriter pw) {
pw.print(prefix); pw.print("mStackId="); pw.println(mStackId);
pw.print(prefix); pw.print("mDeferDetach="); pw.println(mDeferDetach);
pw.print(prefix); pw.print("mFullscreen="); pw.println(mFullscreen);
pw.print(prefix); pw.print("mBounds="); pw.println(mBounds.toShortString());
for (int taskNdx = 0; taskNdx < mTasks.size(); ++taskNdx) {
pw.print(prefix);
mTasks.get(taskNdx).printTo(prefix + " ", pw);
pw.println(prefix + "mStackId=" + mStackId);
pw.println(prefix + "mDeferDetach=" + mDeferDetach);
pw.println(prefix + "mFullscreen=" + mFullscreen);
pw.println(prefix + "mBounds=" + mBounds.toShortString());
for (int taskNdx = mTasks.size() - 1; taskNdx >= 0; taskNdx--) {
mTasks.get(taskNdx).dump(prefix + " ", pw);
}
if (mAnimationBackgroundSurface.isDimming()) {
pw.print(prefix); pw.println("mWindowAnimationBackgroundSurface:");
pw.println(prefix + "mWindowAnimationBackgroundSurface:");
mAnimationBackgroundSurface.printTo(prefix + " ", pw);
}
if (!mExitingAppTokens.isEmpty()) {

View File

@@ -9790,6 +9790,10 @@ public class WindowManagerService extends IWindowManager.Stub
if ("visible".equals(name) || "visible-apps".equals(name)) {
final boolean appsOnly = "visible-apps".equals(name);
synchronized(mWindowMap) {
if (appsOnly) {
dumpDisplayContentsLocked(pw, true);
}
final int numDisplays = mDisplayContents.size();
for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
final WindowList windowList =