Slog和Log的区别?

问:在framework中分辨出现了Slog和Log,请问它们存在什么区别?
答:列如打印Slog.e其源码如下:

    public static int e(String tag, String msg) {
        return Log.println_native(Log.LOG_ID_SYSTEM, Log.ERROR, tag, msg);
    }

Log.e源码如下:

   public static int e(String tag, String msg) {
        return println_native(LOG_ID_MAIN, ERROR, tag, msg);
    }

通过观察它们仅为LOG_ID不同,两者均调用了同样的方法。

public static native int println_native(int bufID,
            int priority, String tag, String msg);

效果为Slog会打印出system_process,而Log会打印出app包名。在framework调试过程中应当注意调用处是否处在system空间还是user空间,以便调试时进行正确的区分。另外一点需要注意的的Slog为hide类,即不希望被app所调用。

发表回复

CAPTCHAis initialing...