Android的底层库libutils介绍

  第一部分 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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值