Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d831a3dd authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Add some debug logging to UsageStatsService."

parents c2d9ee98 ea237880
Loading
Loading
Loading
Loading
+30 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,8 @@


package com.android.server.usage;
package com.android.server.usage;


import static com.android.server.usage.UsageStatsService.DEBUG_RESPONSE_STATS;

import android.annotation.ElapsedRealtimeLong;
import android.annotation.ElapsedRealtimeLong;
import android.annotation.IntDef;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.NonNull;
@@ -23,9 +25,11 @@ import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.annotation.UserIdInt;
import android.app.usage.BroadcastResponseStats;
import android.app.usage.BroadcastResponseStats;
import android.os.UserHandle;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.LongSparseArray;
import android.util.LongSparseArray;
import android.util.Slog;
import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseArray;
import android.util.TimeUtils;


import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.IndentingPrintWriter;
@@ -69,6 +73,12 @@ class BroadcastResponseStatsTracker {
    void reportBroadcastDispatchEvent(int sourceUid, @NonNull String targetPackage,
    void reportBroadcastDispatchEvent(int sourceUid, @NonNull String targetPackage,
            UserHandle targetUser, long idForResponseEvent,
            UserHandle targetUser, long idForResponseEvent,
            @ElapsedRealtimeLong long timestampMs) {
            @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) {
        synchronized (mLock) {
            final LongSparseArray<BroadcastEvent> broadcastEvents =
            final LongSparseArray<BroadcastEvent> broadcastEvents =
                    getOrCreateBroadcastEventsLocked(targetPackage, targetUser);
                    getOrCreateBroadcastEventsLocked(targetPackage, targetUser);
@@ -99,6 +109,12 @@ class BroadcastResponseStatsTracker {


    private void reportNotificationEvent(@NotificationEvent int event,
    private void reportNotificationEvent(@NotificationEvent int event,
            @NonNull String packageName, UserHandle user, @ElapsedRealtimeLong long timestampMs) {
            @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.
        // TODO (206518114): Store last N events to dump for debugging purposes.
        synchronized (mLock) {
        synchronized (mLock) {
            final LongSparseArray<BroadcastEvent> broadcastEvents =
            final LongSparseArray<BroadcastEvent> broadcastEvents =
@@ -288,6 +304,20 @@ class BroadcastResponseStatsTracker {
        return userResponseStats.getOrCreateBroadcastResponseStats(broadcastEvent);
        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) {
    void dump(@NonNull IndentingPrintWriter ipw) {
        ipw.println("Broadcast response stats:");
        ipw.println("Broadcast response stats:");
        ipw.increaseIndent();
        ipw.increaseIndent();
+2 −0
Original line number Original line Diff line number Diff line
@@ -89,6 +89,7 @@ import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.ArraySet;
import android.util.AtomicFile;
import android.util.AtomicFile;
import android.util.Log;
import android.util.Slog;
import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseArray;
import android.util.SparseIntArray;
import android.util.SparseIntArray;
@@ -141,6 +142,7 @@ public class UsageStatsService extends SystemService implements
            = SystemProperties.getBoolean("persist.debug.time_correction", true);
            = SystemProperties.getBoolean("persist.debug.time_correction", true);


    static final boolean DEBUG = false; // Never submit with 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;
    static final boolean COMPRESS_TIME = false;


    private static final long TEN_SECONDS = 10 * 1000;
    private static final long TEN_SECONDS = 10 * 1000;