Logging the caller uid state with AlarmScheduled atom
Test: statsd_testdrive 368 Test: atest FrameworksMockingServicesTests:AlarmManagerServiceTest Test: atest CtsAlarmManagerTestCases Test: atest CtsStatsdAtomHostTestCases:AlarmStatsTests Bug: 194249875 Change-Id: Ia55306b3a4839aadc4bc2fdd873878b1a4e591fb
This commit is contained in:
@@ -2052,10 +2052,11 @@ public class AlarmManagerService extends SystemService {
|
||||
+ " -- package not allowed to start");
|
||||
return;
|
||||
}
|
||||
final int callerProcState = mActivityManagerInternal.getUidProcessState(callingUid);
|
||||
removeLocked(operation, directReceiver, REMOVE_REASON_UNDEFINED);
|
||||
incrementAlarmCount(a.uid);
|
||||
setImplLocked(a);
|
||||
MetricsHelper.pushAlarmScheduled(a);
|
||||
MetricsHelper.pushAlarmScheduled(a, callerProcState);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,6 +22,7 @@ import static com.android.internal.util.FrameworkStatsLog.ALARM_SCHEDULED__EXACT
|
||||
import static com.android.internal.util.FrameworkStatsLog.ALARM_SCHEDULED__EXACT_ALARM_ALLOWED_REASON__PERMISSION;
|
||||
import static com.android.server.alarm.AlarmManagerService.INDEFINITE_DELAY;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.app.AlarmManager;
|
||||
import android.app.StatsManager;
|
||||
import android.content.Context;
|
||||
@@ -93,7 +94,7 @@ class MetricsHelper {
|
||||
}
|
||||
}
|
||||
|
||||
static void pushAlarmScheduled(Alarm a) {
|
||||
static void pushAlarmScheduled(Alarm a, int callerProcState) {
|
||||
FrameworkStatsLog.write(
|
||||
FrameworkStatsLog.ALARM_SCHEDULED,
|
||||
a.uid,
|
||||
@@ -103,7 +104,8 @@ class MetricsHelper {
|
||||
a.alarmClock != null,
|
||||
a.repeatInterval != 0,
|
||||
reasonToStatsReason(a.mExactAllowReason),
|
||||
AlarmManagerService.isRtc(a.type));
|
||||
AlarmManagerService.isRtc(a.type),
|
||||
ActivityManager.processStateAmToProto(callerProcState));
|
||||
}
|
||||
|
||||
static void pushAlarmBatchDelivered(int numAlarms, int wakeups) {
|
||||
|
||||
@@ -3002,7 +3002,8 @@ public class AlarmManagerServiceTest {
|
||||
final PendingIntent pi = getNewMockPendingIntent();
|
||||
setTestAlarm(ELAPSED_REALTIME, mNowElapsedTest + i, pi);
|
||||
|
||||
verify(() -> MetricsHelper.pushAlarmScheduled(argThat(a -> a.matches(pi, null))));
|
||||
verify(() -> MetricsHelper.pushAlarmScheduled(argThat(a -> a.matches(pi, null)),
|
||||
anyInt()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user