Merge "Save ProtoLog viewer configuration in WMShell" into tm-qpr-dev

This commit is contained in:
Hongwei Wang
2022-10-06 17:04:00 +00:00
committed by Android (Google) Code Review
3 changed files with 23 additions and 26 deletions

View File

@@ -100,6 +100,21 @@ genrule {
out: ["wm_shell_protolog.json"], out: ["wm_shell_protolog.json"],
} }
genrule {
name: "protolog.json.gz",
srcs: [":generate-wm_shell_protolog.json"],
out: ["wmshell.protolog.json.gz"],
cmd: "$(location minigzip) -c < $(in) > $(out)",
tools: ["minigzip"],
}
prebuilt_etc {
name: "wmshell.protolog.json.gz",
system_ext_specific: true,
src: ":protolog.json.gz",
filename_from_src: true,
}
// End ProtoLog // End ProtoLog
java_library { java_library {
@@ -123,9 +138,6 @@ android_library {
resource_dirs: [ resource_dirs: [
"res", "res",
], ],
java_resources: [
":generate-wm_shell_protolog.json",
],
static_libs: [ static_libs: [
"androidx.appcompat_appcompat", "androidx.appcompat_appcompat",
"androidx.arch.core_core-runtime", "androidx.arch.core_core-runtime",

View File

@@ -17,22 +17,14 @@
package com.android.wm.shell.protolog; package com.android.wm.shell.protolog;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.content.Context;
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.BaseProtoLogImpl; import com.android.internal.protolog.BaseProtoLogImpl;
import com.android.internal.protolog.ProtoLogViewerConfigReader; import com.android.internal.protolog.ProtoLogViewerConfigReader;
import com.android.internal.protolog.common.IProtoLogGroup; import com.android.internal.protolog.common.IProtoLogGroup;
import com.android.wm.shell.R;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter; import java.io.PrintWriter;
import org.json.JSONException;
/** /**
* A service for the ProtoLog logging system. * A service for the ProtoLog logging system.
@@ -40,8 +32,9 @@ import org.json.JSONException;
public class ShellProtoLogImpl extends BaseProtoLogImpl { public class ShellProtoLogImpl extends BaseProtoLogImpl {
private static final String TAG = "ProtoLogImpl"; private static final String TAG = "ProtoLogImpl";
private static final int BUFFER_CAPACITY = 1024 * 1024; private static final int BUFFER_CAPACITY = 1024 * 1024;
// TODO: Get the right path for the proto log file when we initialize the shell components // TODO: find a proper location to save the protolog message file
private static final String LOG_FILENAME = new File("wm_shell_log.pb").getAbsolutePath(); private static final String LOG_FILENAME = "/data/misc/wmtrace/shell_log.winscope";
private static final String VIEWER_CONFIG_FILENAME = "/system_ext/etc/wmshell.protolog.json.gz";
private static ShellProtoLogImpl sServiceInstance = null; private static ShellProtoLogImpl sServiceInstance = null;
@@ -111,18 +104,8 @@ public class ShellProtoLogImpl extends BaseProtoLogImpl {
} }
public int startTextLogging(String[] groups, PrintWriter pw) { public int startTextLogging(String[] groups, PrintWriter pw) {
try (InputStream is = mViewerConfig.loadViewerConfig(pw, VIEWER_CONFIG_FILENAME);
getClass().getClassLoader().getResourceAsStream("wm_shell_protolog.json")){ return setLogging(true /* setTextLogging */, true, pw, groups);
mViewerConfig.loadViewerConfig(is);
return setLogging(true /* setTextLogging */, true, pw, groups);
} catch (IOException e) {
Log.i(TAG, "Unable to load log definitions: IOException while reading "
+ "wm_shell_protolog. " + e);
} catch (JSONException e) {
Log.i(TAG, "Unable to load log definitions: JSON parsing exception while reading "
+ "wm_shell_protolog. " + e);
}
return -1;
} }
public int stopTextLogging(String[] groups, PrintWriter pw) { public int stopTextLogging(String[] groups, PrintWriter pw) {
@@ -130,7 +113,8 @@ public class ShellProtoLogImpl extends BaseProtoLogImpl {
} }
private ShellProtoLogImpl() { private ShellProtoLogImpl() {
super(new File(LOG_FILENAME), null, BUFFER_CAPACITY, new ProtoLogViewerConfigReader()); super(new File(LOG_FILENAME), VIEWER_CONFIG_FILENAME, BUFFER_CAPACITY,
new ProtoLogViewerConfigReader());
} }
} }

View File

@@ -294,5 +294,6 @@ android_app {
dxflags: ["--multi-dex"], dxflags: ["--multi-dex"],
required: [ required: [
"privapp_whitelist_com.android.systemui", "privapp_whitelist_com.android.systemui",
"wmshell.protolog.json.gz",
], ],
} }