diff --git a/services/usage/java/com/android/server/usage/BroadcastResponseStatsTracker.java b/services/usage/java/com/android/server/usage/BroadcastResponseStatsTracker.java index aa01f3152bb40..24fda17dbe792 100644 --- a/services/usage/java/com/android/server/usage/BroadcastResponseStatsTracker.java +++ b/services/usage/java/com/android/server/usage/BroadcastResponseStatsTracker.java @@ -16,6 +16,8 @@ package com.android.server.usage; +import static com.android.server.usage.UsageStatsService.DEBUG_RESPONSE_STATS; + import android.annotation.ElapsedRealtimeLong; import android.annotation.IntDef; import android.annotation.NonNull; @@ -23,9 +25,11 @@ import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.usage.BroadcastResponseStats; import android.os.UserHandle; +import android.text.TextUtils; import android.util.LongSparseArray; import android.util.Slog; import android.util.SparseArray; +import android.util.TimeUtils; import com.android.internal.annotations.GuardedBy; import com.android.internal.util.IndentingPrintWriter; @@ -69,6 +73,12 @@ class BroadcastResponseStatsTracker { void reportBroadcastDispatchEvent(int sourceUid, @NonNull String targetPackage, UserHandle targetUser, long idForResponseEvent, @ElapsedRealtimeLong long timestampMs) { + if (DEBUG_RESPONSE_STATS) { + Slog.d(TAG, TextUtils.formatSimple( + "reportBroadcastDispatchEvent; srcUid=%d, tgtPkg=%s, tgtUsr=%d, id=%d, ts=%s", + sourceUid, targetPackage, targetUser, idForResponseEvent, + TimeUtils.formatDuration(timestampMs))); + } synchronized (mLock) { final LongSparseArray broadcastEvents = getOrCreateBroadcastEventsLocked(targetPackage, targetUser); @@ -99,6 +109,12 @@ class BroadcastResponseStatsTracker { private void reportNotificationEvent(@NotificationEvent int event, @NonNull String packageName, UserHandle user, @ElapsedRealtimeLong long timestampMs) { + if (DEBUG_RESPONSE_STATS) { + Slog.d(TAG, TextUtils.formatSimple( + "reportNotificationEvent; event=<%s>, pkg=%s, usr=%d, ts=%s", + notificationEventToString(event), packageName, user.getIdentifier(), + TimeUtils.formatDuration(timestampMs))); + } // TODO (206518114): Store last N events to dump for debugging purposes. synchronized (mLock) { final LongSparseArray broadcastEvents = @@ -288,6 +304,20 @@ class BroadcastResponseStatsTracker { return userResponseStats.getOrCreateBroadcastResponseStats(broadcastEvent); } + @NonNull + private String notificationEventToString(@NotificationEvent int event) { + switch (event) { + case NOTIFICATION_EVENT_POSTED: + return "posted"; + case NOTIFICATION_EVENT_UPDATED: + return "updated"; + case NOTIFICATION_EVENT_CANCELLED: + return "cancelled"; + default: + return String.valueOf(event); + } + } + void dump(@NonNull IndentingPrintWriter ipw) { ipw.println("Broadcast response stats:"); ipw.increaseIndent(); diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java index e28839efa4bc2..e90d28a11e1df 100644 --- a/services/usage/java/com/android/server/usage/UsageStatsService.java +++ b/services/usage/java/com/android/server/usage/UsageStatsService.java @@ -89,6 +89,7 @@ import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; import android.util.AtomicFile; +import android.util.Log; import android.util.Slog; import android.util.SparseArray; import android.util.SparseIntArray; @@ -141,6 +142,7 @@ public class UsageStatsService extends SystemService implements = SystemProperties.getBoolean("persist.debug.time_correction", true); static final boolean DEBUG = false; // Never submit with true + static final boolean DEBUG_RESPONSE_STATS = DEBUG || Log.isLoggable(TAG, Log.DEBUG); static final boolean COMPRESS_TIME = false; private static final long TEN_SECONDS = 10 * 1000;