Merge "Save ProtoLog viewer configuration in WMShell" into tm-qpr-dev
This commit is contained in:
@@ -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",
|
||||||
|
|||||||
@@ -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")){
|
|
||||||
mViewerConfig.loadViewerConfig(is);
|
|
||||||
return setLogging(true /* setTextLogging */, true, pw, groups);
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user