第一部分 libutils概述
libutils是Android的底层库,这个库以C++实现,它提供的API也是C++的。Android的层次的C语言程序和库,大都基于libutils开发。
libutils的头文件:
frameworks/base/include/utils
libutils的源文件:
frameworks/base/libs/utils
libutils的库名称:
libutils.so
这个库可以分成两个部分,一个部分是底层的工具,另外一个就是实现主要为实现IPC(进程间通讯)的Binder机制。




第二部分 公共库概述

libutils中的公共库部分主要包含的头文件如下所示:
Errors.h:定义宏表示错误代码
Endian.h:定义表示大小端的宏
misc.h:几个字符串和文件相关的功能函数

TextOutput.h:定义文本输出的基类TextOutput
BufferedTextOutput.h:类BufferedTextOutput,它是一个TextOutput的实现
Pipe.h:定义管道类Pipe
Buffer.h:定义内存缓冲区域的类Buffer
List.h:定义链表的模版类

SharedBuffer.h:定义类SharedBuffer表示共享内存。
String16.h:定义表示双字节字符串的类String16
String8.h:定义表示单字节字符串的类String8,并包含了从String16转换功能

VectorImpl.h:定义表示向量的类VectorImpl
Vector.h:定义继承VectorImpl的类模版Vector,以及排序向量类SortedVectorImpl
SortedVector.h:定义排序向量的模版SortedVector
KeyedVector.h:定义使用关键字的向量模板KeyedVector

threads.h:定义线程相关的类,包括线程Thread、互斥量Mutex、条件变量Condition、读写锁ReadWriteLock等
socket.h:定义套结字相关的类Socket
Timers.h:定义时间相关的函数和定时器类DurationTimer。
ZipEntry.h、ZipFileCRO.h、ZipFile.h、ZipFileRO.h、ZipUtils.h:与zip功能相关的类。


第三部分 Binder进程间通讯部分

这个进程间通讯部分的核心是Binder。为不同的系统提供了可移植的进程间通讯手段。
RefBase.h
:
引用计数,定义类RefBase。
Parcel.h :
为在IPC中传输的数据定义容器,定义类Parcel
IBinder.h
Binder对象的抽象接口, 定义类IBinder
Binder.h
Binder对象的基本功能, 定义类Binder和BpRefBase
BpBinder.h
BpBinder的功能,定义类BpBinder
IInterface.h
为抽象经过Binder的接口定义通用类,
定义类IInterface,类模板BnInterface,类模板BpInterface
ProcessState.h
表示进程状态的类,定义类ProcessState
IPCThreadState.h
表示IPC线程的状态,定义类IPCThreadState


IServiceManager.h:表示服务管理器的类,供其它需要构造服务的类使用
IPermissionController.h:权限控制类。

几个与内存相关的类的头文件如下所示:
IMemory.h:定义内存相关类的接口,表示堆内存的类IMemoryHeap和BnMemoryHeap,表示一般内存的类IMemory和BnMemory。
MemoryHeapBase.h:定义类MemoryHeapBase,继承并实现BnMemoryHeap
MemoryBase.h:定义类MemoryBase,继承并实现BnMemory
在一般的使用过程中,通常是以使用MemoryHeapBase类分配一块堆内存(类似malloc),而MemoryBase表示从一块分配好堆内存中的一部分内存。

此外内存相关的功能中还包含了头文件MemoryDealer.h和MemoryHeapPmem.h。

Binder功能中各个类之间的关系如下图所示

更多相关文章

  1. Android中设置控件可见与不可见
  2. Android属性系统
  3. Android自定义相机超详细讲解
  4. [Android]App Resource 动态 overlay 机制
  5. Android内存分析总结
  6. android保存文件到手机内存
  7. Android原生(Native)C开发之二:framebuffer篇
  8. android ListView 样式 item样式,条目样式
  9. Android内存管理机制

随机推荐

  1. 强大!用 60 行代码自动抢微信红包
  2. SparkRDD转DataSet/DataFrame的一个深坑
  3. BAT程序员们常用的开发神器
  4. 战斗民族开源 | ClickHouse万亿数据双中
  5. 滴滴敏捷数据中台实践
  6. 基于HBase和Spark构建企业级数据处理平台
  7. 阿里云Redis技术架构演进
  8. 记一次线上问题排查与解决
  9. Pythoner 的花式浪漫,你会吗?
  10. 一起来用 Python 做个是男人就坚持100秒