用adb logcat抓取log

墨塵深巷發表於2018-07-24

 

實時列印的主要有:logcat main,logcat radio,logcat events,tcpdump,還有高通平臺的還會有QXDM日誌


    狀態資訊的有:adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport


    講解一下各自作用:

    通過DDMS抓的其實跟用dos批處理抓的一樣都是logcat的日誌檔案,ddms抓的通常是main快取中的,就是應用程式列印的日誌檔案。不過ddms好處在於能夠實時看到帶有顏色的,如果是用dos批處理只能重定向到檔案,到抓完之後才能夠看到,不是實時的。


    adb logcat -b main -v time>app.log 列印應用程式的log


    adb logcat -b radio -v time> radio.log 列印射頻相關的log,SIM STK也會在裡面,modem相關的ATcommand等,當然跟QXDM差的很遠了。


    adb logcat -b events -v time  列印系統事件的日誌,比如觸屏事件。。。


    tcpdump 是很有用的,對於TCP/IP協議相關的都可以使用這個來抓,adb shell tcpdump -s 10000 -w /sdcard/capture.pcap,比如抓mms下載的時候的UA profile,browser上網的時候,使用proxy的APN下載,streaming的相關內容包括UA profile等。


    最後是高通平臺的QXDM,不管是不是Android,只要使用高通晶片,都會對它很熟悉,當然了,不是高通的晶片就不用提它了。這個不多講,內容豐富,射頻,電話,上網,...凡是高通提供的解決方案,這個都可以抓。


    狀態資訊:其實一個就夠了,那就是bugreport(命令adb bugreport>bugreport.log)。裡面包含有dmesg,dumpstate和dumpsys。dmesg(命令adb shell dmesg > ldmesg_kernel.log)是kernel的log,凡是跟kernel相關的,比如driver出了問題(相機,藍芽,usb,啟動,等等吧)。 dumpstate是系統狀態資訊,裡面比較全,包括手機當前的記憶體資訊、cpu資訊、logcat快取,kernel快取等等。adb shell dumpsys這個是關於系統service的內容都在這個裡面,這個命令還有更詳盡的用法,比如db shell dumpsys meminfo system是檢視system這個process的記憶體資訊。

相關文章