blob: 788ac8f06840b95ac7cda8d7df9a34bd2ee777a3 [file] [log] [blame]
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto2";
import "frameworks/base/core/proto/android/content/intent.proto";
import "frameworks/base/core/proto/android/server/intentresolver.proto";
import "frameworks/base/core/proto/android/server/windowmanagerservice.proto";
import "frameworks/base/core/proto/android/graphics/rect.proto";
import "frameworks/base/core/proto/android/os/looper.proto";
package com.android.server.am.proto;
option java_multiple_files = true;
message ActivityManagerServiceProto {
optional ActivityStackSupervisorProto activities = 1;
optional BroadcastProto broadcasts = 2;
optional ServiceProto services = 3;
optional ProcessProto processes = 4;
}
message ActivityStackSupervisorProto {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
repeated ActivityDisplayProto displays = 2;
optional KeyguardControllerProto keyguard_controller = 3;
optional int32 focused_stack_id = 4;
optional .com.android.server.wm.proto.IdentifierProto resumed_activity = 5;
}
/* represents ActivityStackSupervisor.ActivityDisplay */
message ActivityDisplayProto {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
optional int32 id = 2;
repeated ActivityStackProto stacks = 3;
}
message ActivityStackProto {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
optional int32 id = 2;
repeated TaskRecordProto tasks = 3;
optional .com.android.server.wm.proto.IdentifierProto resumed_activity = 4;
optional int32 display_id = 5;
optional bool fullscreen = 6;
optional .android.graphics.RectProto bounds = 7;
}
message TaskRecordProto {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
optional int32 id = 2;
repeated 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 return_to_type = 9;
optional int32 resize_mode = 10;
optional bool fullscreen = 11;
optional .android.graphics.RectProto bounds = 12;
optional int32 min_width = 13;
optional int32 min_height = 14;
}
message ActivityRecordProto {
optional .com.android.server.wm.proto.ConfigurationContainerProto configuration_container = 1;
optional .com.android.server.wm.proto.IdentifierProto identifier = 2;
optional string state = 3;
optional bool visible = 4;
optional bool front_of_task = 5;
optional int32 proc_id = 6;
}
message KeyguardControllerProto {
optional bool keyguard_showing = 1;
optional bool keyguard_occluded = 2;
}
message BroadcastProto {
repeated ReceiverListProto receiver_list = 1;
optional .com.android.server.IntentResolverProto receiver_resolver = 2;
repeated BroadcastQueueProto broadcast_queue = 3;
repeated StickyBroadcastProto sticky_broadcasts = 4;
message MainHandler {
optional string handler = 1;
optional .android.os.LooperProto looper = 2;
}
optional MainHandler handler = 5;
}
message ReceiverListProto {
optional ProcessRecordProto app = 1;
optional int32 pid = 2;
optional int32 uid = 3;
optional int32 user = 4;
optional BroadcastRecordProto current = 5;
optional bool linked_to_death = 6;
repeated BroadcastFilterProto filters = 7;
optional string hex_hash = 8; // this hash is used to find the object in IntentResolver
}
message ProcessRecordProto {
optional int32 pid = 1;
optional string process_name = 2;
optional int32 uid = 3;
optional int32 user_id = 4;
optional int32 app_id = 5;
optional int32 isolated_app_id = 6;
}
message BroadcastRecordProto {
optional int32 user_id = 1;
optional string intent_action = 2;
}
message BroadcastFilterProto {
optional .android.content.IntentFilterProto intent_filter = 1;
optional string required_permission = 2;
optional string hex_hash = 3; // used to find the object in IntentResolver
optional int32 owning_user_id = 4;
}
message BroadcastQueueProto {
optional string queue_name = 1;
repeated BroadcastRecordProto parallel_broadcasts = 2;
repeated BroadcastRecordProto ordered_broadcasts = 3;
optional BroadcastRecordProto pending_broadcast = 4;
repeated BroadcastRecordProto historical_broadcasts = 5;
message BroadcastSummary {
optional .android.content.IntentProto intent = 1;
optional int64 enqueue_clock_time_ms = 2;
optional int64 dispatch_clock_time_ms = 3;
optional int64 finish_clock_time_ms = 4;
}
repeated BroadcastSummary historical_broadcasts_summary = 6;
}
message StickyBroadcastProto {
optional int32 user = 1;
message StickyAction {
optional string name = 1;
repeated .android.content.IntentProto intents = 2;
}
repeated StickyAction actions = 2;
}
message ServiceProto {
// TODO: "dumpsys activity --proto services"
}
message ProcessProto {
// TODO: "dumpsys activity --proto processes"
}