Loading core/res/AndroidManifest.xml +0 −15 Original line number Diff line number Diff line Loading @@ -4287,21 +4287,6 @@ </intent-filter> </receiver> <receiver android:name="com.android.server.stats.StatsCompanionService$AnomalyAlarmReceiver" android:permission="android.permission.STATSCOMPANION" android:exported="false"> </receiver> <receiver android:name="com.android.server.stats.StatsCompanionService$PullingAlarmReceiver" android:permission="android.permission.STATSCOMPANION" android:exported="false"> </receiver> <receiver android:name="com.android.server.stats.StatsCompanionService$PeriodicAlarmReceiver" android:permission="android.permission.STATSCOMPANION" android:exported="false"> </receiver> <service android:name="android.hardware.location.GeofenceHardwareService" android:permission="android.permission.LOCATION_HARDWARE" android:exported="false" /> Loading services/art-profile +3 −3 Original line number Diff line number Diff line Loading @@ -3272,11 +3272,11 @@ Lcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService; Lcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub; Lcom/android/server/soundtrigger/SoundTriggerService; Lcom/android/server/stats/StatsCompanionService$1; Lcom/android/server/stats/StatsCompanionService$AnomalyAlarmReceiver; Lcom/android/server/stats/StatsCompanionService$AnomalyAlarmListener; Lcom/android/server/stats/StatsCompanionService$AppUpdateReceiver; Lcom/android/server/stats/StatsCompanionService$Lifecycle; Lcom/android/server/stats/StatsCompanionService$PeriodicAlarmReceiver; Lcom/android/server/stats/StatsCompanionService$PullingAlarmReceiver; Lcom/android/server/stats/StatsCompanionService$PeriodicAlarmListener; Lcom/android/server/stats/StatsCompanionService$PullingAlarmListener; Lcom/android/server/stats/StatsCompanionService$ShutdownEventReceiver; Lcom/android/server/stats/StatsCompanionService$StatsdDeathRecipient; Lcom/android/server/stats/StatsCompanionService; Loading services/core/java/com/android/server/stats/StatsCompanionService.java +40 −42 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.server.stats; import android.annotation.Nullable; import android.app.ActivityManagerInternal; import android.app.AlarmManager; import android.app.AlarmManager.OnAlarmListener; import android.app.PendingIntent; import android.app.ProcessMemoryState; import android.app.StatsManager; Loading Loading @@ -124,9 +125,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { private static IStatsManager sStatsd; private static final Object sStatsdLock = new Object(); private final PendingIntent mAnomalyAlarmIntent; private final PendingIntent mPullingAlarmIntent; private final PendingIntent mPeriodicAlarmIntent; private final OnAlarmListener mAnomalyAlarmListener = new AnomalyAlarmListener(); private final OnAlarmListener mPullingAlarmListener = new PullingAlarmListener(); private final OnAlarmListener mPeriodicAlarmListener = new PeriodicAlarmListener(); private final BroadcastReceiver mAppUpdateReceiver; private final BroadcastReceiver mUserUpdateReceiver; private final ShutdownEventReceiver mShutdownEventReceiver; Loading Loading @@ -158,12 +159,6 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { mContext = context; mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); mAnomalyAlarmIntent = PendingIntent.getBroadcast(mContext, 0, new Intent(mContext, AnomalyAlarmReceiver.class), 0); mPullingAlarmIntent = PendingIntent.getBroadcast( mContext, 0, new Intent(mContext, PullingAlarmReceiver.class), 0); mPeriodicAlarmIntent = PendingIntent.getBroadcast( mContext, 0, new Intent(mContext, PeriodicAlarmReceiver.class), 0); mAppUpdateReceiver = new AppUpdateReceiver(); mUserUpdateReceiver = new BroadcastReceiver() { @Override Loading Loading @@ -345,9 +340,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { } } public final static class AnomalyAlarmReceiver extends BroadcastReceiver { public final static class AnomalyAlarmListener implements OnAlarmListener { @Override public void onReceive(Context context, Intent intent) { public void onAlarm() { Slog.i(TAG, "StatsCompanionService believes an anomaly has occurred at time " + System.currentTimeMillis() + "ms."); synchronized (sStatsdLock) { Loading @@ -366,9 +361,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { } } public final static class PullingAlarmReceiver extends BroadcastReceiver { public final static class PullingAlarmListener implements OnAlarmListener { @Override public void onReceive(Context context, Intent intent) { public void onAlarm() { if (DEBUG) Slog.d(TAG, "Time to poll something."); synchronized (sStatsdLock) { Loading @@ -386,9 +381,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { } } public final static class PeriodicAlarmReceiver extends BroadcastReceiver { public final static class PeriodicAlarmListener implements OnAlarmListener { @Override public void onReceive(Context context, Intent intent) { public void onAlarm() { if (DEBUG) Slog.d(TAG, "Time to trigger periodic alarm."); synchronized (sStatsdLock) { Loading Loading @@ -442,9 +437,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { try { // using ELAPSED_REALTIME, not ELAPSED_REALTIME_WAKEUP, so if device is asleep, will // only fire when it awakens. // This alarm is inexact, leaving its exactness completely up to the OS optimizations. // AlarmManager will automatically cancel any previous mAnomalyAlarmIntent alarm. mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, timestampMs, mAnomalyAlarmIntent); // AlarmManager will automatically cancel any previous mAnomalyAlarmListener alarm. mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, timestampMs, TAG + ".anomaly", mAnomalyAlarmListener, null); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -456,7 +451,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { if (DEBUG) Slog.d(TAG, "Cancelling anomaly alarm"); final long callingToken = Binder.clearCallingIdentity(); try { mAlarmManager.cancel(mAnomalyAlarmIntent); mAlarmManager.cancel(mAnomalyAlarmListener); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -472,7 +467,8 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { try { // using ELAPSED_REALTIME, not ELAPSED_REALTIME_WAKEUP, so if device is asleep, will // only fire when it awakens. mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, timestampMs, mPeriodicAlarmIntent); mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, timestampMs, TAG + ".periodic", mPeriodicAlarmListener, null); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -485,7 +481,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { Slog.d(TAG, "Cancelling periodic alarm"); final long callingToken = Binder.clearCallingIdentity(); try { mAlarmManager.cancel(mPeriodicAlarmIntent); mAlarmManager.cancel(mPeriodicAlarmListener); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -494,14 +490,16 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void setPullingAlarm(long nextPullTimeMs) { enforceCallingPermission(); if (DEBUG) Slog.d(TAG, "Setting pulling alarm in about " + (nextPullTimeMs - SystemClock.elapsedRealtime())); if (DEBUG) { Slog.d(TAG, "Setting pulling alarm in about " + (nextPullTimeMs - SystemClock.elapsedRealtime())); } final long callingToken = Binder.clearCallingIdentity(); try { // using ELAPSED_REALTIME, not ELAPSED_REALTIME_WAKEUP, so if device is asleep, will // only fire when it awakens. mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, nextPullTimeMs, mPullingAlarmIntent); mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, nextPullTimeMs, TAG + ".pull", mPullingAlarmListener, null); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -514,7 +512,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { Slog.d(TAG, "Cancelling pulling alarm"); final long callingToken = Binder.clearCallingIdentity(); try { mAlarmManager.cancel(mPullingAlarmIntent); mAlarmManager.cancel(mPullingAlarmListener); } finally { Binder.restoreCallingIdentity(callingToken); } Loading Loading
core/res/AndroidManifest.xml +0 −15 Original line number Diff line number Diff line Loading @@ -4287,21 +4287,6 @@ </intent-filter> </receiver> <receiver android:name="com.android.server.stats.StatsCompanionService$AnomalyAlarmReceiver" android:permission="android.permission.STATSCOMPANION" android:exported="false"> </receiver> <receiver android:name="com.android.server.stats.StatsCompanionService$PullingAlarmReceiver" android:permission="android.permission.STATSCOMPANION" android:exported="false"> </receiver> <receiver android:name="com.android.server.stats.StatsCompanionService$PeriodicAlarmReceiver" android:permission="android.permission.STATSCOMPANION" android:exported="false"> </receiver> <service android:name="android.hardware.location.GeofenceHardwareService" android:permission="android.permission.LOCATION_HARDWARE" android:exported="false" /> Loading
services/art-profile +3 −3 Original line number Diff line number Diff line Loading @@ -3272,11 +3272,11 @@ Lcom/android/server/soundtrigger/SoundTriggerService$LocalSoundTriggerService; Lcom/android/server/soundtrigger/SoundTriggerService$SoundTriggerServiceStub; Lcom/android/server/soundtrigger/SoundTriggerService; Lcom/android/server/stats/StatsCompanionService$1; Lcom/android/server/stats/StatsCompanionService$AnomalyAlarmReceiver; Lcom/android/server/stats/StatsCompanionService$AnomalyAlarmListener; Lcom/android/server/stats/StatsCompanionService$AppUpdateReceiver; Lcom/android/server/stats/StatsCompanionService$Lifecycle; Lcom/android/server/stats/StatsCompanionService$PeriodicAlarmReceiver; Lcom/android/server/stats/StatsCompanionService$PullingAlarmReceiver; Lcom/android/server/stats/StatsCompanionService$PeriodicAlarmListener; Lcom/android/server/stats/StatsCompanionService$PullingAlarmListener; Lcom/android/server/stats/StatsCompanionService$ShutdownEventReceiver; Lcom/android/server/stats/StatsCompanionService$StatsdDeathRecipient; Lcom/android/server/stats/StatsCompanionService; Loading
services/core/java/com/android/server/stats/StatsCompanionService.java +40 −42 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.server.stats; import android.annotation.Nullable; import android.app.ActivityManagerInternal; import android.app.AlarmManager; import android.app.AlarmManager.OnAlarmListener; import android.app.PendingIntent; import android.app.ProcessMemoryState; import android.app.StatsManager; Loading Loading @@ -124,9 +125,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { private static IStatsManager sStatsd; private static final Object sStatsdLock = new Object(); private final PendingIntent mAnomalyAlarmIntent; private final PendingIntent mPullingAlarmIntent; private final PendingIntent mPeriodicAlarmIntent; private final OnAlarmListener mAnomalyAlarmListener = new AnomalyAlarmListener(); private final OnAlarmListener mPullingAlarmListener = new PullingAlarmListener(); private final OnAlarmListener mPeriodicAlarmListener = new PeriodicAlarmListener(); private final BroadcastReceiver mAppUpdateReceiver; private final BroadcastReceiver mUserUpdateReceiver; private final ShutdownEventReceiver mShutdownEventReceiver; Loading Loading @@ -158,12 +159,6 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { mContext = context; mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); mAnomalyAlarmIntent = PendingIntent.getBroadcast(mContext, 0, new Intent(mContext, AnomalyAlarmReceiver.class), 0); mPullingAlarmIntent = PendingIntent.getBroadcast( mContext, 0, new Intent(mContext, PullingAlarmReceiver.class), 0); mPeriodicAlarmIntent = PendingIntent.getBroadcast( mContext, 0, new Intent(mContext, PeriodicAlarmReceiver.class), 0); mAppUpdateReceiver = new AppUpdateReceiver(); mUserUpdateReceiver = new BroadcastReceiver() { @Override Loading Loading @@ -345,9 +340,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { } } public final static class AnomalyAlarmReceiver extends BroadcastReceiver { public final static class AnomalyAlarmListener implements OnAlarmListener { @Override public void onReceive(Context context, Intent intent) { public void onAlarm() { Slog.i(TAG, "StatsCompanionService believes an anomaly has occurred at time " + System.currentTimeMillis() + "ms."); synchronized (sStatsdLock) { Loading @@ -366,9 +361,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { } } public final static class PullingAlarmReceiver extends BroadcastReceiver { public final static class PullingAlarmListener implements OnAlarmListener { @Override public void onReceive(Context context, Intent intent) { public void onAlarm() { if (DEBUG) Slog.d(TAG, "Time to poll something."); synchronized (sStatsdLock) { Loading @@ -386,9 +381,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { } } public final static class PeriodicAlarmReceiver extends BroadcastReceiver { public final static class PeriodicAlarmListener implements OnAlarmListener { @Override public void onReceive(Context context, Intent intent) { public void onAlarm() { if (DEBUG) Slog.d(TAG, "Time to trigger periodic alarm."); synchronized (sStatsdLock) { Loading Loading @@ -442,9 +437,9 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { try { // using ELAPSED_REALTIME, not ELAPSED_REALTIME_WAKEUP, so if device is asleep, will // only fire when it awakens. // This alarm is inexact, leaving its exactness completely up to the OS optimizations. // AlarmManager will automatically cancel any previous mAnomalyAlarmIntent alarm. mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, timestampMs, mAnomalyAlarmIntent); // AlarmManager will automatically cancel any previous mAnomalyAlarmListener alarm. mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, timestampMs, TAG + ".anomaly", mAnomalyAlarmListener, null); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -456,7 +451,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { if (DEBUG) Slog.d(TAG, "Cancelling anomaly alarm"); final long callingToken = Binder.clearCallingIdentity(); try { mAlarmManager.cancel(mAnomalyAlarmIntent); mAlarmManager.cancel(mAnomalyAlarmListener); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -472,7 +467,8 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { try { // using ELAPSED_REALTIME, not ELAPSED_REALTIME_WAKEUP, so if device is asleep, will // only fire when it awakens. mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, timestampMs, mPeriodicAlarmIntent); mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, timestampMs, TAG + ".periodic", mPeriodicAlarmListener, null); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -485,7 +481,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { Slog.d(TAG, "Cancelling periodic alarm"); final long callingToken = Binder.clearCallingIdentity(); try { mAlarmManager.cancel(mPeriodicAlarmIntent); mAlarmManager.cancel(mPeriodicAlarmListener); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -494,14 +490,16 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void setPullingAlarm(long nextPullTimeMs) { enforceCallingPermission(); if (DEBUG) Slog.d(TAG, "Setting pulling alarm in about " + (nextPullTimeMs - SystemClock.elapsedRealtime())); if (DEBUG) { Slog.d(TAG, "Setting pulling alarm in about " + (nextPullTimeMs - SystemClock.elapsedRealtime())); } final long callingToken = Binder.clearCallingIdentity(); try { // using ELAPSED_REALTIME, not ELAPSED_REALTIME_WAKEUP, so if device is asleep, will // only fire when it awakens. mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, nextPullTimeMs, mPullingAlarmIntent); mAlarmManager.setExact(AlarmManager.ELAPSED_REALTIME, nextPullTimeMs, TAG + ".pull", mPullingAlarmListener, null); } finally { Binder.restoreCallingIdentity(callingToken); } Loading @@ -514,7 +512,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { Slog.d(TAG, "Cancelling pulling alarm"); final long callingToken = Binder.clearCallingIdentity(); try { mAlarmManager.cancel(mPullingAlarmIntent); mAlarmManager.cancel(mPullingAlarmListener); } finally { Binder.restoreCallingIdentity(callingToken); } Loading