android adb命令 抓取系統各種 log


getLog.bat:

adb root
adb remount
adb wait-for-device
adb logcat -v time > C:\log.txt

 

在Android中不同的log寫到不同的設備中,共有/dev/log/system, /dev/log/main, /dev/log/radion, /dev/log/events四中類型。其中默認Log.v等寫入/dev/log/main中。Slog寫入/dev/log/system中。

adb logcat -b <system, radio, events, main(default)>

main — 查看主緩沖區 (默認緩沖區)   

radio — 查看包含在無線/電話相關的緩沖區消息   

events — 查看事件相關的消息

 

1.app log
adb logcat –v time > c:\appLog.txt

2.radio log
adb logcat –v time –b radio >c:\radioLog.txt

3.kernel log
adb shell cat /proc/kmsg > kernel.log

4.導出當前緩存的kernel log
adb shell dmesg

5.實時查看kernel log
adb shell kmsgcat


 

1、logcat 

 (四類log buffer是main,radio,system,events)

adb wait-for-device logcat  
adb logcat -v time > logcat.txt      //默認是-b main -b system
adb logcat -v time -b main        //main log
adb logcat -v time -b radio        //radio log
adb logcat -v time -b system        //system log
adb logcat -v time -b events
 
2、 anr log
adb pull /data/anr
 
3、 tombstone log
adb pull /data/tombstones
 
4、 core log
adb pull  /data/log/core
 
5、 開機log
adb shell dmesg > dmesg.txt
 
6、logcatch
adb pull /data/logcatch
 
7、qxdm log
adb pull /sdcard/logs
 
8、 hprof log
在分析app 時,我們通常需要分析app 的java heap 資料,如分析java 的memory leak, 追查heap
中相關變量情況等。

在android 中抓取app 的hprof 操作方式有下面幾種:
第一種方式: 使用am 命令
   adb shell am dumpheap {Process} file
   如 adb shell am dumpheap com.android.phone /data/anr/phone.hprof
   adb pull /data/anr/phone.hprof

第二種方式: 使用DDMS 命令
   在DDMS 中選擇對應的process, 然后在Devices 按鈕欄中選擇Dump Hprof file, 保存即可

第三種方式: 通過代碼的方式
   在android.os.Debug 這個class 中有定義相關的抓取hprof 的method.
如: public static void dumpHprofData(String fileName) throws IOException;
這樣即可在代碼中直接將這個process 的hprof 保存到相對應的文件中,注意這個只能抓取當時的
process.

如果想抓其他的process 的hprof, 那么就必須通過AMS 幫忙了。
可以先獲取IActivityManager 接口,然后調用它的dumpheap 方法。具體的代碼,大家可以參考
frameworks/base/cmds/am/src/com/android/commands/am/am.java 中的調用代碼

抓取回hprof 后,就可以用hprof-conv 命令將DVM 格式的hprof 轉換成標准的java 命令的hprof
   hprof-conv in.hprof out.hprof
然后使用如MAT 之類的工具進行具體的分析
 
9、bugreport
adb bugreport > bugreport.txt
 
10、kernel log(只有從當前時間起的很少的log)
cat proc/kmsg > kmsg.txt

 

11、其他

adb shell dumpstate //各類信息,比如進程信息,內存信息,進程是否異常,kernnel的log等
adb shell dumpcrash
adb shell dumpsys   //查詢所有service的狀態
 

ref:
https://blog.csdn.net/matthewei6/article/details/50596983
https://www.cnblogs.com/zhengtu2015/p/5134012.html
 
Android logcat命令詳解
https://www.cnblogs.com/JianXu/p/5468839.html
 

解讀Android LOG機制的實現
https://www.cnblogs.com/hoys/archive/2011/09/30/2196199.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM