Android的底層庫libutils介紹

轉自 http://hi.baidu.com/android_fans/blog/item/9365fcc35c469d1c0ff47735.html
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 中的公共庫部分主要包含的 頭文件 如下所示 : 
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 。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章