android源码中的c c++库( android中动态和静态版本都有的库)
来源:互联网 发布:oppo刷机用什么软件 编辑:程序博客网 时间:2024/06/05 08:32
from:http://blog.csdn.net/lizhiguo0532/article/details/7219346
通过比较out/.../下的obj中SHARED_LIBRARIES,STATIC_LIBRARIES,删选出一下几个共同的库。
c
cutils
ext4_utils
m
stdc++
thread_db
utils
webcore
z
log
android重写的标准c函数库libc:
$ cd STATIC_LIBRARIES
$ cd libc_intermediates
$ ls
arch-arm bionic libc.a unistd WHOLE
$ cd ../
$ cd SHARED_LIBRARIES/
$ cd libc_intermediates/
$ ls
arch-arm bionic LINKED unistd
$ cd LINKED
$ ls
libc.so
源码路径:bionic/libc
头文件目录:bionic/libc/include
从其Android.mk中可以看出编译了libc.a和libc.so
c语言基本的工具库libcutils:
libcutils.a/so的源码路径:system/core/libcutils
头文件路径:system/core/include/cutils
从其Android.mk中可以看出编译了libcutils.a和libcutils.so
ext4相关的工具库libext4_utils:
libext4_utils.a/so的源码路径:system/extras/ext4_utils
头文件路径:system/extras/ext4_utils
从其Android.mk中可以看出编译了libext4_utils.a和libext4_utils.so
标准数学库libm:math
libm.a/so的源码路径:bionic/libm
头文件路径:bionic/libm/include
例如c++用c的数学库
#include <cmath>
$g++ test.cpp -o test -lm
android重写的c++函数库libstdc++:
libstdc++.a/so的源码路径:bionic/libstdc++
头文件路径:bionic/libstdc++/include
多线程程序的调试器库libthread_db:
libthread_db.a/so的源码路径:bionic/libthread_db
头文件路径:bionic/libthread_db/include
c++实现的底层工具库libutils:
这个库可以分成两个部分,一个部分是底层的工具,另外一个就是实现主要为实现IPC(进程间通讯)的Binder机制。
libutils.a/so的源码路径:frameworks/base/libs/utils
头文件路径:frameworks/base/include/utils
详细情况键附录:
浏览器引擎核心库libwebcore:
libwebcore.a/so的源码路径:external/webkit
头文件路径:
通用压缩库libz:
libz.a/so的源码路径:external/zlib
log库:
system/core/liblog
附录:
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。
- android源码中的c c++库( android中动态和静态版本都有的库)
- android中动态和静态版本都有的库
- [转]android中动态和静态版本都有的库
- C语言中静态库和动态库
- C中静态库和动态库的使用
- android通过C代码实现动态和静态链接
- C语言--动态库和静态库
- Android NDK中C++ STL库动态和静态链接
- C中的静态库
- Android 动态库和静态库
- android 静态库和动态库编译
- 【C/C++】动态库与静态库
- 【C/C++】动态库与静态库
- [C/C++] 动态库与静态库
- 创建C中的静态库和动态库以及他们的优缺点
- Android中的人脸检测(静态和动态)
- Android中的人脸检测(静态和动态)
- Android中的人脸检测(静态和动态)
- java中实现指定位数“0000”,缺失部分用0补充
- C#进程注入
- Android应用程序窗口设计框架四
- A Stack or A Queue?
- oracle监控自动发邮件预警
- android源码中的c c++库( android中动态和静态版本都有的库)
- android 制作.9.png图片
- 滚动条事件,当页面滚动到距顶部一定高度时某DIV自动隐藏和显示
- hi3516A 的U-boot 及linux kernel 的启动流程
- windows根据商品杀进程
- Android通过代码判断当前设备是否为模拟器
- 最酷的Bootstrap免费字体和图标
- Eclipse 项目名出现红叉
- jquery toggle 的切换显示 可用 a超链接的切换