Add state BOUND_FGS_OR_TOP and FGS into ProcessState Enum in ProcStats
Previously these two states in AMS are being mapped into the ImpFg in the ProcStats, we were unable to distinguish them in the aggregated proc stats. Now with these two new states in ProcStats, the process states we're using in AMS could be mapped into them, and eventually get mapped into the state definition in the aggregated proc stats. Bug: 186438656 Test: atest ProcStatsValidationTests Test: atest ProcessStatsDumpsysTest Test: atest CtsIncidentHostTestCases:ProcStatsProtoTest Test: atest CtsStatsdHostTestCases Test: atest CtsAppTestCases:ActivityManagerProcessStateTest Change-Id: I94eaa18d9c99f90200603fd0aafe198b62e963f7
This commit is contained in:
@@ -27,10 +27,12 @@ import static com.android.internal.app.procstats.ProcessStats.ADJ_SCREEN_MOD;
|
||||
import static com.android.internal.app.procstats.ProcessStats.ADJ_SCREEN_OFF;
|
||||
import static com.android.internal.app.procstats.ProcessStats.ADJ_SCREEN_ON;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_BACKUP;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_BOUND_TOP_OR_FGS;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_ACTIVITY;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_ACTIVITY_CLIENT;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_EMPTY;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_COUNT;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_FGS;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_HEAVY_WEIGHT;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_HOME;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_IMPORTANT_BACKGROUND;
|
||||
@@ -70,6 +72,8 @@ public final class DumpUtils {
|
||||
STATE_NAMES = new String[STATE_COUNT];
|
||||
STATE_NAMES[STATE_PERSISTENT] = "Persist";
|
||||
STATE_NAMES[STATE_TOP] = "Top";
|
||||
STATE_NAMES[STATE_BOUND_TOP_OR_FGS] = "BTopFgs";
|
||||
STATE_NAMES[STATE_FGS] = "Fgs";
|
||||
STATE_NAMES[STATE_IMPORTANT_FOREGROUND] = "ImpFg";
|
||||
STATE_NAMES[STATE_IMPORTANT_BACKGROUND] = "ImpBg";
|
||||
STATE_NAMES[STATE_BACKUP] = "Backup";
|
||||
@@ -86,6 +90,9 @@ public final class DumpUtils {
|
||||
STATE_LABELS = new String[STATE_COUNT];
|
||||
STATE_LABELS[STATE_PERSISTENT] = "Persistent";
|
||||
STATE_LABELS[STATE_TOP] = " Top";
|
||||
STATE_LABELS[STATE_BOUND_TOP_OR_FGS] = "Bnd TopFgs";
|
||||
STATE_LABELS[STATE_FGS] = " Fgs";
|
||||
STATE_LABELS[STATE_IMPORTANT_FOREGROUND] = " Imp Fg";
|
||||
STATE_LABELS[STATE_IMPORTANT_FOREGROUND] = " Imp Fg";
|
||||
STATE_LABELS[STATE_IMPORTANT_BACKGROUND] = " Imp Bg";
|
||||
STATE_LABELS[STATE_BACKUP] = " Backup";
|
||||
@@ -104,6 +111,8 @@ public final class DumpUtils {
|
||||
STATE_NAMES_CSV = new String[STATE_COUNT];
|
||||
STATE_NAMES_CSV[STATE_PERSISTENT] = "pers";
|
||||
STATE_NAMES_CSV[STATE_TOP] = "top";
|
||||
STATE_NAMES_CSV[STATE_BOUND_TOP_OR_FGS] = "btopfgs";
|
||||
STATE_NAMES_CSV[STATE_FGS] = "fgs";
|
||||
STATE_NAMES_CSV[STATE_IMPORTANT_FOREGROUND] = "impfg";
|
||||
STATE_NAMES_CSV[STATE_IMPORTANT_BACKGROUND] = "impbg";
|
||||
STATE_NAMES_CSV[STATE_BACKUP] = "backup";
|
||||
@@ -120,6 +129,8 @@ public final class DumpUtils {
|
||||
STATE_TAGS = new String[STATE_COUNT];
|
||||
STATE_TAGS[STATE_PERSISTENT] = "p";
|
||||
STATE_TAGS[STATE_TOP] = "t";
|
||||
STATE_TAGS[STATE_BOUND_TOP_OR_FGS] = "d";
|
||||
STATE_TAGS[STATE_FGS] = "g";
|
||||
STATE_TAGS[STATE_IMPORTANT_FOREGROUND] = "f";
|
||||
STATE_TAGS[STATE_IMPORTANT_BACKGROUND] = "b";
|
||||
STATE_TAGS[STATE_BACKUP] = "u";
|
||||
@@ -136,6 +147,9 @@ public final class DumpUtils {
|
||||
STATE_PROTO_ENUMS = new int[STATE_COUNT];
|
||||
STATE_PROTO_ENUMS[STATE_PERSISTENT] = ProcessStatsEnums.PROCESS_STATE_PERSISTENT;
|
||||
STATE_PROTO_ENUMS[STATE_TOP] = ProcessStatsEnums.PROCESS_STATE_TOP;
|
||||
STATE_PROTO_ENUMS[STATE_BOUND_TOP_OR_FGS] =
|
||||
ProcessStatsEnums.PROCESS_STATE_BOUND_TOP_OR_FGS;
|
||||
STATE_PROTO_ENUMS[STATE_FGS] = ProcessStatsEnums.PROCESS_STATE_FGS;
|
||||
STATE_PROTO_ENUMS[STATE_IMPORTANT_FOREGROUND] =
|
||||
ProcessStatsEnums.PROCESS_STATE_IMPORTANT_FOREGROUND;
|
||||
STATE_PROTO_ENUMS[STATE_IMPORTANT_BACKGROUND] =
|
||||
@@ -160,6 +174,10 @@ public final class DumpUtils {
|
||||
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_PERSISTENT;
|
||||
PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_TOP] =
|
||||
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_TOP;
|
||||
PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_BOUND_TOP_OR_FGS] =
|
||||
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_BOUND_TOP_OR_FGS;
|
||||
PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_FGS] =
|
||||
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_FGS;
|
||||
PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_IMPORTANT_FOREGROUND] =
|
||||
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_IMPORTANT_FOREGROUND;
|
||||
PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_IMPORTANT_BACKGROUND] =
|
||||
|
||||
@@ -28,10 +28,12 @@ import static com.android.internal.app.procstats.ProcessStats.PSS_USS_AVERAGE;
|
||||
import static com.android.internal.app.procstats.ProcessStats.PSS_USS_MAXIMUM;
|
||||
import static com.android.internal.app.procstats.ProcessStats.PSS_USS_MINIMUM;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_BACKUP;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_BOUND_TOP_OR_FGS;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_ACTIVITY;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_ACTIVITY_CLIENT;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_EMPTY;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_COUNT;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_FGS;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_HEAVY_WEIGHT;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_HOME;
|
||||
import static com.android.internal.app.procstats.ProcessStats.STATE_IMPORTANT_BACKGROUND;
|
||||
@@ -82,9 +84,9 @@ public final class ProcessState {
|
||||
STATE_PERSISTENT, // ActivityManager.PROCESS_STATE_PERSISTENT
|
||||
STATE_PERSISTENT, // ActivityManager.PROCESS_STATE_PERSISTENT_UI
|
||||
STATE_TOP, // ActivityManager.PROCESS_STATE_TOP
|
||||
STATE_IMPORTANT_FOREGROUND, // ActivityManager.PROCESS_STATE_BOUND_TOP
|
||||
STATE_IMPORTANT_FOREGROUND, // ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE
|
||||
STATE_IMPORTANT_FOREGROUND, // ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE
|
||||
STATE_BOUND_TOP_OR_FGS, // ActivityManager.PROCESS_STATE_BOUND_TOP
|
||||
STATE_FGS, // ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE
|
||||
STATE_BOUND_TOP_OR_FGS, // ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE
|
||||
STATE_IMPORTANT_FOREGROUND, // ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND
|
||||
STATE_IMPORTANT_BACKGROUND, // ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND
|
||||
STATE_IMPORTANT_BACKGROUND, // ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND
|
||||
@@ -919,6 +921,12 @@ public final class ProcessState {
|
||||
screenStates, memStates, new int[] { STATE_PERSISTENT }, now, totalTime, true);
|
||||
dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_TOP],
|
||||
screenStates, memStates, new int[] {STATE_TOP}, now, totalTime, true);
|
||||
dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_BOUND_TOP_OR_FGS],
|
||||
screenStates, memStates, new int[] { STATE_BOUND_TOP_OR_FGS}, now, totalTime,
|
||||
true);
|
||||
dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_FGS],
|
||||
screenStates, memStates, new int[] { STATE_FGS}, now, totalTime,
|
||||
true);
|
||||
dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_IMPORTANT_FOREGROUND],
|
||||
screenStates, memStates, new int[] { STATE_IMPORTANT_FOREGROUND }, now, totalTime,
|
||||
true);
|
||||
|
||||
@@ -78,18 +78,20 @@ public final class ProcessStats implements Parcelable {
|
||||
public static final int STATE_NOTHING = -1;
|
||||
public static final int STATE_PERSISTENT = 0;
|
||||
public static final int STATE_TOP = 1;
|
||||
public static final int STATE_IMPORTANT_FOREGROUND = 2;
|
||||
public static final int STATE_IMPORTANT_BACKGROUND = 3;
|
||||
public static final int STATE_BACKUP = 4;
|
||||
public static final int STATE_SERVICE = 5;
|
||||
public static final int STATE_SERVICE_RESTARTING = 6;
|
||||
public static final int STATE_RECEIVER = 7;
|
||||
public static final int STATE_HEAVY_WEIGHT = 8;
|
||||
public static final int STATE_HOME = 9;
|
||||
public static final int STATE_LAST_ACTIVITY = 10;
|
||||
public static final int STATE_CACHED_ACTIVITY = 11;
|
||||
public static final int STATE_CACHED_ACTIVITY_CLIENT = 12;
|
||||
public static final int STATE_CACHED_EMPTY = 13;
|
||||
public static final int STATE_BOUND_TOP_OR_FGS = 2;
|
||||
public static final int STATE_FGS = 3;
|
||||
public static final int STATE_IMPORTANT_FOREGROUND = 4;
|
||||
public static final int STATE_IMPORTANT_BACKGROUND = 5;
|
||||
public static final int STATE_BACKUP = 6;
|
||||
public static final int STATE_SERVICE = 7;
|
||||
public static final int STATE_SERVICE_RESTARTING = 8;
|
||||
public static final int STATE_RECEIVER = 9;
|
||||
public static final int STATE_HEAVY_WEIGHT = 10;
|
||||
public static final int STATE_HOME = 11;
|
||||
public static final int STATE_LAST_ACTIVITY = 12;
|
||||
public static final int STATE_CACHED_ACTIVITY = 13;
|
||||
public static final int STATE_CACHED_ACTIVITY_CLIENT = 14;
|
||||
public static final int STATE_CACHED_EMPTY = 15;
|
||||
public static final int STATE_COUNT = STATE_CACHED_EMPTY+1;
|
||||
|
||||
public static final int PSS_SAMPLE_COUNT = 0;
|
||||
@@ -149,8 +151,8 @@ public final class ProcessStats implements Parcelable {
|
||||
public static final int[] ALL_SCREEN_ADJ = new int[] { ADJ_SCREEN_OFF, ADJ_SCREEN_ON };
|
||||
|
||||
public static final int[] NON_CACHED_PROC_STATES = new int[] {
|
||||
STATE_PERSISTENT, STATE_TOP, STATE_IMPORTANT_FOREGROUND,
|
||||
STATE_IMPORTANT_BACKGROUND, STATE_BACKUP,
|
||||
STATE_PERSISTENT, STATE_TOP, STATE_BOUND_TOP_OR_FGS, STATE_FGS,
|
||||
STATE_IMPORTANT_FOREGROUND, STATE_IMPORTANT_BACKGROUND, STATE_BACKUP,
|
||||
STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER, STATE_HEAVY_WEIGHT
|
||||
};
|
||||
|
||||
@@ -160,7 +162,8 @@ public final class ProcessStats implements Parcelable {
|
||||
};
|
||||
|
||||
public static final int[] ALL_PROC_STATES = new int[] { STATE_PERSISTENT,
|
||||
STATE_TOP, STATE_IMPORTANT_FOREGROUND, STATE_IMPORTANT_BACKGROUND, STATE_BACKUP,
|
||||
STATE_TOP, STATE_BOUND_TOP_OR_FGS, STATE_FGS, STATE_IMPORTANT_FOREGROUND,
|
||||
STATE_IMPORTANT_BACKGROUND, STATE_BACKUP,
|
||||
STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER,
|
||||
STATE_HEAVY_WEIGHT, STATE_HOME, STATE_LAST_ACTIVITY, STATE_CACHED_ACTIVITY,
|
||||
STATE_CACHED_ACTIVITY_CLIENT, STATE_CACHED_EMPTY
|
||||
@@ -186,7 +189,7 @@ public final class ProcessStats implements Parcelable {
|
||||
{"proc", "pkg-proc", "pkg-svc", "pkg-asc", "pkg-all", "all"};
|
||||
|
||||
// Current version of the parcel format.
|
||||
private static final int PARCEL_VERSION = 39;
|
||||
private static final int PARCEL_VERSION = 40;
|
||||
// In-memory Parcel magic number, used to detect attempts to unmarshall bad data
|
||||
private static final int MAGIC = 0x50535454;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user