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
在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 之類的工具進行具體的分析
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的狀態
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