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的Camera架構介紹之一

下一篇: Android學習筆記之Intent消息傳遞

分享到: 更多
新彊福彩时时彩走势图 棋牌作弊器下载软件 全年无错36码特围网址 必赢客北京pk拾v12.1 体彩大乐透走势图 双面盘平台 平特一尾公式 助赢计划软件官网下载 合乐分分彩计划软件 真钱抢庄牌九 法甲 一码独胆技巧pk10 江西时时事件结果 北京pk10三分彩计划 360彩票对比器 天津时时开奖视频直播