前言
HWC是Hardware Composer是縮寫轻猖,翻譯成中文就是硬件作曲家,或者硬件設計者普泡。
在android手機中的開發(fā)者模式中就有一個Hardware Composer的開關選項播掷,HWC通常是由顯示設備硬件 OEM提供的功能。
Hardware Composer的開關選項
舉個栗子
在[009]SurfaceFlinger是什么東西中提到撼班,王老師每天要臨摹三個貼紙上房子叮趴,小河,山到了一張固定尺寸的白紙上权烧,每天將當天畫的美術作品給美術館眯亦,讓其展覽。有一天王老師回到家和老婆說:“老婆般码,每天需要臨摹妻率,好累啊,尤其那座山板祝,特別難畫宫静。”券时,王老師的老婆說:你傻不傻孤里,你就不會只臨摹房子和小河,然后把那座山直接貼上去嘛橘洞,反正山和房子捌袜,小河也沒有任何重疊的部位。王老師說:“老婆炸枣,你真的太聰明了虏等。”
HWC在SurfaceFlinger中就好比王老師直接把那座山貼上去的行為
理解一下HWC在SurfaceFlinger的作用
看下圖
在關閉HWC的情況下适肠,狀態(tài)欄霍衫,當前Activity,導航欄的三個Surface侯养,是通過OpenGL方式合成到FrameBuffer中敦跌。
在開啟HWC的情況下,狀態(tài)欄逛揩,當前Activity先通過OpenGL方式合成一部分柠傍,然后通過HWC合成導航欄的Surface到FrameBuffer中
HWC在SurfaceFlinger的作用
HWC的好處
1.提升每一幀畫面的合成速度,提升用戶界面的流暢度
2.相比OpenGL使用GPU來合成息尺,HWC的合成携兵,相對來說更加省電
總結
HWC是SurfaceFlinger的重要的角色疾掰,當然具體的代碼肯定更加復雜搂誉,比如確定那幾個surface可以直接通過HWC合成,這些都是需要大家自己去看代碼静檬,但是帶著對HWC的理解再去看代碼炭懊,我相信會更加容易的并级。