Android基礎(chǔ)-秒懂SurfaceView的雙緩沖機制

最近在重溫Android的一些基礎(chǔ)知識,看到SurfaceView的原理中有用到雙緩沖機制,那么接下來我將帶領(lǐng)大家學(xué)習什么是雙緩沖模式。

什么是雙緩沖模式?

通俗來講就是有兩個緩沖區(qū),一個后臺緩沖區(qū)和一個前臺緩沖區(qū),每次后臺緩沖區(qū)接受數(shù)據(jù),當填充完整后交換給前臺緩沖,這樣就保證了前臺緩沖里的數(shù)據(jù)都是完整的。

雙緩沖模式常用來做幀緩沖區(qū)交換。我們幾乎可以在任何一個圖形API中找到雙緩沖模式的應(yīng)用。如OpenGl中的 swapBuffers() 函數(shù),Android中SurfaceView雙緩沖機制。

那么SurfaceView中的雙緩沖機制是什么樣子呢?

看下圖:

SurfaceView雙緩沖區(qū)機制

可以看出來SurfaceView的雙緩沖機制還是稍有不同,前/后臺緩沖區(qū)交替成為后/前臺緩沖區(qū)。同時需要注意每次在繪制的時候都需要清除Canvas畫布,不然會出現(xiàn)畫面疊加的現(xiàn)象。

那么這樣有什么好處呢?

  1. 提高渲染效率
  2. 可以避免刷新頻率過高而出現(xiàn)的閃爍現(xiàn)象
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容