Loading core/java/android/provider/Settings.java +9 −0 Original line number Diff line number Diff line Loading @@ -10658,6 +10658,15 @@ public final class Settings { */ public static final String ACTIVITY_MANAGER_CONSTANTS = "activity_manager_constants"; /** * Feature flag to enable or disable the activity starts logging feature. * Type: int (0 for false, 1 for true) * Default: 0 * @hide */ public static final String ACTIVITY_STARTS_LOGGING_ENABLED = "activity_starts_logging_enabled"; /** * App ops specific settings. * This is encoded as a key=value list, separated by commas. Ex: Loading core/tests/coretests/src/android/provider/SettingsBackupTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ public class SettingsBackupTest { private static final Set<String> BACKUP_BLACKLISTED_GLOBAL_SETTINGS = newHashSet( Settings.Global.ACTIVITY_MANAGER_CONSTANTS, Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED, Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, Settings.Global.ADB_ENABLED, Settings.Global.ADD_USERS_WHEN_LOCKED, Loading proto/src/metrics_constants.proto +244 −0 Original line number Diff line number Diff line Loading @@ -6180,6 +6180,250 @@ message MetricsEvent { // OS: Q DIALOG_ACCESSIBILITY_HEARINGAID = 1512; // ACTION: Activity start // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) ACTION_ACTIVITY_START = 1513; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Calling UID // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_CALLING_UID = 1514; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Calling package name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_CALLING_PACKAGE_NAME = 1515; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Calling UID proc state // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_CALLING_UID_PROC_STATE = 1516; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Calling UID has any visible window // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_CALLING_UID_HAS_ANY_VISIBLE_WINDOW = 1517; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Real calling UID // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_REAL_CALLING_UID = 1518; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Real calling UID proc state // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_REAL_CALLING_UID_PROC_STATE = 1519; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Real calling UID has any visible window // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_REAL_CALLING_UID_HAS_ANY_VISIBLE_WINDOW = 1520; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target UID // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_UID = 1521; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target UID package name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_PACKAGE_NAME = 1522; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target UID proc state // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_UID_PROC_STATE = 1523; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target UID has any visible window // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_UID_HAS_ANY_VISIBLE_WINDOW = 1524; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target doze whitelist tag // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_WHITELIST_TAG = 1525; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target short component name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_SHORT_COMPONENT_NAME = 1526; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Coming from pending intent // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_COMING_FROM_PENDING_INTENT = 1527; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Intent action // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_INTENT_ACTION = 1528; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record process name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_PROCESS_NAME = 1529; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record current proc state // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_CUR_PROC_STATE = 1530; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has client activities // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_CLIENT_ACTIVITIES = 1531; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has foreground services // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_FOREGROUND_SERVICES = 1532; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has foreground activities // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_FOREGROUND_ACTIVITIES = 1533; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has top UI // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_TOP_UI = 1534; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has overlay UI // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_OVERLAY_UI = 1535; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record pending UI clean // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_PENDING_UI_CLEAN = 1536; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since caller app's process record last interaction event // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_MILLIS_SINCE_LAST_INTERACTION_EVENT = 1537; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since caller app's process record fg interaction // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_MILLIS_SINCE_FG_INTERACTION = 1538; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since caller app's process record last became unimportant // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_MILLIS_SINCE_UNIMPORTANT = 1539; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record launch mode // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_LAUNCH_MODE = 1540; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record target activity // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_TARGET_ACTIVITY = 1541; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record flags // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_FLAGS = 1542; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record real activity // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_REAL_ACTIVITY = 1543; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record short component name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_SHORT_COMPONENT_NAME = 1544; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record process name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_PROCESS_NAME = 1545; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record is fullscreen // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_IS_FULLSCREEN = 1546; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record is no display // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_IS_NO_DISPLAY = 1547; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since activity was last visible // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_VISIBLE = 1548; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record's resultTo packageName // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_RESULT_TO_PKG_NAME = 1549; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record's resultTo shortComponentName // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_RESULT_TO_SHORT_COMPONENT_NAME = 1550; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record is visible // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_IS_VISIBLE = 1551; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record is visible ignoring keyguard // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_IS_VISIBLE_IGNORING_KEYGUARD = 1552; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since activity's last launch // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_LAUNCH = 1553; // ---- End Q Constants, all Q constants go above this line ---- Loading services/core/java/com/android/server/am/ActivityManagerConstants.java +24 −3 Original line number Diff line number Diff line Loading @@ -207,6 +207,10 @@ final class ActivityManagerConstants extends ContentObserver { // Indicates if the processes need to be started asynchronously. public boolean FLAG_PROCESS_START_ASYNC = DEFAULT_PROCESS_START_ASYNC; // Indicates whether the activity starts logging is enabled. // Controlled by Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED boolean mFlagActivityStartsLoggingEnabled; private final ActivityManagerService mService; private ContentResolver mResolver; private final KeyValueListParser mParser = new KeyValueListParser(','); Loading Loading @@ -235,6 +239,12 @@ final class ActivityManagerConstants extends ContentObserver { // memory trimming. public int CUR_TRIM_CACHED_PROCESSES; private static final Uri ACTIVITY_MANAGER_CONSTANTS_URI = Settings.Global.getUriFor( Settings.Global.ACTIVITY_MANAGER_CONSTANTS); private static final Uri ACTIVITY_STARTS_LOGGING_ENABLED_URI = Settings.Global.getUriFor( Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED); public ActivityManagerConstants(ActivityManagerService service, Handler handler) { super(handler); mService = service; Loading @@ -243,9 +253,10 @@ final class ActivityManagerConstants extends ContentObserver { public void start(ContentResolver resolver) { mResolver = resolver; mResolver.registerContentObserver(Settings.Global.getUriFor( Settings.Global.ACTIVITY_MANAGER_CONSTANTS), false, this); mResolver.registerContentObserver(ACTIVITY_MANAGER_CONSTANTS_URI, false, this); mResolver.registerContentObserver(ACTIVITY_STARTS_LOGGING_ENABLED_URI, false, this); updateConstants(); updateActivityStartsLoggingEnabled(); } public void setOverrideMaxCachedProcesses(int value) { Loading @@ -263,7 +274,12 @@ final class ActivityManagerConstants extends ContentObserver { @Override public void onChange(boolean selfChange, Uri uri) { if (uri == null) return; if (ACTIVITY_MANAGER_CONSTANTS_URI.equals(uri)) { updateConstants(); } else if (ACTIVITY_STARTS_LOGGING_ENABLED_URI.equals(uri)) { updateActivityStartsLoggingEnabled(); } } private void updateConstants() { Loading Loading @@ -337,6 +353,11 @@ final class ActivityManagerConstants extends ContentObserver { } } private void updateActivityStartsLoggingEnabled() { mFlagActivityStartsLoggingEnabled = Settings.Global.getInt(mResolver, Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED, 0) == 1; } private void updateMaxCachedProcesses() { CUR_MAX_CACHED_PROCESSES = mOverrideMaxCachedProcesses < 0 ? MAX_CACHED_PROCESSES : mOverrideMaxCachedProcesses; Loading services/core/java/com/android/server/am/ActivityManagerService.java +14 −0 Original line number Diff line number Diff line Loading @@ -7214,6 +7214,20 @@ public class ActivityManagerService extends IActivityManager.Stub || mPendingTempWhitelist.indexOfKey(uid) >= 0; } /** * @return whitelist tag for a uid from mPendingTempWhitelist, null if not currently on * the whitelist */ String getPendingTempWhitelistTagForUidLocked(int uid) { final PendingTempWhitelist ptw = mPendingTempWhitelist.get(uid); return ptw != null ? ptw.tag : null; } @VisibleForTesting boolean isActivityStartsLoggingEnabled() { return mConstants.mFlagActivityStartsLoggingEnabled; } private ProviderInfo getProviderInfoLocked(String authority, int userHandle, int pmFlags) { ProviderInfo pi = null; ContentProviderRecord cpr = mProviderMap.getProviderByName(authority, userHandle); Loading Loading
core/java/android/provider/Settings.java +9 −0 Original line number Diff line number Diff line Loading @@ -10658,6 +10658,15 @@ public final class Settings { */ public static final String ACTIVITY_MANAGER_CONSTANTS = "activity_manager_constants"; /** * Feature flag to enable or disable the activity starts logging feature. * Type: int (0 for false, 1 for true) * Default: 0 * @hide */ public static final String ACTIVITY_STARTS_LOGGING_ENABLED = "activity_starts_logging_enabled"; /** * App ops specific settings. * This is encoded as a key=value list, separated by commas. Ex: Loading
core/tests/coretests/src/android/provider/SettingsBackupTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ public class SettingsBackupTest { private static final Set<String> BACKUP_BLACKLISTED_GLOBAL_SETTINGS = newHashSet( Settings.Global.ACTIVITY_MANAGER_CONSTANTS, Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED, Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, Settings.Global.ADB_ENABLED, Settings.Global.ADD_USERS_WHEN_LOCKED, Loading
proto/src/metrics_constants.proto +244 −0 Original line number Diff line number Diff line Loading @@ -6180,6 +6180,250 @@ message MetricsEvent { // OS: Q DIALOG_ACCESSIBILITY_HEARINGAID = 1512; // ACTION: Activity start // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) ACTION_ACTIVITY_START = 1513; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Calling UID // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_CALLING_UID = 1514; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Calling package name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_CALLING_PACKAGE_NAME = 1515; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Calling UID proc state // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_CALLING_UID_PROC_STATE = 1516; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Calling UID has any visible window // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_CALLING_UID_HAS_ANY_VISIBLE_WINDOW = 1517; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Real calling UID // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_REAL_CALLING_UID = 1518; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Real calling UID proc state // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_REAL_CALLING_UID_PROC_STATE = 1519; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Real calling UID has any visible window // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_REAL_CALLING_UID_HAS_ANY_VISIBLE_WINDOW = 1520; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target UID // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_UID = 1521; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target UID package name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_PACKAGE_NAME = 1522; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target UID proc state // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_UID_PROC_STATE = 1523; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target UID has any visible window // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_UID_HAS_ANY_VISIBLE_WINDOW = 1524; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target doze whitelist tag // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_WHITELIST_TAG = 1525; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Target short component name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_TARGET_SHORT_COMPONENT_NAME = 1526; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Coming from pending intent // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_COMING_FROM_PENDING_INTENT = 1527; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Intent action // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_INTENT_ACTION = 1528; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record process name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_PROCESS_NAME = 1529; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record current proc state // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_CUR_PROC_STATE = 1530; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has client activities // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_CLIENT_ACTIVITIES = 1531; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has foreground services // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_FOREGROUND_SERVICES = 1532; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has foreground activities // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_FOREGROUND_ACTIVITIES = 1533; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has top UI // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_TOP_UI = 1534; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record has overlay UI // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_HAS_OVERLAY_UI = 1535; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Caller app process record pending UI clean // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_PENDING_UI_CLEAN = 1536; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since caller app's process record last interaction event // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_MILLIS_SINCE_LAST_INTERACTION_EVENT = 1537; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since caller app's process record fg interaction // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_MILLIS_SINCE_FG_INTERACTION = 1538; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since caller app's process record last became unimportant // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_PROCESS_RECORD_MILLIS_SINCE_UNIMPORTANT = 1539; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record launch mode // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_LAUNCH_MODE = 1540; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record target activity // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_TARGET_ACTIVITY = 1541; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record flags // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_FLAGS = 1542; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record real activity // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_REAL_ACTIVITY = 1543; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record short component name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_SHORT_COMPONENT_NAME = 1544; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record process name // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_PROCESS_NAME = 1545; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record is fullscreen // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_IS_FULLSCREEN = 1546; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record is no display // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_IS_NO_DISPLAY = 1547; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since activity was last visible // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_VISIBLE = 1548; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record's resultTo packageName // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_RESULT_TO_PKG_NAME = 1549; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record's resultTo shortComponentName // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_RESULT_TO_SHORT_COMPONENT_NAME = 1550; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record is visible // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_IS_VISIBLE = 1551; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Activity record is visible ignoring keyguard // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_IS_VISIBLE_IGNORING_KEYGUARD = 1552; // Tagged data for ACTION_ACTIVITY_START. // FIELD: Millis since activity's last launch // CATEGORY: OTHER // OS: Q (will also ship in PQ1A) FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_LAUNCH = 1553; // ---- End Q Constants, all Q constants go above this line ---- Loading
services/core/java/com/android/server/am/ActivityManagerConstants.java +24 −3 Original line number Diff line number Diff line Loading @@ -207,6 +207,10 @@ final class ActivityManagerConstants extends ContentObserver { // Indicates if the processes need to be started asynchronously. public boolean FLAG_PROCESS_START_ASYNC = DEFAULT_PROCESS_START_ASYNC; // Indicates whether the activity starts logging is enabled. // Controlled by Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED boolean mFlagActivityStartsLoggingEnabled; private final ActivityManagerService mService; private ContentResolver mResolver; private final KeyValueListParser mParser = new KeyValueListParser(','); Loading Loading @@ -235,6 +239,12 @@ final class ActivityManagerConstants extends ContentObserver { // memory trimming. public int CUR_TRIM_CACHED_PROCESSES; private static final Uri ACTIVITY_MANAGER_CONSTANTS_URI = Settings.Global.getUriFor( Settings.Global.ACTIVITY_MANAGER_CONSTANTS); private static final Uri ACTIVITY_STARTS_LOGGING_ENABLED_URI = Settings.Global.getUriFor( Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED); public ActivityManagerConstants(ActivityManagerService service, Handler handler) { super(handler); mService = service; Loading @@ -243,9 +253,10 @@ final class ActivityManagerConstants extends ContentObserver { public void start(ContentResolver resolver) { mResolver = resolver; mResolver.registerContentObserver(Settings.Global.getUriFor( Settings.Global.ACTIVITY_MANAGER_CONSTANTS), false, this); mResolver.registerContentObserver(ACTIVITY_MANAGER_CONSTANTS_URI, false, this); mResolver.registerContentObserver(ACTIVITY_STARTS_LOGGING_ENABLED_URI, false, this); updateConstants(); updateActivityStartsLoggingEnabled(); } public void setOverrideMaxCachedProcesses(int value) { Loading @@ -263,7 +274,12 @@ final class ActivityManagerConstants extends ContentObserver { @Override public void onChange(boolean selfChange, Uri uri) { if (uri == null) return; if (ACTIVITY_MANAGER_CONSTANTS_URI.equals(uri)) { updateConstants(); } else if (ACTIVITY_STARTS_LOGGING_ENABLED_URI.equals(uri)) { updateActivityStartsLoggingEnabled(); } } private void updateConstants() { Loading Loading @@ -337,6 +353,11 @@ final class ActivityManagerConstants extends ContentObserver { } } private void updateActivityStartsLoggingEnabled() { mFlagActivityStartsLoggingEnabled = Settings.Global.getInt(mResolver, Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED, 0) == 1; } private void updateMaxCachedProcesses() { CUR_MAX_CACHED_PROCESSES = mOverrideMaxCachedProcesses < 0 ? MAX_CACHED_PROCESSES : mOverrideMaxCachedProcesses; Loading
services/core/java/com/android/server/am/ActivityManagerService.java +14 −0 Original line number Diff line number Diff line Loading @@ -7214,6 +7214,20 @@ public class ActivityManagerService extends IActivityManager.Stub || mPendingTempWhitelist.indexOfKey(uid) >= 0; } /** * @return whitelist tag for a uid from mPendingTempWhitelist, null if not currently on * the whitelist */ String getPendingTempWhitelistTagForUidLocked(int uid) { final PendingTempWhitelist ptw = mPendingTempWhitelist.get(uid); return ptw != null ? ptw.tag : null; } @VisibleForTesting boolean isActivityStartsLoggingEnabled() { return mConstants.mFlagActivityStartsLoggingEnabled; } private ProviderInfo getProviderInfoLocked(String authority, int userHandle, int pmFlags) { ProviderInfo pi = null; ContentProviderRecord cpr = mProviderMap.getProviderByName(authority, userHandle); Loading