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