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

Commit c9be08b5 authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Move ProtoLog to shared place"

parents 67bb9851 6014caf1
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -1415,3 +1415,30 @@ filegroup {
    name: "framework-telephony-jarjar-rules",
    srcs: ["telephony/framework-telephony-jarjar-rules.txt"],
}

// protolog start
filegroup {
    name: "protolog-common-src",
    srcs: [
        "core/java/com/android/internal/protolog/common/**/*.java",
    ],
}

java_library {
    name: "protolog-lib",
    platform_apis: true,
    srcs: [
        "core/java/com/android/internal/protolog/ProtoLogImpl.java",
        "core/java/com/android/internal/protolog/ProtoLogViewerConfigReader.java",
        ":protolog-common-src",
    ],
}

java_library {
    name: "protolog-groups",
    srcs: [
        "core/java/com/android/internal/protolog/ProtoLogGroup.java",
        ":protolog-common-src",
    ],
}
// protolog end
+3 −15
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -14,11 +14,9 @@
 * limitations under the License.
 */

package com.android.server.wm;
package com.android.internal.protolog;

import com.android.internal.annotations.VisibleForTesting;
import com.android.server.protolog.common.IProtoLogGroup;
import com.android.server.protolog.common.ProtoLog;
import com.android.internal.protolog.common.IProtoLogGroup;

/**
 * Defines logging groups for ProtoLog.
@@ -118,16 +116,6 @@ public enum ProtoLogGroup implements IProtoLogGroup {
        this.mLogToLogcat = logToLogcat;
    }

    /**
     * Test function for automated integration tests. Can be also called manually from adb shell.
     */
    @VisibleForTesting
    public static void testProtoLog() {
        ProtoLog.e(ProtoLogGroup.TEST_GROUP,
                "Test completed successfully: %b %d %o %x %e %g %f %% %s.",
                true, 1, 2, 3, 0.4, 0.5, 0.6, "ok");
    }

    private static class Consts {
        private static final String TAG_WM = "WindowManager";

+19 −22
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -14,20 +14,20 @@
 * limitations under the License.
 */

package com.android.server.protolog;

import static com.android.server.protolog.ProtoLogFileProto.LOG;
import static com.android.server.protolog.ProtoLogFileProto.MAGIC_NUMBER;
import static com.android.server.protolog.ProtoLogFileProto.MAGIC_NUMBER_H;
import static com.android.server.protolog.ProtoLogFileProto.MAGIC_NUMBER_L;
import static com.android.server.protolog.ProtoLogFileProto.REAL_TIME_TO_ELAPSED_TIME_OFFSET_MILLIS;
import static com.android.server.protolog.ProtoLogFileProto.VERSION;
import static com.android.server.protolog.ProtoLogMessage.BOOLEAN_PARAMS;
import static com.android.server.protolog.ProtoLogMessage.DOUBLE_PARAMS;
import static com.android.server.protolog.ProtoLogMessage.ELAPSED_REALTIME_NANOS;
import static com.android.server.protolog.ProtoLogMessage.MESSAGE_HASH;
import static com.android.server.protolog.ProtoLogMessage.SINT64_PARAMS;
import static com.android.server.protolog.ProtoLogMessage.STR_PARAMS;
package com.android.internal.protolog;

import static com.android.internal.protolog.ProtoLogFileProto.LOG;
import static com.android.internal.protolog.ProtoLogFileProto.MAGIC_NUMBER;
import static com.android.internal.protolog.ProtoLogFileProto.MAGIC_NUMBER_H;
import static com.android.internal.protolog.ProtoLogFileProto.MAGIC_NUMBER_L;
import static com.android.internal.protolog.ProtoLogFileProto.REAL_TIME_TO_ELAPSED_TIME_OFFSET_MILLIS;
import static com.android.internal.protolog.ProtoLogFileProto.VERSION;
import static com.android.internal.protolog.ProtoLogMessage.BOOLEAN_PARAMS;
import static com.android.internal.protolog.ProtoLogMessage.DOUBLE_PARAMS;
import static com.android.internal.protolog.ProtoLogMessage.ELAPSED_REALTIME_NANOS;
import static com.android.internal.protolog.ProtoLogMessage.MESSAGE_HASH;
import static com.android.internal.protolog.ProtoLogMessage.SINT64_PARAMS;
import static com.android.internal.protolog.ProtoLogMessage.STR_PARAMS;

import android.annotation.Nullable;
import android.os.ShellCommand;
@@ -36,10 +36,9 @@ import android.util.Slog;
import android.util.proto.ProtoOutputStream;

import com.android.internal.annotations.VisibleForTesting;
import com.android.server.protolog.common.IProtoLogGroup;
import com.android.server.protolog.common.LogDataType;
import com.android.internal.protolog.common.IProtoLogGroup;
import com.android.internal.protolog.common.LogDataType;
import com.android.internal.util.TraceBuffer;
import com.android.server.wm.ProtoLogGroup;

import java.io.File;
import java.io.IOException;
@@ -62,7 +61,7 @@ public class ProtoLogImpl {
     * Must be invoked after every action that could change the result of {@link #isEnabled}, eg.
     * starting / stopping proto log, or enabling / disabling log groups.
     */
    static Runnable sCacheUpdater = () -> { };
    public static Runnable sCacheUpdater = () -> { };

    private static void addLogGroupEnum(IProtoLogGroup[] config) {
        for (IProtoLogGroup group : config) {
@@ -289,9 +288,7 @@ public class ProtoLogImpl {
        }
    }


    @VisibleForTesting
    ProtoLogImpl(File file, int bufferCapacity, ProtoLogViewerConfigReader viewerConfig) {
    public ProtoLogImpl(File file, int bufferCapacity, ProtoLogViewerConfigReader viewerConfig) {
        mLogFile = file;
        mBuffer = new TraceBuffer(bufferCapacity);
        mViewerConfig = viewerConfig;
+8 −9
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -14,9 +14,7 @@
 * limitations under the License.
 */

package com.android.server.protolog;

import static com.android.server.protolog.ProtoLogImpl.logAndPrintln;
package com.android.internal.protolog;

import org.json.JSONException;
import org.json.JSONObject;
@@ -80,16 +78,17 @@ public class ProtoLogViewerConfigReader {
                    // Not a messageHash - skip it
                }
            }
            logAndPrintln(pw, "Loaded " + mLogMessageMap.size() + " log definitions from "
                    + viewerConfigFilename);
            ProtoLogImpl.logAndPrintln(pw, "Loaded " + mLogMessageMap.size()
                    + " log definitions from " + viewerConfigFilename);
        } catch (FileNotFoundException e) {
            logAndPrintln(pw, "Unable to load log definitions: File "
            ProtoLogImpl.logAndPrintln(pw, "Unable to load log definitions: File "
                    + viewerConfigFilename + " not found." + e);
        } catch (IOException e) {
            logAndPrintln(pw, "Unable to load log definitions: IOException while reading "
            ProtoLogImpl.logAndPrintln(pw,
                    "Unable to load log definitions: IOException while reading "
                    + viewerConfigFilename + ". " + e);
        } catch (JSONException e) {
            logAndPrintln(pw,
            ProtoLogImpl.logAndPrintln(pw,
                    "Unable to load log definitions: JSON parsing exception while reading "
                            + viewerConfigFilename + ". " + e);
        }
+2 −2
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
 * limitations under the License.
 */

package com.android.server.protolog.common;
package com.android.internal.protolog.common;

/**
 * Error while converting a bitmask representing a list of LogDataTypes.
Loading