Loading core/proto/android/server/activitymanagerservice.proto +2 −83 Original line number Diff line number Diff line Loading @@ -55,87 +55,8 @@ message ActivityManagerServiceProto { message ActivityManagerServiceDumpActivitiesProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional ActivityStackSupervisorProto activity_stack_supervisor = 1; } message ActivityStackSupervisorProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; repeated ActivityDisplayProto displays = 2; optional KeyguardControllerProto keyguard_controller = 3; // TODO(b/111541062): Focused stack and resumed activity are now per-display. Topmost instances // can be obtained from top display and these fields can be removed. optional int32 focused_stack_id = 4; optional .com.android.server.wm.IdentifierProto resumed_activity = 5; // Whether or not the home activity is the recents activity. This is needed for the CTS tests to // know what activity types to check for when invoking splitscreen multi-window. optional bool is_home_recents_component = 6; repeated .com.android.server.wm.IdentifierProto pending_activities = 7; optional .com.android.server.wm.RootWindowContainerProto root_window_container = 8; } /* represents ActivityStackSupervisor.ActivityDisplay */ message ActivityDisplayProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional int32 id = 2; repeated ActivityStackProto stacks = 3; optional int32 focused_stack_id = 4; optional .com.android.server.wm.IdentifierProto resumed_activity = 5; optional bool single_task_instance = 6; optional .com.android.server.wm.DisplayContentProto display = 7; } message ActivityStackProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional int32 id = 2; repeated TaskRecordProto tasks = 3; optional .com.android.server.wm.IdentifierProto resumed_activity = 4; optional int32 display_id = 5; optional bool fullscreen = 6; optional .android.graphics.RectProto bounds = 7; optional .com.android.server.wm.StackProto stack = 8; } message TaskRecordProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional int32 id = 2; 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; optional string orig_activity = 7; optional int32 activity_type = 8; optional int32 resize_mode = 9; optional bool fullscreen = 10; optional .android.graphics.RectProto bounds = 11; optional int32 min_width = 12; optional int32 min_height = 13; optional .com.android.server.wm.TaskProto task = 14; } message KeyguardControllerProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional bool keyguard_showing = 1; repeated KeyguardOccludedProto keyguard_occluded_states= 2; optional bool aod_showing = 3; } message KeyguardOccludedProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional int32 display_id = 1; optional bool keyguard_occluded = 2; reserved 1; // activity_stack_supervisor optional .com.android.server.wm.RootWindowContainerProto root_window_container = 2; } // "dumpsys activity --proto broadcasts" Loading Loading @@ -669,8 +590,6 @@ message ActivityManagerServiceDumpProcessesProto { optional int64 previous_proc_visible_time_ms = 17; optional ProcessRecordProto heavy_weight_proc = 18; optional .android.content.ConfigurationProto global_configuration = 19; // ActivityStackSupervisorProto dumps these values as well, still here? // repeated ActivityDisplayProto displays = 20; optional bool config_will_change = 21; Loading core/proto/android/server/windowmanagerservice.proto +57 −31 Original line number Diff line number Diff line Loading @@ -54,8 +54,14 @@ message RootWindowContainerProto { optional WindowContainerProto window_container = 1; repeated DisplayContentProto displays = 2; reserved 3; // IdentifierProto windows /* window references in top down z order */ repeated IdentifierProto windows = 3; repeated WindowStateProto windows = 4; optional KeyguardControllerProto keyguard_controller = 5; // Whether or not the home activity is the recents activity. This is needed for the CTS tests to // know what activity types to check for when invoking splitscreen multi-window. optional bool is_home_recents_component = 6; repeated IdentifierProto pending_activities = 7; } message BarControllerProto { Loading Loading @@ -94,6 +100,21 @@ message KeyguardServiceDelegateProto { optional InteractiveState interactive_state = 5; } message KeyguardControllerProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional bool keyguard_showing = 1; repeated KeyguardOccludedProto keyguard_occluded_states = 2; optional bool aod_showing = 3; } message KeyguardOccludedProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional int32 display_id = 1; optional bool keyguard_occluded = 2; } /* represents PhoneWindowManager */ message WindowManagerPolicyProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; Loading Loading @@ -145,7 +166,7 @@ message DisplayContentProto { optional WindowContainerProto window_container = 1; optional int32 id = 2; repeated StackProto stacks = 3; reserved 3; // stacks optional DockedStackDividerControllerProto docked_stack_divider_controller = 4; // Will be removed soon. optional PinnedStackControllerProto pinned_stack_controller = 5 [deprecated=true]; Loading @@ -166,6 +187,12 @@ message DisplayContentProto { repeated IdentifierProto changing_apps = 19; repeated WindowTokenProto overlay_windows = 20; optional DisplayAreaProto root_display_area = 21; optional bool single_task_instance = 22; optional int32 focused_root_task_id = 23; optional .com.android.server.wm.IdentifierProto resumed_activity = 24; repeated TaskProto tasks = 25; } /* represents DisplayArea object */ Loading @@ -191,7 +218,6 @@ message DisplayAreaChildProto { repeated string unknown = 3; } /* represents DisplayFrames */ message DisplayFramesProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; Loading @@ -214,39 +240,41 @@ message PinnedStackControllerProto { optional .android.graphics.RectProto movement_bounds = 2 [deprecated=true]; } /* represents TaskStack */ message StackProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional WindowContainerProto window_container = 1; optional int32 id = 2; repeated TaskProto tasks = 3; optional bool fills_parent = 4; optional .android.graphics.RectProto bounds = 5; optional bool animation_background_surface_is_dimming = 6 [deprecated=true]; optional bool defer_removal = 7; optional float minimize_amount = 8; optional bool adjusted_for_ime = 9; optional float adjust_ime_amount = 10; optional float adjust_divider_amount = 11; optional .android.graphics.RectProto adjusted_bounds = 12; optional bool animating_bounds = 13; } /* represents Task */ message TaskProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional WindowContainerProto window_container = 1; optional int32 id = 2; repeated ActivityRecordProto activity = 3; reserved 3; // activity optional bool fills_parent = 4; optional .android.graphics.RectProto bounds = 5; optional .android.graphics.RectProto displayed_bounds = 6; // Will be removed soon. optional bool defer_removal = 7 [deprecated=true]; optional bool defer_removal = 7; optional int32 surface_width = 8; optional int32 surface_height = 9; repeated TaskProto tasks = 10; repeated ActivityRecordProto activities = 11; optional .com.android.server.wm.IdentifierProto resumed_activity = 12; optional string real_activity = 13; optional string orig_activity = 14; optional int32 display_id = 15; optional int32 root_task_id = 16; optional int32 activity_type = 17; optional int32 resize_mode = 18; optional int32 min_width = 19; optional int32 min_height = 20; optional .android.graphics.RectProto adjusted_bounds = 21; optional .android.graphics.RectProto last_non_fullscreen_bounds = 22; optional bool adjusted_for_ime = 23; optional float adjust_ime_amount = 24; optional float adjust_divider_amount = 25; optional bool animating_bounds = 26; optional float minimize_amount = 27; } /* represents ActivityRecordProto */ Loading @@ -271,17 +299,15 @@ message ActivityRecordProto { optional int32 num_drawn_windows = 15; optional bool all_drawn = 16; optional bool last_all_drawn = 17; // Will be removed soon optional bool removed = 18 [deprecated=true]; reserved 18; // removed optional IdentifierProto starting_window = 19; optional bool starting_displayed = 20; optional bool starting_moved = 21; optional bool starting_moved = 201; 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; reserved 25; // configuration_container optional IdentifierProto identifier = 26; optional string state = 27; optional bool front_of_task = 28; optional int32 proc_id = 29; Loading services/core/java/com/android/server/wm/ActivityMetricsLogger.java +1 −1 Original line number Diff line number Diff line Loading @@ -1212,7 +1212,7 @@ class ActivityMetricsLogger { final ProtoOutputStream protoOutputStream = new ProtoOutputStream(LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE); // Write this data out as the top-most ActivityRecordProto (i.e. it is not a sub-object). record.dumpDebug(protoOutputStream); record.dumpDebug(protoOutputStream, WindowTraceLogLevel.ALL); final byte[] bytes = protoOutputStream.getBytes(); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); Loading services/core/java/com/android/server/wm/ActivityRecord.java +7 −46 Original line number Diff line number Diff line Loading @@ -7506,17 +7506,19 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A * Write all fields to an {@code ActivityRecordProto}. This assumes the * {@code ActivityRecordProto} is the outer-most proto data. */ void dumpDebug(ProtoOutputStream proto) { void dumpDebug(ProtoOutputStream proto, @WindowTraceLogLevel int logLevel) { writeNameToProto(proto, NAME); super.dumpDebug(proto, WINDOW_TOKEN, WindowTraceLogLevel.ALL); super.dumpDebug(proto, WINDOW_TOKEN, logLevel); proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing); proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart()); proto.write(IS_ANIMATING, isAnimating()); proto.write(IS_ANIMATING, isAnimating(PARENTS)); if (mThumbnail != null){ mThumbnail.dumpDebug(proto, THUMBNAIL); } proto.write(FILLS_PARENT, mOccludesParent); proto.write(APP_STOPPED, mAppStopped); proto.write(TRANSLUCENT, !occludesParent()); proto.write(VISIBLE, mVisible); proto.write(VISIBLE_REQUESTED, mVisibleRequested); proto.write(CLIENT_VISIBLE, mClientVisible); proto.write(DEFER_HIDING_CLIENT, mDeferHidingClient); Loading @@ -7539,24 +7541,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A writeIdentifierToProto(proto, IDENTIFIER); proto.write(STATE, mState.toString()); proto.write(VISIBLE_REQUESTED, mVisibleRequested); proto.write(FRONT_OF_TASK, isRootOfTask()); if (hasProcess()) { proto.write(PROC_ID, app.getPid()); } proto.write(TRANSLUCENT, !occludesParent()); proto.write(VISIBLE, mVisible); } public void dumpDebug(ProtoOutputStream proto, long fieldId) { final long token = proto.start(fieldId); dumpDebug(proto); proto.end(token); } /** * Copied from old AppWindowToken. */ @Override public void dumpDebug(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { Loading @@ -7566,36 +7556,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } final long token = proto.start(fieldId); writeNameToProto(proto, NAME); super.dumpDebug(proto, WINDOW_TOKEN, logLevel); proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing); proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart()); proto.write(IS_ANIMATING, isAnimating(PARENTS)); 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); } proto.write(VISIBLE, mVisible); dumpDebug(proto, logLevel); proto.end(token); } Loading services/core/java/com/android/server/wm/ActivityStack.java +69 −40 Original line number Diff line number Diff line Loading @@ -60,10 +60,18 @@ import static android.view.WindowManager.TRANSIT_TASK_OPEN_BEHIND; import static android.view.WindowManager.TRANSIT_TASK_TO_BACK; import static android.view.WindowManager.TRANSIT_TASK_TO_FRONT; import static com.android.server.am.ActivityStackProto.DISPLAY_ID; import static com.android.server.am.ActivityStackProto.FULLSCREEN; import static com.android.server.am.ActivityStackProto.RESUMED_ACTIVITY; import static com.android.server.am.ActivityStackProto.STACK; import static com.android.server.wm.TaskProto.ACTIVITIES; import static com.android.server.wm.TaskProto.ACTIVITY_TYPE; import static com.android.server.wm.TaskProto.BOUNDS; import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS; import static com.android.server.wm.TaskProto.DISPLAY_ID; import static com.android.server.wm.TaskProto.LAST_NON_FULLSCREEN_BOUNDS; import static com.android.server.wm.TaskProto.MIN_HEIGHT; import static com.android.server.wm.TaskProto.MIN_WIDTH; import static com.android.server.wm.TaskProto.ORIG_ACTIVITY; import static com.android.server.wm.TaskProto.REAL_ACTIVITY; import static com.android.server.wm.TaskProto.RESIZE_MODE; import static com.android.server.wm.TaskProto.RESUMED_ACTIVITY; import static com.android.server.wm.ActivityStack.ActivityState.PAUSED; import static com.android.server.wm.ActivityStack.ActivityState.PAUSING; import static com.android.server.wm.ActivityStack.ActivityState.RESUMED; Loading Loading @@ -107,15 +115,19 @@ import static com.android.server.wm.BoundsAnimationController.NO_PIP_MODE_CHANGE import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_END; import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_START; import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER; import static com.android.server.wm.StackProto.ADJUSTED_BOUNDS; import static com.android.server.wm.StackProto.ADJUSTED_FOR_IME; import static com.android.server.wm.StackProto.ADJUST_DIVIDER_AMOUNT; import static com.android.server.wm.StackProto.ADJUST_IME_AMOUNT; import static com.android.server.wm.StackProto.ANIMATING_BOUNDS; import static com.android.server.wm.StackProto.DEFER_REMOVAL; import static com.android.server.wm.StackProto.FILLS_PARENT; import static com.android.server.wm.StackProto.MINIMIZE_AMOUNT; import static com.android.server.wm.StackProto.WINDOW_CONTAINER; import static com.android.server.wm.TaskProto.ADJUSTED_BOUNDS; import static com.android.server.wm.TaskProto.ADJUSTED_FOR_IME; import static com.android.server.wm.TaskProto.ADJUST_DIVIDER_AMOUNT; import static com.android.server.wm.TaskProto.ADJUST_IME_AMOUNT; import static com.android.server.wm.TaskProto.ANIMATING_BOUNDS; import static com.android.server.wm.TaskProto.DEFER_REMOVAL; import static com.android.server.wm.TaskProto.FILLS_PARENT; import static com.android.server.wm.TaskProto.MINIMIZE_AMOUNT; import static com.android.server.wm.TaskProto.ROOT_TASK_ID; import static com.android.server.wm.TaskProto.SURFACE_HEIGHT; import static com.android.server.wm.TaskProto.SURFACE_WIDTH; import static com.android.server.wm.TaskProto.TASKS; import static com.android.server.wm.TaskProto.WINDOW_CONTAINER; import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; Loading Loading @@ -4925,49 +4937,66 @@ class ActivityStack extends Task implements BoundsAnimationTarget { @Override public void dumpDebug(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) { return; } final long token = proto.start(fieldId); dumpDebugInnerStackOnly(proto, STACK, logLevel); proto.write(com.android.server.am.ActivityStackProto.ID, getRootTaskId()); super.dumpDebug(proto, WINDOW_CONTAINER, logLevel); proto.write(TaskProto.ID, mTaskId); proto.write(DISPLAY_ID, getDisplayId()); proto.write(ROOT_TASK_ID, getRootTaskId()); for (int i = mChildren.size() - 1; i >= 0; --i) { final WindowContainer child = mChildren.get(i); if (child instanceof Task) { child.dumpDebug(proto, TASKS, logLevel); } else if (child instanceof ActivityRecord) { child.dumpDebug(proto, ACTIVITIES, logLevel); } else { throw new IllegalStateException("Unknown child type: " + child); } } forAllTasks((t) -> { t.dumpDebugInner(proto, com.android.server.am.ActivityStackProto.TASKS, logLevel); }, true /* traverseTopToBottom */, this); if (mResumedActivity != null) { mResumedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY); } proto.write(DISPLAY_ID, getDisplayId()); if (!matchParentBounds()) { final Rect bounds = getRequestedOverrideBounds(); bounds.dumpDebug(proto, com.android.server.am.ActivityStackProto.BOUNDS); if (realActivity != null) { proto.write(REAL_ACTIVITY, realActivity.flattenToShortString()); } // TODO: Remove, no longer needed with windowingMode. proto.write(FULLSCREEN, matchParentBounds()); proto.end(token); if (origActivity != null) { proto.write(ORIG_ACTIVITY, origActivity.flattenToShortString()); } proto.write(ACTIVITY_TYPE, getActivityType()); proto.write(RESIZE_MODE, mResizeMode); proto.write(MIN_WIDTH, mMinWidth); proto.write(MIN_HEIGHT, mMinHeight); // TODO(proto-merge): Remove once protos for ActivityStack and TaskStack are merged. void dumpDebugInnerStackOnly(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) { return; proto.write(FILLS_PARENT, matchParentBounds()); if (!matchParentBounds()) { final Rect bounds = getRequestedOverrideBounds(); bounds.dumpDebug(proto, BOUNDS); } getOverrideDisplayedBounds().dumpDebug(proto, DISPLAYED_BOUNDS); mAdjustedBounds.dumpDebug(proto, ADJUSTED_BOUNDS); if (mLastNonFullscreenBounds != null) { mLastNonFullscreenBounds.dumpDebug(proto, LAST_NON_FULLSCREEN_BOUNDS); } final long token = proto.start(fieldId); super.dumpDebug(proto, WINDOW_CONTAINER, logLevel); proto.write(StackProto.ID, getRootTaskId()); forAllTasks((t) -> { t.dumpDebugInnerTaskOnly(proto, StackProto.TASKS, logLevel); }, true /* traverseTopToBottom */, this); proto.write(FILLS_PARENT, matchParentBounds()); getRawBounds().dumpDebug(proto, StackProto.BOUNDS); proto.write(DEFER_REMOVAL, mDeferRemoval); proto.write(MINIMIZE_AMOUNT, mMinimizeAmount); proto.write(ADJUSTED_FOR_IME, mAdjustedForIme); proto.write(ADJUST_IME_AMOUNT, mAdjustImeAmount); proto.write(ADJUST_DIVIDER_AMOUNT, mAdjustDividerAmount); mAdjustedBounds.dumpDebug(proto, ADJUSTED_BOUNDS); proto.write(ANIMATING_BOUNDS, mBoundsAnimating); if (mSurfaceControl != null) { proto.write(SURFACE_WIDTH, mSurfaceControl.getWidth()); proto.write(SURFACE_HEIGHT, mSurfaceControl.getHeight()); } proto.end(token); } } Loading
core/proto/android/server/activitymanagerservice.proto +2 −83 Original line number Diff line number Diff line Loading @@ -55,87 +55,8 @@ message ActivityManagerServiceProto { message ActivityManagerServiceDumpActivitiesProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional ActivityStackSupervisorProto activity_stack_supervisor = 1; } message ActivityStackSupervisorProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; repeated ActivityDisplayProto displays = 2; optional KeyguardControllerProto keyguard_controller = 3; // TODO(b/111541062): Focused stack and resumed activity are now per-display. Topmost instances // can be obtained from top display and these fields can be removed. optional int32 focused_stack_id = 4; optional .com.android.server.wm.IdentifierProto resumed_activity = 5; // Whether or not the home activity is the recents activity. This is needed for the CTS tests to // know what activity types to check for when invoking splitscreen multi-window. optional bool is_home_recents_component = 6; repeated .com.android.server.wm.IdentifierProto pending_activities = 7; optional .com.android.server.wm.RootWindowContainerProto root_window_container = 8; } /* represents ActivityStackSupervisor.ActivityDisplay */ message ActivityDisplayProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional int32 id = 2; repeated ActivityStackProto stacks = 3; optional int32 focused_stack_id = 4; optional .com.android.server.wm.IdentifierProto resumed_activity = 5; optional bool single_task_instance = 6; optional .com.android.server.wm.DisplayContentProto display = 7; } message ActivityStackProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional int32 id = 2; repeated TaskRecordProto tasks = 3; optional .com.android.server.wm.IdentifierProto resumed_activity = 4; optional int32 display_id = 5; optional bool fullscreen = 6; optional .android.graphics.RectProto bounds = 7; optional .com.android.server.wm.StackProto stack = 8; } message TaskRecordProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; // To be removed soon. optional .com.android.server.wm.ConfigurationContainerProto configuration_container = 1 [deprecated=true]; optional int32 id = 2; 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; optional string orig_activity = 7; optional int32 activity_type = 8; optional int32 resize_mode = 9; optional bool fullscreen = 10; optional .android.graphics.RectProto bounds = 11; optional int32 min_width = 12; optional int32 min_height = 13; optional .com.android.server.wm.TaskProto task = 14; } message KeyguardControllerProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional bool keyguard_showing = 1; repeated KeyguardOccludedProto keyguard_occluded_states= 2; optional bool aod_showing = 3; } message KeyguardOccludedProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional int32 display_id = 1; optional bool keyguard_occluded = 2; reserved 1; // activity_stack_supervisor optional .com.android.server.wm.RootWindowContainerProto root_window_container = 2; } // "dumpsys activity --proto broadcasts" Loading Loading @@ -669,8 +590,6 @@ message ActivityManagerServiceDumpProcessesProto { optional int64 previous_proc_visible_time_ms = 17; optional ProcessRecordProto heavy_weight_proc = 18; optional .android.content.ConfigurationProto global_configuration = 19; // ActivityStackSupervisorProto dumps these values as well, still here? // repeated ActivityDisplayProto displays = 20; optional bool config_will_change = 21; Loading
core/proto/android/server/windowmanagerservice.proto +57 −31 Original line number Diff line number Diff line Loading @@ -54,8 +54,14 @@ message RootWindowContainerProto { optional WindowContainerProto window_container = 1; repeated DisplayContentProto displays = 2; reserved 3; // IdentifierProto windows /* window references in top down z order */ repeated IdentifierProto windows = 3; repeated WindowStateProto windows = 4; optional KeyguardControllerProto keyguard_controller = 5; // Whether or not the home activity is the recents activity. This is needed for the CTS tests to // know what activity types to check for when invoking splitscreen multi-window. optional bool is_home_recents_component = 6; repeated IdentifierProto pending_activities = 7; } message BarControllerProto { Loading Loading @@ -94,6 +100,21 @@ message KeyguardServiceDelegateProto { optional InteractiveState interactive_state = 5; } message KeyguardControllerProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional bool keyguard_showing = 1; repeated KeyguardOccludedProto keyguard_occluded_states = 2; optional bool aod_showing = 3; } message KeyguardOccludedProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional int32 display_id = 1; optional bool keyguard_occluded = 2; } /* represents PhoneWindowManager */ message WindowManagerPolicyProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; Loading Loading @@ -145,7 +166,7 @@ message DisplayContentProto { optional WindowContainerProto window_container = 1; optional int32 id = 2; repeated StackProto stacks = 3; reserved 3; // stacks optional DockedStackDividerControllerProto docked_stack_divider_controller = 4; // Will be removed soon. optional PinnedStackControllerProto pinned_stack_controller = 5 [deprecated=true]; Loading @@ -166,6 +187,12 @@ message DisplayContentProto { repeated IdentifierProto changing_apps = 19; repeated WindowTokenProto overlay_windows = 20; optional DisplayAreaProto root_display_area = 21; optional bool single_task_instance = 22; optional int32 focused_root_task_id = 23; optional .com.android.server.wm.IdentifierProto resumed_activity = 24; repeated TaskProto tasks = 25; } /* represents DisplayArea object */ Loading @@ -191,7 +218,6 @@ message DisplayAreaChildProto { repeated string unknown = 3; } /* represents DisplayFrames */ message DisplayFramesProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; Loading @@ -214,39 +240,41 @@ message PinnedStackControllerProto { optional .android.graphics.RectProto movement_bounds = 2 [deprecated=true]; } /* represents TaskStack */ message StackProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional WindowContainerProto window_container = 1; optional int32 id = 2; repeated TaskProto tasks = 3; optional bool fills_parent = 4; optional .android.graphics.RectProto bounds = 5; optional bool animation_background_surface_is_dimming = 6 [deprecated=true]; optional bool defer_removal = 7; optional float minimize_amount = 8; optional bool adjusted_for_ime = 9; optional float adjust_ime_amount = 10; optional float adjust_divider_amount = 11; optional .android.graphics.RectProto adjusted_bounds = 12; optional bool animating_bounds = 13; } /* represents Task */ message TaskProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; optional WindowContainerProto window_container = 1; optional int32 id = 2; repeated ActivityRecordProto activity = 3; reserved 3; // activity optional bool fills_parent = 4; optional .android.graphics.RectProto bounds = 5; optional .android.graphics.RectProto displayed_bounds = 6; // Will be removed soon. optional bool defer_removal = 7 [deprecated=true]; optional bool defer_removal = 7; optional int32 surface_width = 8; optional int32 surface_height = 9; repeated TaskProto tasks = 10; repeated ActivityRecordProto activities = 11; optional .com.android.server.wm.IdentifierProto resumed_activity = 12; optional string real_activity = 13; optional string orig_activity = 14; optional int32 display_id = 15; optional int32 root_task_id = 16; optional int32 activity_type = 17; optional int32 resize_mode = 18; optional int32 min_width = 19; optional int32 min_height = 20; optional .android.graphics.RectProto adjusted_bounds = 21; optional .android.graphics.RectProto last_non_fullscreen_bounds = 22; optional bool adjusted_for_ime = 23; optional float adjust_ime_amount = 24; optional float adjust_divider_amount = 25; optional bool animating_bounds = 26; optional float minimize_amount = 27; } /* represents ActivityRecordProto */ Loading @@ -271,17 +299,15 @@ message ActivityRecordProto { optional int32 num_drawn_windows = 15; optional bool all_drawn = 16; optional bool last_all_drawn = 17; // Will be removed soon optional bool removed = 18 [deprecated=true]; reserved 18; // removed optional IdentifierProto starting_window = 19; optional bool starting_displayed = 20; optional bool starting_moved = 21; optional bool starting_moved = 201; 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; reserved 25; // configuration_container optional IdentifierProto identifier = 26; optional string state = 27; optional bool front_of_task = 28; optional int32 proc_id = 29; Loading
services/core/java/com/android/server/wm/ActivityMetricsLogger.java +1 −1 Original line number Diff line number Diff line Loading @@ -1212,7 +1212,7 @@ class ActivityMetricsLogger { final ProtoOutputStream protoOutputStream = new ProtoOutputStream(LAUNCH_OBSERVER_ACTIVITY_RECORD_PROTO_CHUNK_SIZE); // Write this data out as the top-most ActivityRecordProto (i.e. it is not a sub-object). record.dumpDebug(protoOutputStream); record.dumpDebug(protoOutputStream, WindowTraceLogLevel.ALL); final byte[] bytes = protoOutputStream.getBytes(); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); Loading
services/core/java/com/android/server/wm/ActivityRecord.java +7 −46 Original line number Diff line number Diff line Loading @@ -7506,17 +7506,19 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A * Write all fields to an {@code ActivityRecordProto}. This assumes the * {@code ActivityRecordProto} is the outer-most proto data. */ void dumpDebug(ProtoOutputStream proto) { void dumpDebug(ProtoOutputStream proto, @WindowTraceLogLevel int logLevel) { writeNameToProto(proto, NAME); super.dumpDebug(proto, WINDOW_TOKEN, WindowTraceLogLevel.ALL); super.dumpDebug(proto, WINDOW_TOKEN, logLevel); proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing); proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart()); proto.write(IS_ANIMATING, isAnimating()); proto.write(IS_ANIMATING, isAnimating(PARENTS)); if (mThumbnail != null){ mThumbnail.dumpDebug(proto, THUMBNAIL); } proto.write(FILLS_PARENT, mOccludesParent); proto.write(APP_STOPPED, mAppStopped); proto.write(TRANSLUCENT, !occludesParent()); proto.write(VISIBLE, mVisible); proto.write(VISIBLE_REQUESTED, mVisibleRequested); proto.write(CLIENT_VISIBLE, mClientVisible); proto.write(DEFER_HIDING_CLIENT, mDeferHidingClient); Loading @@ -7539,24 +7541,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A writeIdentifierToProto(proto, IDENTIFIER); proto.write(STATE, mState.toString()); proto.write(VISIBLE_REQUESTED, mVisibleRequested); proto.write(FRONT_OF_TASK, isRootOfTask()); if (hasProcess()) { proto.write(PROC_ID, app.getPid()); } proto.write(TRANSLUCENT, !occludesParent()); proto.write(VISIBLE, mVisible); } public void dumpDebug(ProtoOutputStream proto, long fieldId) { final long token = proto.start(fieldId); dumpDebug(proto); proto.end(token); } /** * Copied from old AppWindowToken. */ @Override public void dumpDebug(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { Loading @@ -7566,36 +7556,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } final long token = proto.start(fieldId); writeNameToProto(proto, NAME); super.dumpDebug(proto, WINDOW_TOKEN, logLevel); proto.write(LAST_SURFACE_SHOWING, mLastSurfaceShowing); proto.write(IS_WAITING_FOR_TRANSITION_START, isWaitingForTransitionStart()); proto.write(IS_ANIMATING, isAnimating(PARENTS)); 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); } proto.write(VISIBLE, mVisible); dumpDebug(proto, logLevel); proto.end(token); } Loading
services/core/java/com/android/server/wm/ActivityStack.java +69 −40 Original line number Diff line number Diff line Loading @@ -60,10 +60,18 @@ import static android.view.WindowManager.TRANSIT_TASK_OPEN_BEHIND; import static android.view.WindowManager.TRANSIT_TASK_TO_BACK; import static android.view.WindowManager.TRANSIT_TASK_TO_FRONT; import static com.android.server.am.ActivityStackProto.DISPLAY_ID; import static com.android.server.am.ActivityStackProto.FULLSCREEN; import static com.android.server.am.ActivityStackProto.RESUMED_ACTIVITY; import static com.android.server.am.ActivityStackProto.STACK; import static com.android.server.wm.TaskProto.ACTIVITIES; import static com.android.server.wm.TaskProto.ACTIVITY_TYPE; import static com.android.server.wm.TaskProto.BOUNDS; import static com.android.server.wm.TaskProto.DISPLAYED_BOUNDS; import static com.android.server.wm.TaskProto.DISPLAY_ID; import static com.android.server.wm.TaskProto.LAST_NON_FULLSCREEN_BOUNDS; import static com.android.server.wm.TaskProto.MIN_HEIGHT; import static com.android.server.wm.TaskProto.MIN_WIDTH; import static com.android.server.wm.TaskProto.ORIG_ACTIVITY; import static com.android.server.wm.TaskProto.REAL_ACTIVITY; import static com.android.server.wm.TaskProto.RESIZE_MODE; import static com.android.server.wm.TaskProto.RESUMED_ACTIVITY; import static com.android.server.wm.ActivityStack.ActivityState.PAUSED; import static com.android.server.wm.ActivityStack.ActivityState.PAUSING; import static com.android.server.wm.ActivityStack.ActivityState.RESUMED; Loading Loading @@ -107,15 +115,19 @@ import static com.android.server.wm.BoundsAnimationController.NO_PIP_MODE_CHANGE import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_END; import static com.android.server.wm.BoundsAnimationController.SCHEDULE_PIP_MODE_CHANGED_ON_START; import static com.android.server.wm.DragResizeMode.DRAG_RESIZE_MODE_DOCKED_DIVIDER; import static com.android.server.wm.StackProto.ADJUSTED_BOUNDS; import static com.android.server.wm.StackProto.ADJUSTED_FOR_IME; import static com.android.server.wm.StackProto.ADJUST_DIVIDER_AMOUNT; import static com.android.server.wm.StackProto.ADJUST_IME_AMOUNT; import static com.android.server.wm.StackProto.ANIMATING_BOUNDS; import static com.android.server.wm.StackProto.DEFER_REMOVAL; import static com.android.server.wm.StackProto.FILLS_PARENT; import static com.android.server.wm.StackProto.MINIMIZE_AMOUNT; import static com.android.server.wm.StackProto.WINDOW_CONTAINER; import static com.android.server.wm.TaskProto.ADJUSTED_BOUNDS; import static com.android.server.wm.TaskProto.ADJUSTED_FOR_IME; import static com.android.server.wm.TaskProto.ADJUST_DIVIDER_AMOUNT; import static com.android.server.wm.TaskProto.ADJUST_IME_AMOUNT; import static com.android.server.wm.TaskProto.ANIMATING_BOUNDS; import static com.android.server.wm.TaskProto.DEFER_REMOVAL; import static com.android.server.wm.TaskProto.FILLS_PARENT; import static com.android.server.wm.TaskProto.MINIMIZE_AMOUNT; import static com.android.server.wm.TaskProto.ROOT_TASK_ID; import static com.android.server.wm.TaskProto.SURFACE_HEIGHT; import static com.android.server.wm.TaskProto.SURFACE_WIDTH; import static com.android.server.wm.TaskProto.TASKS; import static com.android.server.wm.TaskProto.WINDOW_CONTAINER; import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; Loading Loading @@ -4925,49 +4937,66 @@ class ActivityStack extends Task implements BoundsAnimationTarget { @Override public void dumpDebug(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) { return; } final long token = proto.start(fieldId); dumpDebugInnerStackOnly(proto, STACK, logLevel); proto.write(com.android.server.am.ActivityStackProto.ID, getRootTaskId()); super.dumpDebug(proto, WINDOW_CONTAINER, logLevel); proto.write(TaskProto.ID, mTaskId); proto.write(DISPLAY_ID, getDisplayId()); proto.write(ROOT_TASK_ID, getRootTaskId()); for (int i = mChildren.size() - 1; i >= 0; --i) { final WindowContainer child = mChildren.get(i); if (child instanceof Task) { child.dumpDebug(proto, TASKS, logLevel); } else if (child instanceof ActivityRecord) { child.dumpDebug(proto, ACTIVITIES, logLevel); } else { throw new IllegalStateException("Unknown child type: " + child); } } forAllTasks((t) -> { t.dumpDebugInner(proto, com.android.server.am.ActivityStackProto.TASKS, logLevel); }, true /* traverseTopToBottom */, this); if (mResumedActivity != null) { mResumedActivity.writeIdentifierToProto(proto, RESUMED_ACTIVITY); } proto.write(DISPLAY_ID, getDisplayId()); if (!matchParentBounds()) { final Rect bounds = getRequestedOverrideBounds(); bounds.dumpDebug(proto, com.android.server.am.ActivityStackProto.BOUNDS); if (realActivity != null) { proto.write(REAL_ACTIVITY, realActivity.flattenToShortString()); } // TODO: Remove, no longer needed with windowingMode. proto.write(FULLSCREEN, matchParentBounds()); proto.end(token); if (origActivity != null) { proto.write(ORIG_ACTIVITY, origActivity.flattenToShortString()); } proto.write(ACTIVITY_TYPE, getActivityType()); proto.write(RESIZE_MODE, mResizeMode); proto.write(MIN_WIDTH, mMinWidth); proto.write(MIN_HEIGHT, mMinHeight); // TODO(proto-merge): Remove once protos for ActivityStack and TaskStack are merged. void dumpDebugInnerStackOnly(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { if (logLevel == WindowTraceLogLevel.CRITICAL && !isVisible()) { return; proto.write(FILLS_PARENT, matchParentBounds()); if (!matchParentBounds()) { final Rect bounds = getRequestedOverrideBounds(); bounds.dumpDebug(proto, BOUNDS); } getOverrideDisplayedBounds().dumpDebug(proto, DISPLAYED_BOUNDS); mAdjustedBounds.dumpDebug(proto, ADJUSTED_BOUNDS); if (mLastNonFullscreenBounds != null) { mLastNonFullscreenBounds.dumpDebug(proto, LAST_NON_FULLSCREEN_BOUNDS); } final long token = proto.start(fieldId); super.dumpDebug(proto, WINDOW_CONTAINER, logLevel); proto.write(StackProto.ID, getRootTaskId()); forAllTasks((t) -> { t.dumpDebugInnerTaskOnly(proto, StackProto.TASKS, logLevel); }, true /* traverseTopToBottom */, this); proto.write(FILLS_PARENT, matchParentBounds()); getRawBounds().dumpDebug(proto, StackProto.BOUNDS); proto.write(DEFER_REMOVAL, mDeferRemoval); proto.write(MINIMIZE_AMOUNT, mMinimizeAmount); proto.write(ADJUSTED_FOR_IME, mAdjustedForIme); proto.write(ADJUST_IME_AMOUNT, mAdjustImeAmount); proto.write(ADJUST_DIVIDER_AMOUNT, mAdjustDividerAmount); mAdjustedBounds.dumpDebug(proto, ADJUSTED_BOUNDS); proto.write(ANIMATING_BOUNDS, mBoundsAnimating); if (mSurfaceControl != null) { proto.write(SURFACE_WIDTH, mSurfaceControl.getWidth()); proto.write(SURFACE_HEIGHT, mSurfaceControl.getHeight()); } proto.end(token); } }