ActivityManager: use proc state from compiled aidl
bug: 172942349 bug: 159172726 test: builds Change-Id: I3dafe7a75b2dae561583a7821284027a1896b9a5
This commit is contained in:
@@ -1088,6 +1088,14 @@ filegroup {
|
||||
path: "core/java",
|
||||
}
|
||||
|
||||
filegroup {
|
||||
name: "activity_manager_procstate_aidl",
|
||||
srcs: [
|
||||
"core/java/android/app/ProcessStateEnum.aidl",
|
||||
],
|
||||
path: "core/java",
|
||||
}
|
||||
|
||||
aidl_interface {
|
||||
name: "libincremental_aidl",
|
||||
unstable: true,
|
||||
|
||||
@@ -488,89 +488,98 @@ public class ActivityManager {
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ProcessState {}
|
||||
|
||||
/*
|
||||
* PROCESS_STATE_* must come from frameworks/base/core/java/android/app/ProcessStateEnum.aidl.
|
||||
* This is to make sure that Java side uses the same values as native.
|
||||
*/
|
||||
|
||||
/** @hide Not a real process state. */
|
||||
public static final int PROCESS_STATE_UNKNOWN = -1;
|
||||
public static final int PROCESS_STATE_UNKNOWN = ProcessStateEnum.UNKNOWN;
|
||||
|
||||
/** @hide Process is a persistent system process. */
|
||||
public static final int PROCESS_STATE_PERSISTENT = 0;
|
||||
public static final int PROCESS_STATE_PERSISTENT = ProcessStateEnum.PERSISTENT;
|
||||
|
||||
/** @hide Process is a persistent system process and is doing UI. */
|
||||
public static final int PROCESS_STATE_PERSISTENT_UI = 1;
|
||||
public static final int PROCESS_STATE_PERSISTENT_UI = ProcessStateEnum.PERSISTENT_UI;
|
||||
|
||||
/** @hide Process is hosting the current top activities. Note that this covers
|
||||
* all activities that are visible to the user. */
|
||||
@UnsupportedAppUsage
|
||||
public static final int PROCESS_STATE_TOP = 2;
|
||||
public static final int PROCESS_STATE_TOP = ProcessStateEnum.TOP;
|
||||
|
||||
/** @hide Process is bound to a TOP app. */
|
||||
public static final int PROCESS_STATE_BOUND_TOP = 3;
|
||||
public static final int PROCESS_STATE_BOUND_TOP = ProcessStateEnum.BOUND_TOP;
|
||||
|
||||
/** @hide Process is hosting a foreground service. */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||
public static final int PROCESS_STATE_FOREGROUND_SERVICE = 4;
|
||||
public static final int PROCESS_STATE_FOREGROUND_SERVICE = ProcessStateEnum.FOREGROUND_SERVICE;
|
||||
|
||||
/** @hide Process is hosting a foreground service due to a system binding. */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||
public static final int PROCESS_STATE_BOUND_FOREGROUND_SERVICE = 5;
|
||||
public static final int PROCESS_STATE_BOUND_FOREGROUND_SERVICE =
|
||||
ProcessStateEnum.BOUND_FOREGROUND_SERVICE;
|
||||
|
||||
/** @hide Process is important to the user, and something they are aware of. */
|
||||
public static final int PROCESS_STATE_IMPORTANT_FOREGROUND = 6;
|
||||
public static final int PROCESS_STATE_IMPORTANT_FOREGROUND =
|
||||
ProcessStateEnum.IMPORTANT_FOREGROUND;
|
||||
|
||||
/** @hide Process is important to the user, but not something they are aware of. */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||
public static final int PROCESS_STATE_IMPORTANT_BACKGROUND = 7;
|
||||
public static final int PROCESS_STATE_IMPORTANT_BACKGROUND =
|
||||
ProcessStateEnum.IMPORTANT_BACKGROUND;
|
||||
|
||||
/** @hide Process is in the background transient so we will try to keep running. */
|
||||
public static final int PROCESS_STATE_TRANSIENT_BACKGROUND = 8;
|
||||
public static final int PROCESS_STATE_TRANSIENT_BACKGROUND =
|
||||
ProcessStateEnum.TRANSIENT_BACKGROUND;
|
||||
|
||||
/** @hide Process is in the background running a backup/restore operation. */
|
||||
public static final int PROCESS_STATE_BACKUP = 9;
|
||||
public static final int PROCESS_STATE_BACKUP = ProcessStateEnum.BACKUP;
|
||||
|
||||
/** @hide Process is in the background running a service. Unlike oom_adj, this level
|
||||
* is used for both the normal running in background state and the executing
|
||||
* operations state. */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||
public static final int PROCESS_STATE_SERVICE = 10;
|
||||
public static final int PROCESS_STATE_SERVICE = ProcessStateEnum.SERVICE;
|
||||
|
||||
/** @hide Process is in the background running a receiver. Note that from the
|
||||
* perspective of oom_adj, receivers run at a higher foreground level, but for our
|
||||
* prioritization here that is not necessary and putting them below services means
|
||||
* many fewer changes in some process states as they receive broadcasts. */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||
public static final int PROCESS_STATE_RECEIVER = 11;
|
||||
public static final int PROCESS_STATE_RECEIVER = ProcessStateEnum.RECEIVER;
|
||||
|
||||
/** @hide Same as {@link #PROCESS_STATE_TOP} but while device is sleeping. */
|
||||
public static final int PROCESS_STATE_TOP_SLEEPING = 12;
|
||||
public static final int PROCESS_STATE_TOP_SLEEPING = ProcessStateEnum.TOP_SLEEPING;
|
||||
|
||||
/** @hide Process is in the background, but it can't restore its state so we want
|
||||
* to try to avoid killing it. */
|
||||
public static final int PROCESS_STATE_HEAVY_WEIGHT = 13;
|
||||
public static final int PROCESS_STATE_HEAVY_WEIGHT = ProcessStateEnum.HEAVY_WEIGHT;
|
||||
|
||||
/** @hide Process is in the background but hosts the home activity. */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||
public static final int PROCESS_STATE_HOME = 14;
|
||||
public static final int PROCESS_STATE_HOME = ProcessStateEnum.HOME;
|
||||
|
||||
/** @hide Process is in the background but hosts the last shown activity. */
|
||||
public static final int PROCESS_STATE_LAST_ACTIVITY = 15;
|
||||
public static final int PROCESS_STATE_LAST_ACTIVITY = ProcessStateEnum.LAST_ACTIVITY;
|
||||
|
||||
/** @hide Process is being cached for later use and contains activities. */
|
||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
|
||||
public static final int PROCESS_STATE_CACHED_ACTIVITY = 16;
|
||||
public static final int PROCESS_STATE_CACHED_ACTIVITY = ProcessStateEnum.CACHED_ACTIVITY;
|
||||
|
||||
/** @hide Process is being cached for later use and is a client of another cached
|
||||
* process that contains activities. */
|
||||
public static final int PROCESS_STATE_CACHED_ACTIVITY_CLIENT = 17;
|
||||
public static final int PROCESS_STATE_CACHED_ACTIVITY_CLIENT =
|
||||
ProcessStateEnum.CACHED_ACTIVITY_CLIENT;
|
||||
|
||||
/** @hide Process is being cached for later use and has an activity that corresponds
|
||||
* to an existing recent task. */
|
||||
public static final int PROCESS_STATE_CACHED_RECENT = 18;
|
||||
public static final int PROCESS_STATE_CACHED_RECENT = ProcessStateEnum.CACHED_RECENT;
|
||||
|
||||
/** @hide Process is being cached for later use and is empty. */
|
||||
public static final int PROCESS_STATE_CACHED_EMPTY = 19;
|
||||
public static final int PROCESS_STATE_CACHED_EMPTY = ProcessStateEnum.CACHED_EMPTY;
|
||||
|
||||
/** @hide Process does not exist. */
|
||||
public static final int PROCESS_STATE_NONEXISTENT = 20;
|
||||
public static final int PROCESS_STATE_NONEXISTENT = ProcessStateEnum.NONEXISTENT;
|
||||
|
||||
/**
|
||||
* The set of flags for process capability.
|
||||
|
||||
100
core/java/android/app/ProcessStateEnum.aidl
Normal file
100
core/java/android/app/ProcessStateEnum.aidl
Normal file
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.
|
||||
*/
|
||||
package android.app;
|
||||
|
||||
/**
|
||||
* Defines the PROCESS_STATE_* values used by ActivityManager.
|
||||
* These values are shared by Java and native side.
|
||||
* {@hide}
|
||||
*/
|
||||
@Backing(type="int")
|
||||
enum ProcessStateEnum {
|
||||
/** @hide Not a real process state. */
|
||||
UNKNOWN = -1,
|
||||
|
||||
/** @hide Process is a persistent system process. */
|
||||
PERSISTENT = 0,
|
||||
|
||||
/** @hide Process is a persistent system process and is doing UI. */
|
||||
PERSISTENT_UI = 1,
|
||||
|
||||
/** @hide Process is hosting the current top activities. Note that this covers
|
||||
* all activities that are visible to the user. */
|
||||
TOP = 2,
|
||||
|
||||
/** @hide Process is bound to a TOP app. */
|
||||
BOUND_TOP = 3,
|
||||
|
||||
/** @hide Process is hosting a foreground service. */
|
||||
FOREGROUND_SERVICE = 4,
|
||||
|
||||
/** @hide Process is hosting a foreground service due to a system binding. */
|
||||
BOUND_FOREGROUND_SERVICE = 5,
|
||||
|
||||
/** @hide Process is important to the user, and something they are aware of. */
|
||||
IMPORTANT_FOREGROUND = 6,
|
||||
|
||||
/** @hide Process is important to the user, but not something they are aware of. */
|
||||
IMPORTANT_BACKGROUND = 7,
|
||||
|
||||
/** @hide Process is in the background transient so we will try to keep running. */
|
||||
TRANSIENT_BACKGROUND = 8,
|
||||
|
||||
/** @hide Process is in the background running a backup/restore operation. */
|
||||
BACKUP = 9,
|
||||
|
||||
/** @hide Process is in the background running a service. Unlike oom_adj, this level
|
||||
* is used for both the normal running in background state and the executing
|
||||
* operations state. */
|
||||
SERVICE = 10,
|
||||
|
||||
/** @hide Process is in the background running a receiver. Note that from the
|
||||
* perspective of oom_adj, receivers run at a higher foreground level, but for our
|
||||
* prioritization here that is not necessary and putting them below services means
|
||||
* many fewer changes in some process states as they receive broadcasts. */
|
||||
RECEIVER = 11,
|
||||
|
||||
/** @hide Same as {@link #PROCESS_STATE_TOP} but while device is sleeping. */
|
||||
TOP_SLEEPING = 12,
|
||||
|
||||
/** @hide Process is in the background, but it can't restore its state so we want
|
||||
* to try to avoid killing it. */
|
||||
HEAVY_WEIGHT = 13,
|
||||
|
||||
/** @hide Process is in the background but hosts the home activity. */
|
||||
HOME = 14,
|
||||
|
||||
/** @hide Process is in the background but hosts the last shown activity. */
|
||||
LAST_ACTIVITY = 15,
|
||||
|
||||
/** @hide Process is being cached for later use and contains activities. */
|
||||
CACHED_ACTIVITY = 16,
|
||||
|
||||
/** @hide Process is being cached for later use and is a client of another cached
|
||||
* process that contains activities. */
|
||||
CACHED_ACTIVITY_CLIENT = 17,
|
||||
|
||||
/** @hide Process is being cached for later use and has an activity that corresponds
|
||||
* to an existing recent task. */
|
||||
CACHED_RECENT = 18,
|
||||
|
||||
/** @hide Process is being cached for later use and is empty. */
|
||||
CACHED_EMPTY = 19,
|
||||
|
||||
/** @hide Process does not exist. */
|
||||
NONEXISTENT = 20,
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user