
文章插圖
希望本文可以帶給大家一個相對全局的視角看待卡頓問題 , 認(rèn)識到卡頓是什么、卡頓的成因、卡頓的分類、卡頓的優(yōu)化和一些經(jīng)驗(yàn)積累 , 有的放矢地解決 App 流暢性問題 。接下來會從以下五個方面進(jìn)行講述:1. 什么是卡頓卡頓 , 顧名思義就是用戶體感界面不流暢 。我們知道手機(jī)的屏幕畫面是按照一定頻率來刷新的 , 理論上講 , 24 幀的畫面更新就能讓人眼感覺是連貫的 。但是實(shí)際上 , 這個只是針對普通的視頻而言 。對于一些強(qiáng)交互或者較為敏感的場景來說 , 比如游戲 , 起碼需要 60 幀 , 30 幀的游戲會讓人感覺不適;位移或者大幅度動畫 30 幀會有明顯頓挫感;跟手動畫如果能到 90 幀甚至 120 幀 , 會讓人感覺十分細(xì)膩 , 這也是近來廠商主打高刷牌的原因 。
?什么是卡頓
?為什么會發(fā)生卡頓
?如何評價(jià)卡頓
?如何優(yōu)化卡頓
?加入我們
對于用戶來說 , 從體感角度大致可以將卡頓分為以下幾類:
這些體驗(yàn)對于用戶可以說是非常糟糕的 , 甚至?xí)鸶泄俚臒┰?nbsp;, 進(jìn)而導(dǎo)致用戶不愿意繼續(xù)停留在我們的 App ??梢哉f , 流暢的體驗(yàn)對于用戶來說至關(guān)重要 。
2. 為什么會發(fā)生卡頓用戶體感的卡頓問題原因很多 , 且常常是一個復(fù)合型的問題 , 為了聚焦 , 這里暫只考慮真正意義上的掉幀卡頓 。
2.1 繞不開的 VSYNC我們通常會說 , 屏幕的刷新率是 60 幀 , 需要在 16ms 內(nèi)做完所有的操作才不會造成卡頓 。但是這里需要明確幾個基本問題:
- 為什么是 16ms?
- 16ms 內(nèi)都需要完成什么?
- 系統(tǒng)如何盡力保證任務(wù)在 16ms 內(nèi)完成?
- 16ms 內(nèi)沒有完成 , 一定會造成卡頓嗎?
早先一般的屏幕刷新率是 60fps , 所以每個 vsync 信號的間隔也是 16ms , 不過隨著技術(shù)的更迭以及廠商對于流暢性的追求 , 越來越多 90fps 和 120fps 的手機(jī)面世 , 相對應(yīng)的間隔也就變成了 11ms 和 8ms 。
那既然有了 VSYNC , 誰在消費(fèi) VSYNC?其實(shí) Android 的 VSYNC 消費(fèi)者有兩個 , 也就對應(yīng)兩類 VSYNC 信號 , 分別是 VSYNC-app 和 VSYNC-sf , 所對應(yīng)的也是上層 view 繪制和 surfaceFlinger 的合成 , 具體的我們接下來詳細(xì)說 。
這里還有一些比較有意思的點(diǎn) , 有些廠商會有 vsync offset 的設(shè)計(jì) , App 和 sf 的 vsync 信號之間是有偏移量的 , 這也在一定程度上使得 App 和 sf 的協(xié)同效應(yīng)更好 。
2.2 View 顛沛流離的一生在講下一 part 之前先引入一個話題:
一個 view 究竟是如何顯示在屏幕上的?我們一般都比較了解 view 渲染的三大流程 , 但是 view 的渲染遠(yuǎn)不止于此:
此處以一個通用的硬件加速流程來表征
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:
- 淘寶直播等多個平臺賬號已被封 淘寶直播被當(dāng)錄播封了
- 直播聲卡入門知識 什么是直播聲卡
- 快手怎么開通直播功能 快手直播怎么開
- 新手開直播多久能賺錢 美妝博主怎么賺錢
- 老王直播送iqoo8手機(jī) iqoo7直播
- 加來眾科AK8Pro數(shù)字直播聲卡
- 新手如何從0開始做直播 直播間怎么開
- 讀懂佳能相機(jī)的系列型號
- 搞耍是什么意思
- 網(wǎng)絡(luò)電視看直播不清楚怎么回事 網(wǎng)絡(luò)電視看直播為什么會卡
