2011-04-14 67 views
4

我想了解android.graphics packageSurfaceFlinger之間的關係。android.graphics包和SurfaceFlinger之間的關係

基於Android Graphics Documentation有兩種繪製2D圖形的方法。一個是使用VIEW對象,另一個是直接繪製到Canvas。從文檔中讀取時,直接繪製到畫布上時,可以創建一個線程來管理與SurfaceFlinger鏈接的SurfaceView。我在代碼中也注意到,android.graphics包僅僅是SKIA庫的包裝。 SKIA函數使用JNI調用。所以,我無法確定這些調用是否仍然繼續使用SurfaceFlinger。

這是否意味着當使用View對象進行簡單2D圖形時,不需要SurfaceFlinger?在繪製任何類型的圖形到屏幕上時總是使用Surfaceflinger?任何投入?

回答

1

此問題已在我的其他帖子中回答。

Android SurfaceFlinger

根據@hackbod(我也證明了這一點,當我進一步分析的源代碼),

SurfaceFlinger的是不是有什麼吸引你的窗口。它爲你的窗口分配一個幀緩衝區,在你的應用程序中運行的框架直接繪製而不與SurfaceFlinger交互。繪製窗口時唯一與SurfaceFlinger相關的交互作用是在完成繪製框架後將最終的新幀緩衝區合成到屏幕上。