From acc340d3c50eb189df69e4c3a2787e8350106cef Mon Sep 17 00:00:00 2001 From: Jeff Chang Date: Fri, 22 Nov 2019 14:23:08 +0800 Subject: [PATCH] Move Activity proto from activitymanagerservice.proto to windowmanagerservice.proto All activity related code is under the wm package,we should move all activity related proto from activitymanagerservice.proto to windowmanagerservice.proto. This CL consolidate ActivityRecordProto,AppWindowTokenProto and move to windowmanagerservice.proto. For TaskRecordProto/TaskProto related will handle in next step. Bug: 143460940 Test: atest CtsWindowManagerDeviceTestCases atest FlickerTests Change-Id: Icade24069677c1f1a9852dab69da7f1d94340709 --- .../server/activitymanagerservice.proto | 17 +--- .../android/server/windowmanagerservice.proto | 15 ++- .../com/android/server/wm/ActivityRecord.java | 92 ++++++++++++------- .../core/java/com/android/server/wm/Task.java | 4 +- 4 files changed, 74 insertions(+), 54 deletions(-) diff --git a/core/proto/android/server/activitymanagerservice.proto b/core/proto/android/server/activitymanagerservice.proto index 60f2fc8e081f1..1426932ec04a9 100644 --- a/core/proto/android/server/activitymanagerservice.proto +++ b/core/proto/android/server/activitymanagerservice.proto @@ -109,7 +109,7 @@ message TaskRecordProto { // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional int32 id = 2; - repeated ActivityRecordProto activities = 3; + repeated .com.android.server.wm.ActivityRecordProto activities = 3; optional int32 stack_id = 4; optional .android.graphics.RectProto last_non_fullscreen_bounds = 5; optional string real_activity = 6; @@ -123,21 +123,6 @@ message TaskRecordProto { optional .com.android.server.wm.TaskProto task = 14; } -message ActivityRecordProto { - option (.android.msg_privacy).dest = DEST_AUTOMATIC; - - // To be removed soon. - optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; - optional .com.android.server.wm.IdentifierProto identifier = 2; - optional string state = 3; - optional bool visible_requested = 4; - optional bool front_of_task = 5; - optional int32 proc_id = 6; - optional bool translucent = 7; - optional .com.android.server.wm.AppWindowTokenProto app_window_token = 8; - optional bool visible = 9; -} - message KeyguardControllerProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto index 0c74842163671..047307d3ee2ce 100644 --- a/core/proto/android/server/windowmanagerservice.proto +++ b/core/proto/android/server/windowmanagerservice.proto @@ -213,7 +213,7 @@ message TaskProto { optional WindowContainerProto window_container = 1; optional int32 id = 2; - repeated AppWindowTokenProto app_window_tokens = 3; + repeated ActivityRecordProto activity = 3; optional bool fills_parent = 4; optional .android.graphics.RectProto bounds = 5; optional .android.graphics.RectProto displayed_bounds = 6; @@ -223,12 +223,12 @@ message TaskProto { optional int32 surface_height = 9; } -/* represents AppWindowToken */ -message AppWindowTokenProto { +/* represents ActivityRecordProto */ +message ActivityRecordProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; - /* obtained from ActivityRecord */ optional string name = 1 [ (.android.privacy).dest = DEST_EXPLICIT ]; + optional WindowTokenProto window_token = 2; optional bool last_surface_showing = 3; optional bool is_waiting_for_transition_start = 4; @@ -253,6 +253,13 @@ message AppWindowTokenProto { optional bool visible_set_from_transferred_starting_window = 22; repeated .android.graphics.RectProto frozen_bounds = 23; optional bool visible = 24; + // To be removed soon. + optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 25 [deprecated=true]; + optional .com.android.server.wm.IdentifierProto identifier = 26; + optional string state = 27; + optional bool front_of_task = 28; + optional int32 proc_id = 29; + optional bool translucent = 30; } /* represents WindowToken */ diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 33e18c1263abf..f8f286ace9ddc 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -112,16 +112,36 @@ import static android.view.WindowManager.TRANSIT_TASK_OPEN_BEHIND; import static android.view.WindowManager.TRANSIT_UNSET; import static android.view.WindowManager.TRANSIT_WALLPAPER_OPEN; -import static com.android.server.am.ActivityRecordProto.APP_WINDOW_TOKEN; -import static com.android.server.am.ActivityRecordProto.FRONT_OF_TASK; -import static com.android.server.am.ActivityRecordProto.IDENTIFIER; -import static com.android.server.am.ActivityRecordProto.PROC_ID; -import static com.android.server.am.ActivityRecordProto.STATE; -import static com.android.server.am.ActivityRecordProto.TRANSLUCENT; -import static com.android.server.am.ActivityRecordProto.VISIBLE; -import static com.android.server.am.ActivityRecordProto.VISIBLE_REQUESTED; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM; import static com.android.server.policy.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; +import static com.android.server.wm.ActivityRecordProto.ALL_DRAWN; +import static com.android.server.wm.ActivityRecordProto.APP_STOPPED; +import static com.android.server.wm.ActivityRecordProto.CLIENT_VISIBLE; +import static com.android.server.wm.ActivityRecordProto.DEFER_HIDING_CLIENT; +import static com.android.server.wm.ActivityRecordProto.FILLS_PARENT; +import static com.android.server.wm.ActivityRecordProto.FRONT_OF_TASK; +import static com.android.server.wm.ActivityRecordProto.FROZEN_BOUNDS; +import static com.android.server.wm.ActivityRecordProto.IDENTIFIER; +import static com.android.server.wm.ActivityRecordProto.IS_ANIMATING; +import static com.android.server.wm.ActivityRecordProto.IS_WAITING_FOR_TRANSITION_START; +import static com.android.server.wm.ActivityRecordProto.LAST_ALL_DRAWN; +import static com.android.server.wm.ActivityRecordProto.LAST_SURFACE_SHOWING; +import static com.android.server.wm.ActivityRecordProto.NAME; +import static com.android.server.wm.ActivityRecordProto.NUM_DRAWN_WINDOWS; +import static com.android.server.wm.ActivityRecordProto.NUM_INTERESTING_WINDOWS; +import static com.android.server.wm.ActivityRecordProto.PROC_ID; +import static com.android.server.wm.ActivityRecordProto.REPORTED_DRAWN; +import static com.android.server.wm.ActivityRecordProto.REPORTED_VISIBLE; +import static com.android.server.wm.ActivityRecordProto.STARTING_DISPLAYED; +import static com.android.server.wm.ActivityRecordProto.STARTING_MOVED; +import static com.android.server.wm.ActivityRecordProto.STARTING_WINDOW; +import static com.android.server.wm.ActivityRecordProto.STATE; +import static com.android.server.wm.ActivityRecordProto.THUMBNAIL; +import static com.android.server.wm.ActivityRecordProto.TRANSLUCENT; +import static com.android.server.wm.ActivityRecordProto.VISIBLE; +import static com.android.server.wm.ActivityRecordProto.VISIBLE_REQUESTED; +import static com.android.server.wm.ActivityRecordProto.VISIBLE_SET_FROM_TRANSFERRED_STARTING_WINDOW; +import static com.android.server.wm.ActivityRecordProto.WINDOW_TOKEN; import static com.android.server.wm.ActivityStack.ActivityState.DESTROYED; import static com.android.server.wm.ActivityStack.ActivityState.DESTROYING; import static com.android.server.wm.ActivityStack.ActivityState.FINISHING; @@ -167,27 +187,6 @@ import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_F import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_NONE; import static com.android.server.wm.ActivityTaskManagerService.RELAUNCH_REASON_WINDOWING_MODE_RESIZE; import static com.android.server.wm.ActivityTaskManagerService.getInputDispatchingTimeoutLocked; -import static com.android.server.wm.AppWindowTokenProto.ALL_DRAWN; -import static com.android.server.wm.AppWindowTokenProto.APP_STOPPED; -import static com.android.server.wm.AppWindowTokenProto.CLIENT_VISIBLE; -import static com.android.server.wm.AppWindowTokenProto.DEFER_HIDING_CLIENT; -import static com.android.server.wm.AppWindowTokenProto.FILLS_PARENT; -import static com.android.server.wm.AppWindowTokenProto.FROZEN_BOUNDS; -import static com.android.server.wm.AppWindowTokenProto.IS_ANIMATING; -import static com.android.server.wm.AppWindowTokenProto.IS_WAITING_FOR_TRANSITION_START; -import static com.android.server.wm.AppWindowTokenProto.LAST_ALL_DRAWN; -import static com.android.server.wm.AppWindowTokenProto.LAST_SURFACE_SHOWING; -import static com.android.server.wm.AppWindowTokenProto.NAME; -import static com.android.server.wm.AppWindowTokenProto.NUM_DRAWN_WINDOWS; -import static com.android.server.wm.AppWindowTokenProto.NUM_INTERESTING_WINDOWS; -import static com.android.server.wm.AppWindowTokenProto.REPORTED_DRAWN; -import static com.android.server.wm.AppWindowTokenProto.REPORTED_VISIBLE; -import static com.android.server.wm.AppWindowTokenProto.STARTING_DISPLAYED; -import static com.android.server.wm.AppWindowTokenProto.STARTING_MOVED; -import static com.android.server.wm.AppWindowTokenProto.STARTING_WINDOW; -import static com.android.server.wm.AppWindowTokenProto.THUMBNAIL; -import static com.android.server.wm.AppWindowTokenProto.VISIBLE_SET_FROM_TRANSFERRED_STARTING_WINDOW; -import static com.android.server.wm.AppWindowTokenProto.WINDOW_TOKEN; import static com.android.server.wm.IdentifierProto.HASH_CODE; import static com.android.server.wm.IdentifierProto.TITLE; import static com.android.server.wm.IdentifierProto.USER_ID; @@ -7496,7 +7495,36 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A * {@code ActivityRecordProto} is the outer-most proto data. */ void dumpDebug(ProtoOutputStream proto) { - dumpDebug(proto, APP_WINDOW_TOKEN, WindowTraceLogLevel.ALL); + writeNameToProto(proto, NAME); + super.dumpDebug(proto, WINDOW_TOKEN, WindowTraceLogLevel.ALL); + proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing); + proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart()); + proto.write(IS_ANIMATING, isAnimating()); + if (mThumbnail != null) { + mThumbnail.dumpDebug(proto, THUMBNAIL); + } + proto.write(FILLS_PARENT, mOccludesParent); + proto.write(APP_STOPPED, mAppStopped); + proto.write(VISIBLE_REQUESTED, mVisibleRequested); + proto.write(CLIENT_VISIBLE, mClientVisible); + proto.write(DEFER_HIDING_CLIENT, mDeferHidingClient); + proto.write(REPORTED_DRAWN, reportedDrawn); + proto.write(REPORTED_VISIBLE, reportedVisible); + proto.write(NUM_INTERESTING_WINDOWS, mNumInterestingWindows); + proto.write(NUM_DRAWN_WINDOWS, mNumDrawnWindows); + proto.write(ALL_DRAWN, allDrawn); + proto.write(LAST_ALL_DRAWN, mLastAllDrawn); + if (startingWindow != null) { + startingWindow.writeIdentifierToProto(proto, STARTING_WINDOW); + } + proto.write(STARTING_DISPLAYED, startingDisplayed); + proto.write(STARTING_MOVED, startingMoved); + proto.write(VISIBLE_SET_FROM_TRANSFERRED_STARTING_WINDOW, + mVisibleSetFromTransferredStartingWindow); + for (Rect bounds : mFrozenBounds) { + bounds.dumpDebug(proto, FROZEN_BOUNDS); + } + writeIdentifierToProto(proto, IDENTIFIER); proto.write(STATE, mState.toString()); proto.write(VISIBLE_REQUESTED, mVisibleRequested); @@ -7536,7 +7564,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } proto.write(FILLS_PARENT, mOccludesParent); proto.write(APP_STOPPED, mAppStopped); - proto.write(com.android.server.wm.AppWindowTokenProto.VISIBLE_REQUESTED, mVisibleRequested); + proto.write(VISIBLE_REQUESTED, mVisibleRequested); proto.write(CLIENT_VISIBLE, mClientVisible); proto.write(DEFER_HIDING_CLIENT, mDeferHidingClient); proto.write(REPORTED_DRAWN, reportedDrawn); @@ -7555,7 +7583,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A for (Rect bounds : mFrozenBounds) { bounds.dumpDebug(proto, FROZEN_BOUNDS); } - proto.write(com.android.server.wm.AppWindowTokenProto.VISIBLE, mVisible); + proto.write(VISIBLE, mVisible); proto.end(token); } diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 9dba0d3ee051e..7f96c5e45faa8 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -90,7 +90,7 @@ import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLAS import static com.android.server.wm.ActivityTaskManagerService.TAG_STACK; import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER; import static com.android.server.wm.ProtoLogGroup.WM_DEBUG_ADD_REMOVE; -import static com.android.server.wm.TaskProto.APP_WINDOW_TOKENS; +import static com.android.server.wm.TaskProto.ACTIVITY; import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS; import static com.android.server.wm.TaskProto.FILLS_PARENT; import static com.android.server.wm.TaskProto.SURFACE_HEIGHT; @@ -3171,7 +3171,7 @@ class Task extends WindowContainer { super.dumpDebug(proto, WINDOW_CONTAINER, logLevel); proto.write(TaskProto.ID, mTaskId); forAllActivities((r) -> { - r.dumpDebug(proto, APP_WINDOW_TOKENS, logLevel); + r.dumpDebug(proto, ACTIVITY); }); proto.write(FILLS_PARENT, matchParentBounds()); getBounds().dumpDebug(proto, TaskProto.BOUNDS);