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