android_util_Log_println_native()很简单,就是简单的Log级别检查后, 就调用
==__android_log_buf_write()== 做进一步处理.
__android_log_buf_write() 的声明在 "/system/core/include/log/log.h":
__android_log_buf_write() 的定义(实现)在 "/system/core/liblog".
发现liblog中有多个 __android_log_buf_write() 的实现:
那么我们用到的到底是哪个呢? 具体分析在[1.3 /system/core/liblog]介绍.
1.1.2 android.util.writeEvent
分析 writeEvent 到 liblog 的流程高度相似, 细节就不展开了, 这里直接贴下最
终的结论:
==__android_log_btwrite()== 后面调用到 ==write_to_log()==. 前面提到的
__android_log_buf_write() 也是直接调用到 write_to_log() .
即结论是: android.util.EvnentLog 跟 Android.util.Log 打印日志的流程相同,
都是转到 /system/core/liblog/logger_write.c 去处理.
int __android_log_buf_write(int bufID, int prio, const char *tag, const char *tex
int __android_log_buf_write(int bufID, int prio, const char *tag, const char *msg
int __android_log_buf_write(int bufID, int prio, const char *tag, const char *msg
LIBLOG_ABI_PUBLIC int __android_log_buf_write(int bufID, int prio,
/frameworks/base/core/java/android/util/EventLog.java writeEvent()
--> /frameworks/base/core/jni/android_util_EventLog.cp android_btWriteLo
--> /system/core/include/log/logger.h --> log.h android_btWriteLo
--> /system/core/liblog/logger_write.c __android_log_btw
评论1
最新资源