csdn lidp 轉載著名出處。
1. loggers
通過log 查看
1.1 kernel message log
內核log 保存在一個緩衝區中,可以通命令 dmesg 查看此類型log.
同時可以加 time 參數 打印時間戳。
關於 dmesg可以看這裏 http://en.wikipedia.org/wiki/Dmesg
1.2 init 進程 logging
內核啓動後的第一個進程init輸出Log,可以修改init.rc loglevel 值到8 打印更多log信息,
默認爲3,ERROR級別。
1.3 logcat
android framework層 內嵌log 系統,應用層開發用logcat足以。
logcat命令的詳細解釋:
http://developer.android.com/guide/developing/tools/adb.html#logcat
2. tracers
可以用strace 調試android進程調用哪些系統調用及它所收到的系統信息, 關於strace 介紹看這裏:http://en.wikipedia.org/wiki/Strace
android源碼默認帶strace工具,比如調試虛擬機進程zygote
可以修改init.rc
service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
改爲:
service zygote /system/xbin/strace -tt -o/data/boot.strace /system/bin/app_process -Xzygote /system/bin --zygote --start system-server