第一部分 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——OOM以及内存优化
  4. 适用于 AIDE - Android Java IDE 的幸运破解器自定义补丁
  5. android背景选择器selector用法、自定义Button按钮样式

随机推荐

  1. android 中的 Broadcast 机制详解
  2. Android Studio开发基础之AutoCompleteTe
  3. Android应用程序用真机调试步骤
  4. Android Studio系列(二)使用Android Studio
  5. android 设置布局动画
  6. Android 2.0 平台的亮点
  7. Android(安卓)如何保持屏幕长亮?
  8. Android开发从入门到精通(项目案例版)——
  9. android 更新版本号
  10. EditText 的属性