Loading services/core/java/com/android/server/content/ContentService.java +52 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import com.android.internal.os.BackgroundThread; import com.android.internal.os.BinderDeathDispatcher; import com.android.internal.util.ArrayUtils; import com.android.internal.util.DumpUtils; import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.SystemService; Loading Loading @@ -1542,11 +1543,62 @@ public final class ContentService extends IContentService.Stub { return ContentResolver.SYNC_EXEMPTION_PROMOTE_BUCKET_WITH_TEMP; } if (procState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND || isUidActive) { FrameworkStatsLog.write(FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED, callingUid, getProcStateForStatsd(procState), isUidActive); return ContentResolver.SYNC_EXEMPTION_PROMOTE_BUCKET; } return ContentResolver.SYNC_EXEMPTION_NONE; } private int getProcStateForStatsd(int procState) { switch (procState) { case ActivityManager.PROCESS_STATE_UNKNOWN: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__UNKNOWN; case ActivityManager.PROCESS_STATE_PERSISTENT: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__PERSISTENT; case ActivityManager.PROCESS_STATE_PERSISTENT_UI: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__PERSISTENT_UI; case ActivityManager.PROCESS_STATE_TOP: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TOP; case ActivityManager.PROCESS_STATE_BOUND_TOP: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__BOUND_TOP; case ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__FOREGROUND_SERVICE; case ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE: return FrameworkStatsLog .SYNC_EXEMPTION_OCCURRED__PROC_STATE__BOUND_FOREGROUND_SERVICE; case ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__IMPORTANT_FOREGROUND; case ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__IMPORTANT_BACKGROUND; case ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TRANSIENT_BACKGROUND; case ActivityManager.PROCESS_STATE_BACKUP: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__BACKUP; case ActivityManager.PROCESS_STATE_SERVICE: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__SERVICE; case ActivityManager.PROCESS_STATE_RECEIVER: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__RECEIVER; case ActivityManager.PROCESS_STATE_TOP_SLEEPING: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TOP_SLEEPING; case ActivityManager.PROCESS_STATE_HEAVY_WEIGHT: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__HEAVY_WEIGHT; case ActivityManager.PROCESS_STATE_LAST_ACTIVITY: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__LAST_ACTIVITY; case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_ACTIVITY; case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT: return FrameworkStatsLog .SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_ACTIVITY_CLIENT; case ActivityManager.PROCESS_STATE_CACHED_RECENT: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_RECENT; case ActivityManager.PROCESS_STATE_CACHED_EMPTY: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_EMPTY; default: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__UNKNOWN; } } /** {@hide} */ @VisibleForTesting public static final class ObserverNode { Loading Loading
services/core/java/com/android/server/content/ContentService.java +52 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ import com.android.internal.os.BackgroundThread; import com.android.internal.os.BinderDeathDispatcher; import com.android.internal.util.ArrayUtils; import com.android.internal.util.DumpUtils; import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.IndentingPrintWriter; import com.android.server.LocalServices; import com.android.server.SystemService; Loading Loading @@ -1542,11 +1543,62 @@ public final class ContentService extends IContentService.Stub { return ContentResolver.SYNC_EXEMPTION_PROMOTE_BUCKET_WITH_TEMP; } if (procState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND || isUidActive) { FrameworkStatsLog.write(FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED, callingUid, getProcStateForStatsd(procState), isUidActive); return ContentResolver.SYNC_EXEMPTION_PROMOTE_BUCKET; } return ContentResolver.SYNC_EXEMPTION_NONE; } private int getProcStateForStatsd(int procState) { switch (procState) { case ActivityManager.PROCESS_STATE_UNKNOWN: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__UNKNOWN; case ActivityManager.PROCESS_STATE_PERSISTENT: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__PERSISTENT; case ActivityManager.PROCESS_STATE_PERSISTENT_UI: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__PERSISTENT_UI; case ActivityManager.PROCESS_STATE_TOP: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TOP; case ActivityManager.PROCESS_STATE_BOUND_TOP: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__BOUND_TOP; case ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__FOREGROUND_SERVICE; case ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE: return FrameworkStatsLog .SYNC_EXEMPTION_OCCURRED__PROC_STATE__BOUND_FOREGROUND_SERVICE; case ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__IMPORTANT_FOREGROUND; case ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__IMPORTANT_BACKGROUND; case ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TRANSIENT_BACKGROUND; case ActivityManager.PROCESS_STATE_BACKUP: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__BACKUP; case ActivityManager.PROCESS_STATE_SERVICE: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__SERVICE; case ActivityManager.PROCESS_STATE_RECEIVER: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__RECEIVER; case ActivityManager.PROCESS_STATE_TOP_SLEEPING: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__TOP_SLEEPING; case ActivityManager.PROCESS_STATE_HEAVY_WEIGHT: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__HEAVY_WEIGHT; case ActivityManager.PROCESS_STATE_LAST_ACTIVITY: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__LAST_ACTIVITY; case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_ACTIVITY; case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT: return FrameworkStatsLog .SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_ACTIVITY_CLIENT; case ActivityManager.PROCESS_STATE_CACHED_RECENT: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_RECENT; case ActivityManager.PROCESS_STATE_CACHED_EMPTY: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__CACHED_EMPTY; default: return FrameworkStatsLog.SYNC_EXEMPTION_OCCURRED__PROC_STATE__UNKNOWN; } } /** {@hide} */ @VisibleForTesting public static final class ObserverNode { Loading