2017-08-31 56 views
0
中的VSYNC

This解釋VSYNC,但速度非常快,我無法找到任何其他好的資源來理解這個話題。什麼是android

我的理解是這個;

VSYNC發生在每16ms,並且所有的框架部件INPUTANIMATIONLAYOUTRECORD DRAW & RENDER的只在這一時間發生1,所以與VSYNC的幀渲染是同步的,並且它在指定的時間限制重繪幀。

如果這種理解是正確的,請引導我。

+1

這可能有助於在Project Butter上觀看這個Google IO視頻:https://youtu.be/Q8m9sHdyXnE –

+0

@MorrisonChang謝謝! – Kirmani88

回答

1

VSYNC是垂直同步。它是電視機,顯示器,顯示器等常用術語。基本上可以將其視爲刷新率,即顯示器實際刷新的頻率。顯示器只能在VSYNC信號上進行更新,因此顯示屏的更改基本上都會批處理,直到下一個VSYNC。

這個術語來自舊電視,VSYNC實際上從電視的頂部到底部每次改變1行。這就是爲什麼在一些老的電視機上,你可以看到一個變化的標尺在屏幕上移動。

+0

和'VSYNC'在每個'16ms'之後出現,並且在單個'VSYNC'中可以呈現多個幀?假設我在視圖中有8個按鈕,沒有動畫,所以它們將以「16ms」繪製。在這種情況下,'VSYNC'將只執行一次,或者如果它的複雜視圖'Facebook'應用,那麼VSYNC'如何分配幀渲染位置,並感謝這樣一個很好的解釋。 – Kirmani88

+1

基本上,從非常高的層面上來看待它 - 當你繪製時,你實際上正在繪製一張內存中的位圖,無論你是否認爲自己。每16ms,Android就會獲取該位圖並將其轉儲到設備。如果在16ms內繪製了10幀,則只繪製最後一幀。你在屏幕上繪製的地方並不重要,它的全部都是緩衝的。 (如果你在硬件層工作,這可能不是真的,但是在現代操作系統上,設備驅動層以上的人不得不考慮這一點)。 –

+0

我不理解這部分,'如果你在16ms內畫了10幀,只畫出最後一幀,只畫出最後一幀。 – Kirmani88