第一部分 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 中的公共库部分主要包含的 头文件 如下所示 :

Error s.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

I Binder.h :

Binder 对象的抽象接口, 定义类 IBinder

Binder.h :

Binder 对象的基本功能, 定义类 Binder 和 BpRefBase

BpBinder.h :

BpBinder 的功能,定义类 BpBinder

I Interface.h :

为抽象经过 Binder 的接口定义通用类,

定义类 IInterface ,类模板 BnInterface ,类模板 BpInterface

Pro cessState.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 。

2008-12-05 16:15

第一部分 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 中的公共库部分主要包含的 头文件 如下所示 :

Error s.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

I Binder.h :

Binder 对象的抽象接口, 定义类 IBinder

Binder.h :

Binder 对象的基本功能, 定义类 Binder 和 BpRefBase

BpBinder.h :

BpBinder 的功能,定义类 BpBinder

I Interface.h :

为抽象经过 Binder 的接口定义通用类,

定义类 IInterface ,类模板 BnInterface ,类模板 BpInterface

Pro cessState.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底层库包含哪些,Android的底层库libutils相关推荐

  1. android期末测试b卷,Android应用开发期末考试题

    试题 一. 选择题 1 android虚拟设备的缩写是(AVD) 2 Android SDK目前支持的操作系统(DOS) 3 Android开发工具插件(ADT)没有提供的开发功能(自动更新) 4 A ...

  2. TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception v1,这里补充一个Windows下的,使用AForge库(www.aforgenet.com)操作

    TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception v1,这里补充一个Windows下的,使用AForge库(www.aforgenet.com)操作 ...

  3. Android中focusable属性的妙用——底层按钮的实现

    2019独角兽企业重金招聘Python工程师标准>>> 看到百威啤酒的客户端主界面的按钮,感觉比较新奇,先看下图片: 注意图中我画的箭头,当时鼠标点击的黑色圈圈的位置,然后按钮出现了 ...

  4. android底层按键监听,Android应用中Back键的监听及处理实例

    MainActivity如下: package cn.testnbackpressed; import android.os.Bundle; import android.view.KeyEvent; ...

  5. Android直播开发之旅(15):libjpeg库的编译移植与使用

    1. libjpeg介绍  libJPEG库是一款功能强大的JPEG图像处理开源库,它支持将图像数据压缩编码为JPEG格式和对原有的JPEG图像解压缩,Android系统底层处理图片压缩就是用得lib ...

  6. Android 必须知道2018年流行的框架库及开发语言,看这一篇就够了!

    导语 2017 已经悄悄的走了,2018 也已经匆匆的来了,我们在总结过去的同时,也要展望一下未来,来规划一下今年要学哪些新技术.这几年优秀Android的开源库不断推出,新技术层出不穷,需要我们不断 ...

  7. Android 第三方库--2017年Android开源项目及库汇总

    转自:http://blog.csdn.net/jsonnan/article/details/62215287 东西有点多,但是资源绝对nice,自己都全部亲身体验过了,大家可放心使用 github ...

  8. 每一位Android开发者应该知道的Android体系架构和开发库

    Android的体系架构鼓励组件重用,允许开发者发布共享Activity.Service并且访问其他应用程序的数据,还可以根据开发者制定的安全限制进行管理.话虽如此,今天我将分享一些关于Android ...

  9. Android之全面解析Retrofit网络框架封装库

    转载请标明出处:[顾林海的博客] 前言 Retrofit是Square公司推出的一个HTTP的框架,主要用于Android和Java,Retrofit会将每一个HTTP的API请求变成一个Java的接 ...

最新文章

  1. 5、图书类别查询功能
  2. Oracle translate 函数的用法, 以及和replace的区别
  3. JavaScript 模拟事件触发
  4. android 字体渲染机制,Android:字体渲染问题.ttf 3MB
  5. 对pca降维后的手写体数字图片数据分类_知识干货-机器学习-TSNE数据降维
  6. JS逻辑运算符——短路逻辑
  7. 正则基础之——非捕获组
  8. python课程设计
  9. php获取每月的星期天,php计算一月中有多少个周末
  10. python - 多线程、装饰器
  11. Ubuntu 配置Tomcat环境(转载)
  12. 余贞侠C语言程序设计课后参考答案
  13. OpenCV——调整图片的对比度、亮度和饱和度
  14. 360中不显示html中图片不显示图片,360极速浏览器无法显示图片解决方法详解
  15. 为什么要了解计算机发展史,计算机发展史给我的启示
  16. 01-Epicor开发总结
  17. 爆火的Java面试题-易语言线程池用法
  18. wpf中图片滚动效果demo_如何将商品视觉化运用到店铺中?小型文具店货架效果图文具店货架图片...
  19. Debian改变网卡名称
  20. 【python】N的多次方

热门文章

  1. 推荐10个网络存储技术网站和论坛
  2. 走向产品是程序员的第三条职业通道
  3. 蜂糖李施肥季节如何管理
  4. ESP8266 Mesh发包流程介绍
  5. WPF MVVM 下窗口之间的传值
  6. 基于FPGA的USB2.0数据传输(通过本文可以自己设计USB2.0模块)
  7. 最新大猿人中控充值系统 免授权学习版 支持公众号H5、分销等功能
  8. go之生成随机字符串
  9. CEO百科及cxo扩展说明
  10. 前端转后端学习路线整理