Added trace points for task/stack resizing.

Change-Id: I6c812d92f3822528890b5d875c228b5bd1210bff
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 17a4472..842b8cd 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -24,6 +24,7 @@
 import static android.content.Intent.FLAG_ACTIVITY_TASK_ON_HOME;
 import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;
 import static com.android.server.am.ActivityManagerDebugConfig.*;
 import static com.android.server.am.ActivityManagerService.FIRST_SUPERVISOR_STACK_MSG;
 import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE;
@@ -87,6 +88,7 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SystemClock;
+import android.os.Trace;
 import android.os.TransactionTooLargeException;
 import android.os.UserHandle;
 import android.os.WorkSource;
@@ -2968,6 +2970,8 @@
             return;
         }
 
+        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeStack_" + stackId);
+
         ActivityRecord r = stack.topRunningActivityLocked(null);
 
         mTmpBounds.clear();
@@ -3051,6 +3055,8 @@
                 resumeTopActivitiesLocked(stack, null, null);
             }
         }
+
+        Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
     }
 
     void resizeTaskLocked(TaskRecord task, Rect bounds, int resizeMode) {
@@ -3079,6 +3085,8 @@
             return;
         }
 
+        Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "am.resizeTask_" + task.taskId);
+
         // The stack of a task is determined by its size (fullscreen vs non-fullscreen).
         // Place the task in the right stack if it isn't there already based on the requested
         // bounds.
@@ -3124,6 +3132,8 @@
             }
         }
         mWindowManager.resizeTask(task.taskId, bounds, task.mOverrideConfig, kept, forced);
+
+        Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER);
     }
 
     ActivityStack createStackOnDisplay(int stackId, int displayId, boolean onTop) {
diff --git a/services/core/java/com/android/server/wm/TaskPositioner.java b/services/core/java/com/android/server/wm/TaskPositioner.java
index d1904d8..df2e5e8 100644
--- a/services/core/java/com/android/server/wm/TaskPositioner.java
+++ b/services/core/java/com/android/server/wm/TaskPositioner.java
@@ -22,6 +22,7 @@
 import static android.app.ActivityManager.RESIZE_MODE_FORCED;
 import static android.app.ActivityManager.RESIZE_MODE_USER;
 import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
+import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
 import static com.android.server.wm.WindowManagerService.DEBUG_TASK_POSITIONING;
 import static com.android.server.wm.WindowManagerService.SHOW_TRANSACTIONS;
 import static com.android.server.wm.WindowState.MINIMUM_VISIBLE_HEIGHT_IN_DP;
@@ -33,6 +34,7 @@
 import android.os.Looper;
 import android.os.Process;
 import android.os.RemoteException;
+import android.os.Trace;
 import android.util.DisplayMetrics;
 import android.util.Slog;
 import android.view.Choreographer;
@@ -145,10 +147,12 @@
                         synchronized (mService.mWindowMap) {
                             mDragEnded = notifyMoveLocked(newX, newY);
                         }
+                        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.TaskPositioner.resizeTask");
                         try {
                             mService.mActivityManager.resizeTask(
                                     mTask.mTaskId, mWindowDragBounds, RESIZE_MODE_USER);
                         } catch(RemoteException e) {}
+                        Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER);
                     } break;
 
                     case MotionEvent.ACTION_UP: {
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index c73dbaf..37deffe 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -16,6 +16,7 @@
 
 package com.android.server.wm;
 
+import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
 import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
 import static android.view.WindowManager.LayoutParams.FLAG_DIM_BEHIND;
 import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
@@ -38,6 +39,7 @@
 import android.os.PowerManager;
 import android.os.RemoteCallbackList;
 import android.os.SystemClock;
+import android.os.Trace;
 import android.os.WorkSource;
 import android.util.DisplayMetrics;
 import android.util.TimeUtils;
@@ -1465,10 +1467,7 @@
                 // We want the tag name to be somewhat stable so that it is easier to correlate
                 // in wake lock statistics.  So in particular, we don't want to include the
                 // window's hash code as in toString().
-                CharSequence tag = mAttrs.getTitle();
-                if (tag == null) {
-                    tag = mAttrs.packageName;
-                }
+                final CharSequence tag = getWindowTag();
                 mDrawLock = mService.mPowerManager.newWakeLock(
                         PowerManager.DRAW_WAKE_LOCK, "Window:" + tag);
                 mDrawLock.setReferenceCounted(false);
@@ -1605,6 +1604,7 @@
     }
 
     void reportResized() {
+        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.reportResized_" + getWindowTag());
         try {
             if (DEBUG_RESIZE || DEBUG_ORIENTATION) Slog.v(TAG, "Reporting new frame to " + this
                     + ": " + mCompatFrame);
@@ -1670,6 +1670,7 @@
             mService.mPendingRemove.add(this);
             mService.mWindowPlacerLocked.requestTraversal();
         }
+        Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
     }
 
     public void registerFocusObserver(IWindowFocusObserver observer) {
@@ -1901,15 +1902,20 @@
 
     String makeInputChannelName() {
         return Integer.toHexString(System.identityHashCode(this))
-            + " " + mAttrs.getTitle();
+            + " " + getWindowTag();
+    }
+
+    private CharSequence getWindowTag() {
+        CharSequence tag = mAttrs.getTitle();
+        if (tag == null || tag.length() <= 0) {
+            tag = mAttrs.packageName;
+        }
+        return tag;
     }
 
     @Override
     public String toString() {
-        CharSequence title = mAttrs.getTitle();
-        if (title == null || title.length() <= 0) {
-            title = mAttrs.packageName;
-        }
+        final CharSequence title = getWindowTag();
         if (mStringNameCache == null || mLastTitle != title || mWasExiting != mExiting) {
             mLastTitle = title;
             mWasExiting = mExiting;