Android日志管理——Log系统分析(二)

 一、Log 系统概述

        App 中常使用的 Log.d、Log.v 等,而在 Native 层会使用 ALOGD 打印日志。对于第三方添加的 C/C++ 应用程序来说,如果希望使用 Android 的日志系统,就需要添加 liblog 库。这里我们首先研究一下如何对 App 中的 Log 进行分类存储。源码分析以 Android 为例,其中liblog,logd 在安卓10,安卓11版本上差别不大。 虽然logcat 在Android 10 上用C++ 进行了重构,但是其基本业务逻辑的接口都没有变化。

1、日志系统框架(Android 9.0)

应用层

        安卓系统封装了日志系统的 Java 接口,Log.java、Rlog.java、Slog.java、EventLog.java。应用开发者比较熟悉Log.java,系统开发者对 Rlog、Slog、EventLog 接口会比较熟悉。这几个接口作用类似,都是写入日志,差别是写入logd的日志节点不同。

  Java 接口封装在 android.jar 中,作为 SDK 提供给开发者使用,在运行时通过libandroid_runtime.so 中的JNI 接口调用系统 native api。

  对于C/C++ 的开发者,可以直接使用 log.h 中提供的 ALOGD 等系列 API 在 native 程序中打印日志。

native api

        日志系统的核心服务是 logd,它是一

猜你喜欢

转载自blog.csdn.net/c19344881x/article/details/131437803
今日推荐