
文章插圖
希望本文可以帶給大家一個相對全局的視角看待卡頓問題,認(rèn)識到卡頓是什么、卡頓的成因、卡頓的分類、卡頓的優(yōu)化和一些經(jīng)驗(yàn)積累,有的放矢地解決 App 流暢性問題 。接下來會從以下五個方面進(jìn)行講述:1. 什么是卡頓卡頓,顧名思義就是用戶體感界面不流暢 。我們知道手機(jī)的屏幕畫面是按照一定頻率來刷新的,理論上講,24 幀的畫面更新就能讓人眼感覺是連貫的 。但是實(shí)際上,這個只是針對普通的視頻而言 。對于一些強(qiáng)交互或者較為敏感的場景來說,比如游戲,起碼需要 60 幀,30 幀的游戲會讓人感覺不適;位移或者大幅度動畫 30 幀會有明顯頓挫感;跟手動畫如果能到 90 幀甚至 120 幀,會讓人感覺十分細(xì)膩,這也是近來廠商主打高刷牌的原因 。
?什么是卡頓
?為什么會發(fā)生卡頓
?如何評價卡頓
?如何優(yōu)化卡頓
?加入我們
對于用戶來說,從體感角度大致可以將卡頓分為以下幾類:
這些體驗(yàn)對于用戶可以說是非常糟糕的,甚至?xí)鸶泄俚臒┰辏M(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è)計,App 和 sf 的 vsync 信號之間是有偏移量的,這也在一定程度上使得 App 和 sf 的協(xié)同效應(yīng)更好 。
2.2 View 顛沛流離的一生在講下一 part 之前先引入一個話題:
一個 view 究竟是如何顯示在屏幕上的?我們一般都比較了解 view 渲染的三大流程,但是 view 的渲染遠(yuǎn)不止于此:
此處以一個通用的硬件加速流程來表征
- Vsync 調(diào)度:很多同學(xué)的一個認(rèn)知誤區(qū)在于認(rèn)為 vsync 是每 16ms 都會有的,但是其實(shí) vsync 是需要調(diào)度的,沒有調(diào)度就不會有回調(diào);
- 消息調(diào)度:主要是 doframe 的消息調(diào)度,如果消息被阻塞,會直接造成卡頓;
- input 處理:觸摸事件的處理;
- 北京冬奧會開幕式直播在哪里看
- 主播直播拼多多砍價拿手機(jī) 拼多多上砍價拿手機(jī)
- 讓直播小白變身直播大咖 如何從小白變成主播
- 童年女神舒暢直播穩(wěn)居直播榜榜首,人氣絲毫不輸巔峰時期的她
- 國慶直播盤點(diǎn) 國慶的直播
- 挽回前男友攻略:如何讀懂他的心
- 讀懂B超單驗(yàn)證胎兒是男是女 b超有兩點(diǎn)基本是男孩
- 蘋果手機(jī)投屏電腦直播教程 怎么將iphone投屏到電腦
- 聊聊直播行業(yè)中 直播行業(yè)
- 明星直播帶貨的風(fēng)口已過 直播帶貨是風(fēng)口
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: