抓取android日志:dmesg与logcat调试用

抓取日志,对于开发人员来说是不可缺少的操作,当我们在源码中添加打印之后,那么我们可以从打印中获取到很多关键的东西。比如对关键问题的锁定,编译没错,但是却不能避免其它的错误,只有当真正运行到机器上的时候才能知道到底有没有问题。

dmesg与logcat的区别:

LOGCAT——这在Android中使用,为了查看Android中活动管理器编写的不同消息,你可以看到Android也使用linux内核,但是它的作用是,一旦内核启动(硬件初始化/探测已经处理好了),android启动一个名为init的进程,它解析包含所有android系统活动的init.rc文件,我的意思是android启动的基本进程,在这个init.rc文件中有一个名为zyte的进程,它启动Dalvik虚拟机,然后所有其他活动管理器,它将被应用程序用来与硬件交互。所以它基本上是来自VM的消息,供应用程序程序员调试。

Dmesg是来自内核的消息,假设你写了一个驱动程序,它可以作为调试驱动程序和其他内核代码的工具,其中大部分是驱动程序消息它的一种很好的调试方式,内核、驱动程序等。。

Logcat仅适用于android,其他操作系统不提供Logcat和dmesg,但在任何linux发行版上都不提供。

dmesg打印内核的环形缓冲区的内容。因此dmesg只打印系统写入内核日志的内容,logcat只输出android应用的日志。

dmesg 打印内核启动过程的所有信息,/proc/kmsg也是打印内核的信息, 但是与dmesg 有不同, 第一次执行/proc/kmsg 打印到目前位置的所有内核信息,再次执行/proc/kmsg,

不打印打印过了的信息,打印第一次执行之后的信息,下面举个例子:

第一次执行dmesg打印:

A

B

C

第一次执行/proc/kmsg打印:

A

B

C

第二次执行dmesg打印:

A

B

C

D

第2次执行/proc/kmsg打印:

D

依次类推。

抓取机器的日志,连接好USB线,待系统自动安装好驱动,WIN+R输入CMD打开命令提示符窗口输入以下命令,即可抓到机器日志:

adb shell dmesg > dmesg.log
adb shell logcat > logcat.log

你可能感兴趣的:(android,adb)