diff --git a/core/java/com/android/internal/app/procstats/DumpUtils.java b/core/java/com/android/internal/app/procstats/DumpUtils.java index b476a17fa9b14..2785c21baf953 100644 --- a/core/java/com/android/internal/app/procstats/DumpUtils.java +++ b/core/java/com/android/internal/app/procstats/DumpUtils.java @@ -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] = diff --git a/core/java/com/android/internal/app/procstats/ProcessState.java b/core/java/com/android/internal/app/procstats/ProcessState.java index 0e01ab5d57c8e..4bced27cafb4e 100644 --- a/core/java/com/android/internal/app/procstats/ProcessState.java +++ b/core/java/com/android/internal/app/procstats/ProcessState.java @@ -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); diff --git a/core/java/com/android/internal/app/procstats/ProcessStats.java b/core/java/com/android/internal/app/procstats/ProcessStats.java index a9061aca1aa6e..fd16662f1b68a 100644 --- a/core/java/com/android/internal/app/procstats/ProcessStats.java +++ b/core/java/com/android/internal/app/procstats/ProcessStats.java @@ -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;