Android日志系统分析之开篇

android系统中, 提供了一个轻量级的日志系统。该日志系统基于在内核中实现的一个字符设备驱动

logger(misc字符设备驱动)。通过该字符设备驱动,android分别提供了C/C++Java层的日志输出函数接口。

Java接口主要分布在android.util.Log类中。

其中它信赖的JNI层实现文件位于frameworks/base/core/jni/android_util_Log.cpp文件中。

调用路径如下:

android_util_Log_println_native(Log.java中的本地方法println_native

)>__android_log_buf_write(system/core/liblog/logd_write.c)>write_to_log(它是一个

函数指针,初始值设为__write_to_log_init, 之后其值为__write_to_log_kernel)

__write_to_log_kernel函数中, 将相应的日志信息写入到对应的字符设备中定义的环形缓冲区中。在

C/C++程序中,可以通过__android_log_buf_print(该函数信赖__android_log_buf_write函数)来输出日

志信息,当然我们也可以通过log.h(frameworks/base/include/utils/log.h也即system/core

/include/log.h)中定义的一些宏来输出日志信息。

Android日志系统中信赖的字符设备驱动文件位于kernel/common/drivers/staging/android/logger.h

kernel/common/drivers/staging/android/logger.c中。

andriod日志系统中,对日志信息内容进行了分类,主要分为三类:1.radio-related信息。 2.系统/硬件事

件信息。 3.除上述二类的其他任何信息。在驱动中分别创建了三个不同的字符设备与它们相对应:

此外, android系统中还提供了一个称为logcat的命令来作为一种调试辅助工具,其实现为系统中的一个命令,也是依赖于底层定

义的设备驱动。



转载于:https://my.oschina.net/fuyajun1983cn/blog/263836

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值