指標背景流暢度,顧名思義是用戶感知使用App頁面時的流暢情況,“App卡不卡”,這是用戶最直接的感受。 幀率&刷新頻率首先需要了解到兩個概念: 刷新頻率(Refresh Rate)代表屏幕在一秒內(nèi)刷新操作的次數(shù),這取決于硬件的固定參數(shù),例如60HZ。 幀率(Frame Rate)代表GPU在一秒內(nèi)繪制操作的幀數(shù),例如常見的24fps,60fps,單位是fps(每秒幀數(shù)),很多游戲里面也會有這個指標。 24fps&60fps現(xiàn)在電影行業(yè)默認的規(guī)則幀率是需要24fps,除了一些極個別的電影超高幀率之外(如李安的比利林恩.中場戰(zhàn)事達到超高幀率120fps),辣么有的同學就問了:是不是幀率越高越好,這里可以給到你肯定的回答:是的!就像顯示器的分辨率一樣,之前認為1080p足夠了,現(xiàn)在用到了4K,5K之后才發(fā)現(xiàn)以前的真沒法看。當然支持高幀率也需要對應的硬件設備,emm..話題跑偏了,回到Android流暢度上來,現(xiàn)在Android平臺App或者是游戲普遍需要達到60fps用戶肉眼才能感覺到“不卡”。咦?不是24fps嗎?那么問題來了,為什么電影只需要24fps就能是流暢的效果,而App/游戲需要達到60fps? 動態(tài)模糊首先小伙伴們可以看下這張圖,設計功力較渣,大家見諒 第一部分為電影物體運動軌跡,不理解,沒關系,再來看下這張圖 wtf???并不是電影不高清,而且主角在激烈的戰(zhàn)斗?。。?! 幀間隔/垂直同步/Vsync說到幀間隔這個名詞大家可能比較陌生,垂直同步相信很多玩游戲的小伙伴在游戲的設置菜單有見過,那么他是用來做什么的呢? 可以看到在電影播放的時候,每幀的間隔時間都是相等的,過度非常平滑。 丟幀雖然開啟了垂直同步能夠保證幀間隔時間相等,但是能夠保證每幀都能夠及時的渲染出來嗎?并不能,來看下面這張圖: 系統(tǒng)會每隔16ms去發(fā)送Vsync信號通知CPU/GPU可以開始渲染工作了,為什么是16ms?機智如你應該能想到60fps的倒數(shù)就是16.67ms(省略后面的小數(shù)點)。如果要能夠達到60fps的話,那么就要求每一幀都應該在16ms之內(nèi)繪制完畢,否則就出現(xiàn)了右邊圖里面的情況-丟幀!16ms之內(nèi)沒有完成該幀的繪制,那么就必須要等到下次系統(tǒng)的Vsync信號過來了,中間經(jīng)過的時間就是16ms*2(大致為34ms)。而且丟幀也是App卡頓的根本原因?。?! 好了,關于流暢度的解析就先到這里,下篇再給大家講解怎么監(jiān)控指標以及怎么測試的問題。 來源:http://www./content-4-186851.html |
|