logcat使用了哪些日志源(默认设置: adb shell logcat
)。LogCat的输出中是否包含DMESG日志?如果不是,DMESG日志和LogCat日志有什么区别?
根据源代码https://github.com/android/platform_system_core/blob/master/liblog/liblog/logd_write.c Log.d(String tag, String message)
直接写入/dev/log/main
。
您可以像此adb shell echo "Hello world" >> /dev/log/main
但是dmesg
打印了内核环缓冲区的内容。因此,dmesg
仅打印系统写入内核日志的内容,logcat
仅输出Android App的日志。
logcat--这是在Android中使用的内核靴子(已完成了硬件初始化/探测),Android启动了一个称为INIT的过程,该过程解析了包含所有Android System Active的INIT.RC文件,我的意思是,我的意思是启动Android的基本过程init.rc文件有一个名为zygote的过程,该过程启动了dalvik虚拟机,此后所有其他活动经理都将被应用程序用于与硬件进行交互。因此,它基本上是VM的消息,供应用程序程序员调试。 logcat示例http://pastebin.com/bv1vd6eq
dmesg-这是来自内核的消息,假设您写一个驱动程序,它可以用作调试驱动程序和其他内核代码的工具,其中大多数是驱动程序消息,这是调试的好方法,内核,驱动程序,驱动程序ETC.. DMESG示例http://pastebin.com/p4ja9pfi
logcat仅适用于Android,并且在任何其他操作系统中都不可用,LogCat和Dmesg都在Android上可用,但对于任何Linux发行版而言,logcat和dmesg都不可用。
问候,zubraj