iOS9在顯示方面的提升
- 在iOS8中處理一次觸摸響應(yīng)
我們可以將手機(jī)相應(yīng)刷新 UI 的過(guò)程分成這樣幾個(gè)過(guò)程:- MutiTouch
這是硬件掃描屏幕中觸碰點(diǎn)的過(guò)程,在大部分的設(shè)備中,這將會(huì)占用整個(gè)顯示幀中的一小部分,但是蘋(píng)果的許多產(chǎn)品,它是占用整個(gè)顯示幀的。 - App
一旦Muti-Touch 完成了掃描并且完成了過(guò)濾掉這個(gè)界面的噪音之后,你的 UI 應(yīng)用的 UITouch 回調(diào)將會(huì)在下一幀被調(diào)啟,通常剛好在一幀刷新之后,這個(gè)時(shí)候你的應(yīng)用應(yīng)該即時(shí)的響應(yīng)觸摸事件輸入。 - CoreAnimation
一旦應(yīng)用完成了響應(yīng)觸摸事件并且刷新了狀態(tài),CoreAnimation 將會(huì)在下一幀喚醒并且將你的視圖和圖層信息轉(zhuǎn)換為 GPU 命令然后由 GPU 來(lái)渲染。 - GPU
你將會(huì)注意到 GPU 不用非等到下一幀刷新的時(shí)候才開(kāi)始工作。只要 CoreAnimation 將指令傳遞給它它立即就開(kāi)始渲染界面。這一部分的時(shí)間是動(dòng)態(tài)的,基于應(yīng)用視圖的復(fù)雜程度。 -
LCD
一旦 GPU 完成了渲染,被渲染的 frame 將會(huì)排隊(duì)在下一次刷新的時(shí)候被展示出來(lái)。
iOS8.png
- MutiTouch
- 簡(jiǎn)單理解:
如果按 iOS8 的框架來(lái)走,最少會(huì)產(chǎn)生4幀 的延遲,為什么是4幀?
Multi-Touch 占一幀,App 最少占一幀,因?yàn)?CoreAnimation 是在下幀刷新的時(shí)候才開(kāi)始算的,所以就算 App 少于1幀,還是會(huì)占用一幀的延時(shí),CoreAnimation 執(zhí)行之后GPU 會(huì)立即執(zhí)行,但是 LCD 又必須等到 GPU 那幀執(zhí)行之后才會(huì)刷新,所以最少會(huì)有4幀的延遲。 - iOS9 提升之后的圖
iOS9.png
WWDC鏈接

