第一部分 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。

更多相关文章

  1. 【Android】自定义View实现信封红蓝边/收货地址线条
  2. Android(安卓)context(Application/Activity)与内存泄露
  3. Android内存分析总结
  4. Android中设置控件可见与不可见
  5. Android(安卓)Drawable系列(1):自定义背景以及注意事项
  6. Android(安卓)可以自定义速度的跑马灯效果
  7. Android(安卓)官方博客 - Android应用程序的内存分析
  8. Android(安卓)Makefile中是 如何识别 TARGET_PRODUCT 的
  9. 《Android底层开发技术》学习总结

随机推荐

  1. 如何让按钮共享android中对话框宽度的一
  2. Android 字符串资源
  3. 多个dex文件定义了Landroid/支持/v13/app
  4. 在app引擎端点的启动时执行代码
  5. android:WALLPAPER_CHANGED不适用于三星Ga
  6. Android NFC 近场通讯开发全解
  7. 通过不在android游标中工作的顺序
  8. Android全屏模式,沉浸模式。粘性沉浸模式
  9. 制作动态表格(最好的方法)
  10. Android短彩信源码解析-短信发送流程(三)