android include 动态,android中动态和静态版本都有的库

通过比较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

$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,include,动态)