Android 4.2日志系统驱动程序…
来源:互联网 发布:.science域名 搜索引擎 编辑:程序博客网 时间:2024/06/16 11:52
本文是自学所写,是在老罗的Android之旅的基础上写的,站在高人的肩膀上耍耍,主要是对比一下4.0与4.2的区别并总结一下。
Logger驱动程序主要由两个文件构成,分别是:
kernel\drivers\staging\android\logger.h
kernel\drivers\staging\android\logger.c
接下来,我们将分别介绍Logger驱动程序的相关数据结构,然后对Logger驱动程序源代码进行情景分析,分别日志系统初始化情景、日志读取情景和日志写入情景。![Android <wbr>4.2日志系统驱动程序Logger源代码分析]()
版本4.2在4.0的基础上,对logger_entry升级到了version2,区别在于结构体中增加了euid成员euid用来记录用户ID。其他成员变量含义可参考老罗的文章或自行分析。
![Android <wbr>4.2日志系统驱动程序Logger源代码分析]()
![Android <wbr>4.2日志系统驱动程序Logger源代码分析]()
![Android <wbr>4.2日志系统驱动程序Logger源代码分析]()
考虑是否进行SMP排序,预定义了两套buffer大小。而每条日志记录的有效负载长度限制在4076字节,对比4.0,似乎忽略了euid和msg的占用空间,一条记录所占的空间是有可能大于4K的。由于logger_entry升级到了version2,提供了设置和获取版本的宏定义。
再来看logger.c文件中,其它相关数据结构的定义:
![Android <wbr>4.2日志系统驱动程序Logger源代码分析]()
与4.0不一样的是,logger_reader多了三个成员变量:r_all表示当前读取日志的进程是否可以读取所有的入口,r_ver是ABI的版本号,missing_bytes是在读取时丢失的字节数。在老罗的基础上,重新整理一下思路:
日志的读取是首先要把日志保存在缓冲区,因此需要得申请个地方来作为缓冲区,并且还得有进程去读取这些日志,这样就涉及四个东西:日志、缓冲区、进程和登记管理读写过程的东西。
每条日志就是
struct logger_entry | priority | tag | msg
一条条的日志就保存在logger_log中的那个buffer所指向的地方,每一个读取日志的进程就是logger_reader,而logger_log就是用来登记管理读写过程的东西。
具体的读写等可以参考老罗的文章
Logger驱动程序主要由两个文件构成,分别是:
kernel\drivers\staging\android\logger.h
kernel\drivers\staging\android\logger.c
接下来,我们将分别介绍Logger驱动程序的相关数据结构,然后对Logger驱动程序源代码进行情景分析,分别日志系统初始化情景、日志读取情景和日志写入情景。
版本4.2在4.0的基础上,对logger_entry升级到了version2,区别在于结构体中增加了euid成员euid用来记录用户ID。其他成员变量含义可参考老罗的文章或自行分析。
考虑是否进行SMP排序,预定义了两套buffer大小。而每条日志记录的有效负载长度限制在4076字节,对比4.0,似乎忽略了euid和msg的占用空间,一条记录所占的空间是有可能大于4K的。由于logger_entry升级到了version2,提供了设置和获取版本的宏定义。
再来看logger.c文件中,其它相关数据结构的定义:
与4.0不一样的是,logger_reader多了三个成员变量:r_all表示当前读取日志的进程是否可以读取所有的入口,r_ver是ABI的版本号,missing_bytes是在读取时丢失的字节数。在老罗的基础上,重新整理一下思路:
日志的读取是首先要把日志保存在缓冲区,因此需要得申请个地方来作为缓冲区,并且还得有进程去读取这些日志,这样就涉及四个东西:日志、缓冲区、进程和登记管理读写过程的东西。
每条日志就是
struct logger_entry | priority | tag | msg
一条条的日志就保存在logger_log中的那个buffer所指向的地方,每一个读取日志的进程就是logger_reader,而logger_log就是用来登记管理读写过程的东西。
具体的读写等可以参考老罗的文章
0 0
- Android 4.2日志系统驱动程序…
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android日志系统驱动程序Logger源代码分析
- Android 读取系统日志LogCat
- Android源码解析之日志系统驱动程序Logger
- Android日志驱动程序分析
- Android 4.2系统 LG&nbs…
- 找不到SQL Server ODBC 驱动程序的…
- 自定义 Android 日志类
- Map 和 java Bean 的相互转换
- Android xml资源文件中@、@an…
- (转)Monkey test的使用
- (转) MTK 2G芯片使用联…
- 怎样使一个Android应用不被…
- Android 4.2日志系统驱动程序…
- linux下,文件名带括号如何处理
- 解决有道云笔记QQ总是授权失败问题
- android编译时出现cannot fin…
- (转)tar 解压缩命令
- 使用 Tortoise SVN 创建 Ext…
- 人人都能看懂——c大调d大调f…
- (转)Neither user 10027…
- STK App源码解析