在android源代码中,我经常看到像Slog.v(WindowManagerService.TAG, "First window added to " + this + ", creating SurfaceSession");这样的行,我怎么能看到android监视器下的那些慢行呢?那么slog和log有什么区别呢?

最佳答案

简短的回答
默认情况下,会使用Slog记录日志,但它们在其他日志消息之间是“隐藏”的。为了只获取用Slog记录的数据,请使用以下命令:

adb logcat -b system

冗长的回答
我查看了Slog.java的来源:
public static int v(String tag, String msg) {
    return Log.println_native(Log.LOG_ID_SYSTEM, Log.VERBOSE, tag, msg);
}

Log.java相比:
public static int v(String tag, String msg) {
    return println_native(LOG_ID_MAIN, VERBOSE, tag, msg);
}

如您所见,区别仅在于LOG_ID参数。
然后我看了看:
  ...
  -b <buffer>     Request alternate ring buffer, 'main', 'system', 'radio',
                  'events', 'crash' or 'all'. Multiple -b parameters are
                  allowed and results are interleaved. The default is
                  -b main -b system -b crash.
  ...

我没有做进一步的检查-这看起来是一个安全的打赌,即adb logcat -help选项对应于不同的-b参数。

关于android - 是否有可能在Android显示器中读取Slog?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44356922/

10-09 04:36