做应用开发大部分时候都基础的logcat日志,其实android系统本身提供的不仅有logcat日志,还有events、kernel日志。
Android 底层有几个"log buffer"(缓冲区):
- main:普通应用/系统日志(默认)
- system:系统组件日志
- events:事件日志(EventLog)
- radio:通信相关
- 还有 crash 等(新版本)
logcat 本质是从这些 buffer 里读数据的一个工具。
命令如下:
shell
logcat # 默认从 main + system + crash 等读取
logcat -b main # 只看 main buffer
logcat -b events # 只看 events buffer
抓取main.log日志
shell
adb logcat -b main -v time > events.txt
示例:

通过main.log日志就能分析日常应用的问题,或者framework层的问题。
抓取events日志的方法:
shell
adb logcat -b events -v time > events.txt
示例:

通过events.log 事件日志,能分析页面的启动,各种生命周期,应用进程的启动、kill过程等,平时分析anr、进程无故退出、等锁等问题需要用到events日志的。
抓取kernel日志的方法:
shell
# 实时显示内核打印信息并保存到android_kmsg.log文件中
adb shell cat /proc/kmsg |tee android_kmsg.log
示例:
