很多人经常搞不清楚各种日志文件的作用,什么时候抓这些文件,其实如果你分不清楚的话好一起抓了,至少你要分清楚有哪些日志文件需要抓。

  log文件分为实时打印的,还有状态信息的两种

  实时打印的主要有:logcatmain,logcatradio,logcatevents,tcpdump,还有高通平台的还会有QXDM日志

  状态信息的有:adbshelldmesg,adbshelldumpstate,adbshelldumpsys,adbbugreport

  讲解一下各自作用:

  通过DDMS抓的其实跟用dos批处理抓的一样都是logcat的日志文件,ddms抓的通常是main缓存中的,是应用程序打印的日志文件。不过ddms好处在于能够实时看到带有颜色的,如果是用dos批处理只能重定向到文件,到抓完之后才能够看到,不是实时的。

  adblogcat-bmain-vtime>app.log打印应用程序的log

  adblogcat-bradio-vtime>radio.log打印射频相关的log,SIMSTK也会在里面,modem相关的ATcommand等,当然跟QXDM差的很远了。

  adblogcat-bevents-vtime打印系统事件的日志,比如触屏事件。。。

  tcpdump是很有用的,对于TCP/IP协议相关的都可以使用这个来抓,adbshelltcpdump-s10000-w/sdcard/capture.pcap,比如抓mms下载的时候的UAprofile,browser上网的时候,使用proxy的APN下载,streaming的相关内容包括UAprofile等。

  后是高通平台的QXDM,不管是不是Android,只要使用高通芯片,都会对它很熟悉,当然了,不是高通的芯片不用提它了。这个不多讲,内容丰富,射频,电话,上网,...凡是高通提供的解决方案,这个都可以抓。

  状态信息:其实一个够了,那是bugreport(命令adbbugreport>bugreport.log)。里面包含有dmesg,dumpstate和dumpsys。dmesg(命令adbshelldmesg>ldmesg_kernel.log)是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等吧)。dumpstate是系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等。adbshelldumpsys这个是关于系统service的内容都在这个里面,这个命令还有更详尽的用法,比如dbshelldumpsysmeminfosystem是查看system这个process的内存信息。

  还有其他的比如PV的log,一般都是开发人员自己写的,可能让你放到sd卡里面,其他的不足或需要补充的期望您的指导。