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

Android的底层库libutils介绍的更多相关文章

  1. Parse发布Bolts,一个面向iOS和Android的底层库集合

    转载自:http://www.infoq.com/cn/news/2014/02/parse-announces-bolts 数月前,Parse被Facebook收购.最近,它开源了一个面向iOS和A ...

  2. 【转】Android底层库和程序

    原文网址:http://blog.csdn.net/louiswangbing/article/details/6616202 Android底层库和程序 1.     本地实现的基本结构 Andro ...

  3. Android开源图表库介绍

    XCL-Charts XCL-Charts V1.8     Android开源图表库(XCL-Charts is a free charting library for Android platfo ...

  4. Android 第三方开源库收集整理(转)

    原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样,  ...

  5. Android中View和ViewGroup介绍

    1. 概念Android中的View与我们以前理解的“视图”不同.在Android中,View比视图具有更广的含义,它包含了用户交互和显示,更像Windows操作系统中的window. ViewGro ...

  6. Android的多媒体框架OpenCore介绍

    网上资料很少, 不过还是找到一个比较详细的说明: 特地在此整理了下: 地址:http://blog.csdn.net/djy1992/article/details/9339787 分为几个阶段: 1 ...

  7. Android系统性能调优工具介绍

    http://blog.csdn.net/innost/article/details/9008691 经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优 ...

  8. Android进阶笔记02:Android 网络请求库的比较及实战(二)

    一.Volley        既然在android2.2之后不建议使用HttpClient,那么有没有一个库是android2.2及以下版本使用HttpClient,而android2.3及以上版本 ...

  9. [置顶] android调用第三方库——第四篇——调用多个第三方库

    0:前言: 在前面三篇中我们介绍了android调用第三方库的形式,在这一篇中我们介绍调用多个第三方库的Android.mk的写法,由于其他三篇介绍的很详细,这里只给出Android.mk的内容. [ ...

随机推荐

  1. ios开发--旋转、移动、缩放手势实例代码

    代码如下: // 添加所有的手势 - (void) addGestureRecognizerToView:(UIView *)view { // 旋转手势 UIRotationGestureRecog ...

  2. NodeJS - Express 4.0下使用app.dynamicHelpers错误

    在NodeJS - Express 4.0下使用app.dynamicHelpers发生错误: app.dynamicHelpers({ ^ TypeError: Object function (r ...

  3. Windows Media Player安装了却不能播放网页上的视频

    前段时间遇到Windows Media Player安装了却不能播放网页上的视频的问题,在网上查找资料时,发现大部分资料都没能解决我这个问题.偶尔试了网上一牛人的方法,后来竟然解决了.现在再找那个网页 ...

  4. [搜片神器]winform程序自己如何更新自己的方法代码

    DHT抓取程序开源地址:https://github.com/h31h31/H31DHTDEMO 数据处理程序开源地址:https://github.com/h31h31/H31DHTMgr 国外测试 ...

  5. 第五周技术博客发表 web 网页开发

    <html><head> <title> HTML</title></head><body > <h1>会员注册界面 ...

  6. linux进程管理之开机启动

    下面用自启动apache为例;自启动脚本:/usr/local/apache2/bin:./apachectl start文件位于/etc/rc.d/init.d下,名为apached, 注意要可执行 ...

  7. Matlab中find函数的使用

    一.问题来源 看到了 min_score_pos = find(A0_scores==min(A0_scores), 1); [r,c] = find(X,k),返回X中第k个非零元素的行列位置. 二 ...

  8. js函数:setInterval()/clearInterval()——js网页计时器

    一.setInterval()/clearInterval()技术学习 都是window对象的方法,可以直接使用. setInterval(function(){},1000);:每1000毫秒执行一 ...

  9. pureftpd安装配置-pureftp参数详解(一)

    1. 下载 #cd /usr/local/src/ #wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.g ...

  10. SSL 握手过程

    SSL协议的握手过程 SSL 协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术.SSL 的握手协议非常有效的让客户和服务器 ...