Merge "Logging the caller uid state with AlarmScheduled atom" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-07-23 01:11:41 +00:00
committed by Android (Google) Code Review
3 changed files with 8 additions and 4 deletions

View File

@@ -2052,10 +2052,11 @@ public class AlarmManagerService extends SystemService {
+ " -- package not allowed to start"); + " -- package not allowed to start");
return; return;
} }
final int callerProcState = mActivityManagerInternal.getUidProcessState(callingUid);
removeLocked(operation, directReceiver, REMOVE_REASON_UNDEFINED); removeLocked(operation, directReceiver, REMOVE_REASON_UNDEFINED);
incrementAlarmCount(a.uid); incrementAlarmCount(a.uid);
setImplLocked(a); setImplLocked(a);
MetricsHelper.pushAlarmScheduled(a); MetricsHelper.pushAlarmScheduled(a, callerProcState);
} }
/** /**

View File

@@ -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.internal.util.FrameworkStatsLog.ALARM_SCHEDULED__EXACT_ALARM_ALLOWED_REASON__PERMISSION;
import static com.android.server.alarm.AlarmManagerService.INDEFINITE_DELAY; import static com.android.server.alarm.AlarmManagerService.INDEFINITE_DELAY;
import android.app.ActivityManager;
import android.app.AlarmManager; import android.app.AlarmManager;
import android.app.StatsManager; import android.app.StatsManager;
import android.content.Context; 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.write(
FrameworkStatsLog.ALARM_SCHEDULED, FrameworkStatsLog.ALARM_SCHEDULED,
a.uid, a.uid,
@@ -103,7 +104,8 @@ class MetricsHelper {
a.alarmClock != null, a.alarmClock != null,
a.repeatInterval != 0, a.repeatInterval != 0,
reasonToStatsReason(a.mExactAllowReason), reasonToStatsReason(a.mExactAllowReason),
AlarmManagerService.isRtc(a.type)); AlarmManagerService.isRtc(a.type),
ActivityManager.processStateAmToProto(callerProcState));
} }
static void pushAlarmBatchDelivered(int numAlarms, int wakeups) { static void pushAlarmBatchDelivered(int numAlarms, int wakeups) {

View File

@@ -3002,7 +3002,8 @@ public class AlarmManagerServiceTest {
final PendingIntent pi = getNewMockPendingIntent(); final PendingIntent pi = getNewMockPendingIntent();
setTestAlarm(ELAPSED_REALTIME, mNowElapsedTest + i, pi); 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()));
} }
} }