赞
踩
App 中常使用的 Log.d、Log.v 等,而在 Native 层会使用 ALOGD 打印日志。对于第三方添加的 C/C++ 应用程序来说,如果希望使用 Android 的日志系统,就需要添加 liblog 库。这里我们首先研究一下如何对 App 中的 Log 进行分类存储。源码分析以 Android 为例,其中liblog,logd 在安卓10,安卓11版本上差别不大。 虽然logcat 在 Android 10 上用C++ 进行了重构,但是其基本业务逻辑的接口都没有变化。
安卓系统封装了日志系统的 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 程序中打印日志。
日志系统的核心服务是 logd,它是
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。