Android的底層庫libutils介紹

2021-06-20 05:17:18 字數 3257 閱讀 9430

第一部分

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

iinte***ce.h

為抽象經過

binder

的介面定義通用類,

定義類iinte***ce

,類模板

bninte***ce

,類模板

bpinte***ce

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和。

Android的底層庫libutils介紹

第一部分 libutils概述 libutils是android的底層庫,這個庫以c 實現,它提供的api也是c 的。android的層次的c語言程式和庫,大都基於libutils開發。libutils中的標頭檔案如下所示 frameworks base include utils libutils...

Android系統底層架構 譯

android提供了裝置移植和支援方面有較大的自由度,可以制定自有的裝置規範和驅動。通過硬體抽象層 hal hardware abstraction layer 可以在底層硬體驅動和上層平台之間建立關聯 hooks androind通過自身的開源性,來支援各種型別的裝置發展。在將android系統移...

Android底層開發之Audio HAL

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!android底層開發之audio hal 在android音訊底層除錯 基於tinyalsa中以 拋開android的天生複雜,回歸嵌入式linux的本質 的方式介紹如何除錯linux核心中的音訊驅動。這裡向上再伸展一下進入hal層,看是如何將t...