LOG是先驱
Log在开发中是必不可少的,这里为什么说成先驱了,无论是开发系统驱动,还是系统调用层或者Java应用层,有输入,接着有输出是我们急切想看到的,这也是继续我们开发的先行因素。因此,一个完整的log系统很有必要。
思考一个问题,我们平时在Android Studio的日志是怎么输出的,既LogCat,或者说我们使用adb命令adb logcat -v threadtime > log.txt 为什么就能看到日志的输出。这其中是怎么做到的。如下图,Android的log日志系统主要包括logger系统驱动、log系统层liblog提供jni方法供framework层Log.java调用,Log.java就是应用层用到的Log.i(tag, msg)操作类,一般以写入为主,而logcat.cpp和adbd为读取为主,在Android studio的logcat工具中的log输出中,主要就是通过adb server读取target的adbd日志读取得到的。这里说下logcat.cpp输出的情况,logcat.cpp输出到文件的时候,会根据最大允许轮训的文件数进行文件轮训写入,如最大的轮训数是3的时候,会先从log先写入,当log满的时候,会把log的数据一道log1,然后继续从log写入。