配套系列教学视频链接:
说明
系统:Android10.0
设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)
前言
Android系统中日志基本都是通过log系统来实现, 在代码中可以通过相应的接口来输出不同等级的日志, 不同的缓冲区有不同的API, 等级有Verbose, Debug,Info,Warn,Error。本章节主要讲解log日志的API。
一, 日志系统框架
之前的的课程中讲解了整体框架, 此处贴图让大家提升印象:
系统也提供的Java和C++/C语言不同的API:
- 在java层调用import android.util.Log,在需要打印Log的地方执行Log.v,Log.d,Log.i,Log.w,Log.e.
- c、c++层调用:在c,c++层包含此头文件:
老版本包含 #include <cutils/log.h>,代码调用LOGV,LOGD,LOGI,LOGW,LOGE
新版本包含 #include <log/log.h>, 代码调用ALOGV,ALOGD,ALOGI,ALOGW,ALOGE。
二, Android 不同缓冲区的API
Android系统中包含不同缓冲区, 特定缓冲区用的API不同:
main:查看主日志缓冲区(默认),不包含系统和崩溃日志消息。
system:查看系统日志缓冲区(默认)。
radio:查看包含无线装置/电话相关消息的缓冲区。
events:查看已经过解译的二进制系统事件缓冲区消息。
crash:查看崩溃日志缓冲区(默认)。
all:查看所有缓冲区。
default:报告 main、system 和 crash 缓冲区。
Main缓冲区API(JAVA/C/C++):
C/C++:
ALOGV(), ALOGD(),ALOGI(),ALOGW(),ALOGE()
Log.java
Log.v(),Log.d(),Log.i(),Log.w(),Log.e(),

本文详细解析Android系统中的日志API,包括不同缓冲区(main、system、radio等)的使用方法,以及Java和C++/C的接口实现,从框架到底层剖析,适合开发者进阶学习。
最低0.47元/天 解锁文章
2223





