首先要明白Android的各個子系統(tǒng)通常不會直接使用內(nèi)核驅(qū)動,而是有HAL間接引用底層架構(gòu)
所以說它要有向上層提供接口和調(diào)用底層驅(qū)動的功能
HAL 是硬件抽象接口
在內(nèi)核系統(tǒng)中琅轧,F(xiàn)ramebuffer(幀緩沖區(qū))是圖形硬件的抽象描述析孽。在顯示系統(tǒng)中搭伤,HAL提供了Gralloc和Composer模塊,什么意思呢袜瞬,就是說在HAL層怜俐,我們需要和Framebuffer打交道,那么調(diào)用內(nèi)核就是Framebuffer的事了邓尤。那么Gralloc就是在HAL層用來操作幀緩沖區(qū)的拍鲤。
HAL給所有的硬件設(shè)備定義了一個頂層的數(shù)據(jù)結(jié)構(gòu) hw_module_t 這個數(shù)據(jù)結(jié)構(gòu)(里的數(shù)據(jù)結(jié)構(gòu))有個方法是open贴谎,
HAL規(guī)定所有的硬件第一個包含hw_module_t類型變量(所謂繼承)也就是每個硬件包含了open方法
那么在上層加載Gralloc模塊時,使用open方法打開fb0季稳,gpu0赴精,這個倆個設(shè)備,fb0是主熒屏绞幌,gpu0負(fù)責(zé)圖形緩沖區(qū)的分配和釋放
那么打開fb0就是把buffer中的數(shù)據(jù)post上去蕾哟,設(shè)置緩沖區(qū)交換時間,設(shè)置刷新區(qū)域等
那么打開gpu0就是分配和釋放緩沖區(qū)
那么HAL有是如何與OpenGL ES關(guān)聯(lián)的呢
上篇文章我們知道OpenGLES就是把3D數(shù)據(jù)加工顯示到熒屏上莲蜘,那么它產(chǎn)生的數(shù)據(jù)就必須經(jīng)過HAL中的Gralloc模塊輸出到FrameBuffer上谭确。
HAL
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來塞耕,“玉大人蚀腿,你說我怎么就攤上這事∩ㄍ猓” “怎么了莉钙?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長筛谚。 經(jīng)常有香客問我磁玉,道長,這世上最難降的妖魔是什么驾讲? 我笑而不...
- 正文 為了忘掉前任蚊伞,我火速辦了婚禮,結(jié)果婚禮上蝎毡,老公的妹妹穿的比我還像新娘厚柳。我一直安慰自己,他們只是感情好沐兵,可當(dāng)我...
- 文/花漫 我一把揭開白布别垮。 她就那樣靜靜地躺著,像睡著了一般扎谎。 火紅的嫁衣襯著肌膚如雪碳想。 梳的紋絲不亂的頭發(fā)上烧董,一...
- 文/蒼蘭香墨 我猛地睜開眼岩遗,長吁一口氣:“原來是場噩夢啊……” “哼扇商!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宿礁,我...
- 正文 年R本政府宣布,位于F島的核電站吊宋,受9級特大地震影響纲辽,放射性物質(zhì)發(fā)生泄漏璃搜。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一这吻、第九天 我趴在偏房一處隱蔽的房頂上張望吊档。 院中可真熱鬧唾糯,春花似錦鬼贱、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽葡秒。三九已至姻乓,卻和暖如春眯牧,著一層夾襖步出監(jiān)牢的瞬間蹋岩,已是汗流浹背炸站。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- Android HAL概述 Android HAL(Hardware Abstract Layer)硬件抽象層,從...
- 基礎(chǔ) HAL層介于android內(nèi)核和上層應(yīng)用之間的抽象層接口士修。作用將硬件抽象化枷遂,屏蔽特定平臺的硬件接口細(xì)節(jié),使平...
- 版權(quán)說明:本文為 開開向前沖 原創(chuàng)文章棋嘲,轉(zhuǎn)載請注明出處酒唉;注:限于作者水平有限,文中有不對的地方還請指教 注: An...
- 上一篇我們分析了androidHAL層的主要的兩個結(jié)構(gòu)體hw_module_t(硬件模塊)和hw_device_t...
- 硬件廠商處于保護(hù)核心代碼沸移,會將核心實現(xiàn)以so庫的形式出現(xiàn)在HAL層痪伦,當(dāng)需要時HAL會自動調(diào)用相關(guān)的共享庫。 共享庫...