libcutils 文件学习整理
2015-11-28 14:17
369 查看
原文:http://blog.sina.com.cn/s/blog_718f72780101wy3n.html
Libcutils:
1、Uevent.c
在这个文件中最主要的是下面的这个函数:在这个函数中初始化一个netlinkList类型的socket后,和一般的linux编程一样先进行绑定,在在后面的调用中进行对初始化后的socket进行处理,主要是对接从linux内核发送来的uevent事件信息。
int uevent_open_socket(int buf_sz, bool passcred)
其他两个函数:ssize_t uevent_kernel_multicast_recv(int socket, void *buffer, size_t length)就像一个recv函数,用来接收来自内核的信息,这个函数是直接调用下面的函数
ssize_t uevent_kernel_multicast_uid_recv(int socket, void *buffer,size_t length, uid_t *user)
Threads.c
这个文件主要是用来对线程的处理,包括线程结构体的属性的获取和线程结构体属性的设置
Android_reboot.c
这个文件主要是用来进行重启系统,其中主要的根据函数int android_reboot(int cmd, int flags, char *arg)传参进来的参数cmd,根据不同的cmd调用linux的接口函数reboot,当参数为ANDROID_RB_RESTART2时直接调用__reboot进行重启,其是一段汇编代码。
而在这个函数的前面调用函数remount_ro(),主要是判断/proc/mounts文件是否再次能写进去数据
cpu_info.c
这个文件中主要有一个函数就是用来通过读取/proc/cpuinfo文件的信息来解析得到cpu的串号。
Atomic.c
这个文件中主要是就是包含进来了一个头文件的core/include/cutils/atomic-inline.h,主要是为了在不同的平台进行一些原子操作时而定义的一些内敛函数声明和宏定义。无论怎样就是要设置ANDROID_SMP为0或1,用来表明是在UP还是在SMP下面编译的。
Debugger.c
是debuggerd进程中调用的两个函数
dlmalloc_stubs.c
这个里面的两个函数主要是bionic/libc/bionic/dlmalloc.c种备份函数,因为当在主机编译的时候主机libc里面不含有这两个函数但会用到。
Fs.c
这个文件中主要是一些关于文件的读写操作。
Hashmap.c
这个文件主要是有关哈希表的操作
Klog.c
这个文件中有三个函数,分别是设置打印调试信息级别,生成/dev/__kmsg__虚拟设备记录log,向日志文件中写日志
List.c
这个文件主要是和内核链表一样的操作,包括初始化,添加一个节点,删除一个节点;
load_file.c
就一个函数用来读写文件中信息
Memory.c
主要实现了strlcpy函数
Multiuser.c
这个文件中三个函数主要分别是用来得到userid appid uid;
ashmem-dev.c
这个文件主要有5个函数,其中第一个函数
ashmem_create_region(const char *name, size_t size)
主要是创建一块新的以name为标签或是无标签的大小为size的内存共享区。
ashmem_set_prot_region(int fd, int prot)申请共享内存空间,ashmem_set_prot_region设置参数,ashmem_pin_region /ashmem_unpin_region通过ASHMEM_PIN和ASHMEM_UNPIN连个操作来实现匿名共享内存的锁定和解锁操作ashmem_get_size_region得到匿名共享内存区的大小。
ashmem-host.c
这个文件和上面的文件函数相重合,这块牵扯到内存共享,要从整体进行分析这块。
config_utils.c
这个文件主要对链表的一些操作,包括创建,查找,修改等。
Libsysutils:
1、FrameworkClient.cpp:
实现类FrameworkClient类中一些函数:构造函数,通过socket发送消息的函数,后面的函数sendMsg(const char *msg, const
char *data)实质是调用sendMsg(const char *msg)函数。
FrameworkCommand.cpp
实现类FrameworkCommand的构造函数,实现了一个虚函数,等待继承类重写
FrameworkListener.cpp
FrameworkListener类继承自SocketListener类,在这个文件中主要是实现FrameworkListener类的一些方法,
Libcutils:
1、Uevent.c
在这个文件中最主要的是下面的这个函数:在这个函数中初始化一个netlinkList类型的socket后,和一般的linux编程一样先进行绑定,在在后面的调用中进行对初始化后的socket进行处理,主要是对接从linux内核发送来的uevent事件信息。
int uevent_open_socket(int buf_sz, bool passcred)
其他两个函数:ssize_t uevent_kernel_multicast_recv(int socket, void *buffer, size_t length)就像一个recv函数,用来接收来自内核的信息,这个函数是直接调用下面的函数
ssize_t uevent_kernel_multicast_uid_recv(int socket, void *buffer,size_t length, uid_t *user)
Threads.c
这个文件主要是用来对线程的处理,包括线程结构体的属性的获取和线程结构体属性的设置
Android_reboot.c
这个文件主要是用来进行重启系统,其中主要的根据函数int android_reboot(int cmd, int flags, char *arg)传参进来的参数cmd,根据不同的cmd调用linux的接口函数reboot,当参数为ANDROID_RB_RESTART2时直接调用__reboot进行重启,其是一段汇编代码。
而在这个函数的前面调用函数remount_ro(),主要是判断/proc/mounts文件是否再次能写进去数据
cpu_info.c
这个文件中主要有一个函数就是用来通过读取/proc/cpuinfo文件的信息来解析得到cpu的串号。
Atomic.c
这个文件中主要是就是包含进来了一个头文件的core/include/cutils/atomic-inline.h,主要是为了在不同的平台进行一些原子操作时而定义的一些内敛函数声明和宏定义。无论怎样就是要设置ANDROID_SMP为0或1,用来表明是在UP还是在SMP下面编译的。
Debugger.c
是debuggerd进程中调用的两个函数
dlmalloc_stubs.c
这个里面的两个函数主要是bionic/libc/bionic/dlmalloc.c种备份函数,因为当在主机编译的时候主机libc里面不含有这两个函数但会用到。
Fs.c
这个文件中主要是一些关于文件的读写操作。
Hashmap.c
这个文件主要是有关哈希表的操作
Klog.c
这个文件中有三个函数,分别是设置打印调试信息级别,生成/dev/__kmsg__虚拟设备记录log,向日志文件中写日志
List.c
这个文件主要是和内核链表一样的操作,包括初始化,添加一个节点,删除一个节点;
load_file.c
就一个函数用来读写文件中信息
Memory.c
主要实现了strlcpy函数
Multiuser.c
这个文件中三个函数主要分别是用来得到userid appid uid;
ashmem-dev.c
这个文件主要有5个函数,其中第一个函数
ashmem_create_region(const char *name, size_t size)
主要是创建一块新的以name为标签或是无标签的大小为size的内存共享区。
ashmem_set_prot_region(int fd, int prot)申请共享内存空间,ashmem_set_prot_region设置参数,ashmem_pin_region /ashmem_unpin_region通过ASHMEM_PIN和ASHMEM_UNPIN连个操作来实现匿名共享内存的锁定和解锁操作ashmem_get_size_region得到匿名共享内存区的大小。
ashmem-host.c
这个文件和上面的文件函数相重合,这块牵扯到内存共享,要从整体进行分析这块。
config_utils.c
这个文件主要对链表的一些操作,包括创建,查找,修改等。
Libsysutils:
1、FrameworkClient.cpp:
实现类FrameworkClient类中一些函数:构造函数,通过socket发送消息的函数,后面的函数sendMsg(const char *msg, const
char *data)实质是调用sendMsg(const char *msg)函数。
FrameworkCommand.cpp
实现类FrameworkCommand的构造函数,实现了一个虚函数,等待继承类重写
FrameworkListener.cpp
FrameworkListener类继承自SocketListener类,在这个文件中主要是实现FrameworkListener类的一些方法,
相关文章推荐
- 第14周项目(1)-验证折半查找算法
- socket选项总结(setsocketopt) http://blog.chinaunix.net/uid-24517549-id-4044883.html
- Eclipse工具使用问题汇总
- 尚硅谷:jQuery的员工管理的案例
- 使用sfntly中的sfnttool.jar提取中文字体
- Android 应用隐藏标题栏和状态栏
- setsockopt中参数之SO_REUSEADDR的意义(转) http://www.cnblogs.com/qq78292959/archive/2013/01/18/2865926.html
- 159 Which three types of files can be automatically placed in the flash recovery area (fast recovery
- utf8 ucs4
- 实现图
- hoj 5311 字符串,dfs
- 黑马程序员——javaSE_集合框架-Collection
- Android中的颜色表示
- kettle系列-6.kettle实现多字段字典快速翻译
- ThinkPHP实现ajax仿官网搜索功能实例
- nyoj 349 Sorting It All Out 【topo】
- Climbing Stairs
- 第十五天-linux系统文件权限详细讲解
- PHP的学习--可变变量
- HttpClient前言