不管是手機端仍是PC端,畫面的流暢度一直被用戶視爲衡量應用視覺體驗的重要標準。用戶每每經過主觀感受把視覺體驗分爲兩種狀態:shell
流暢視覺:行雲流水,一鼓作氣;canvas
非流暢視覺:「卡頓」、「抖動」、「遲鈍感」;瀏覽器
而對開發者來講,FPS一般做爲衡量應用是否流暢的標準。安全
1、FPS是什麼?微信
FPS即Frames per Second(每秒顯示的幀數),用於測量顯示幀數的度量。幀數爲0說明頁面處於靜止,只要頁面動起來,這個幀數就會有變化,而後再趨於靜止,頁面滾動起來幀數總體呈現「非對稱」拋物線走勢。架構
能夠想到FPS值的大小對畫面流暢度的影響,每一幀都是靜止的圖像,快速連續地顯示幀便造成了運動的假象,所以高幀率能夠獲得更流暢、更逼真的動畫。工具
2、何爲幀延遲?卡頓如何形成的?性能
幀延遲的高低能夠經過幀時間(Frame Time)來斷定。咱們參考顯示器的60Hz刷新率進行計算,它意味着每秒刷新60幀,每幀大約用時16.7毫秒。畫面中每幀生成時間若是與16.7毫秒很接近,那麼全程畫面的幀數就很穩定,更接近理想的60幀每秒。學習
若是每幀生成時間高於16.7毫秒,也就意味着渲染這一場景所花費的時間比其餘幀更多,形成畫面跟不上,進而帶來顯示卡頓。測試
舉一個簡單的例子,咱們看到的早期動畫片其實就是用一張張手繪圖片連貫翻頁製做而成的。當一張張獨立圖片切換速度足夠快時,咱們的眼睛就會覺得這是連續的動做。反之,當圖片切換速度不夠快時,就會被人眼看出破綻,相應的視覺體驗就是卡頓。
3、如何進行應用幀率測試?
既然幀率的高低影響着用戶對應用視覺體驗的好壞,那做爲開發者該如何進行應用的幀率測試?
華爲終端開放實驗室選取購物、實用工具、旅遊住宿、社交通信、影音娛樂等常見分類中的TOP應用採用如下方法進行FPS測試,測試結果顯示,如下TOP應用的FPS都知足安卓綠色聯盟幀率不小於55fps的性能標準,可見如下應用開發企業在爲用戶提供流暢視覺體驗方面下足了功夫,給其餘應用開發企業樹立了良好的榜樣,但願廣大開發者一道,爲更好的用戶視覺體驗不斷努力!
測試環境:
硬件環境:Pixel 2 XL 4+64G
軟件版本:Android 8.0
測試次數:5次取平均值
APP幀率測試標準:不小於55fps;
測試前提條件:手機root,adb shell手機鏈接正常
非遊戲類應用幀率測試方案:
測試範圍:
購物類應用手機淘寶、京東、惟品會、網易嚴選;
實用工具類應用QQ瀏覽器、360瀏覽器、UC瀏覽器、百度;
旅遊住宿類應用途牛旅遊、飛豬、攜程旅行、去哪兒旅行;
社交通信類應用微博、MOMO陌陌、微信、QQ;
影音娛樂類應用搜狐視頻、愛奇藝、優酷、騰訊視頻;
注意:
實用工具類應用針對「華爲終端開放實驗室(https://deveco.huawei.com/)」網站首頁幀率信息進行統計;
購物、旅遊住宿、社交通信、影音娛樂類應用針對首頁(跳過登陸以及廣告頁面後的用戶首個可滑動頁面)進行幀率信息統計;
按照如下流程執行幀率信息收集和計算過程:
①頁面滑動幀率收集:
②頁面滑動幀率計算:
③非遊戲類應用測試數據展現:
4、如何進行應用幀率優化?
手機的CPU處理速率、屏幕尺寸、內存及顯存的大小都影響着APP幀率的大小,這些因素在必定程度上約束着準備數據和數據傳到屏幕的時間。再者,GUI軟件架構在必定程度上也影響着應用幀率的大小。
在同等機器環境下,除去CPU、屏幕尺寸及系統GUI等固有數據傳輸耗時,要提高應用FPS就要減小視圖渲染的時間。
經過如下幾種方式能夠有效提高應用FPS:
一、儘可能不要在刷新時作耗時操做,例如準備數據,建立圖片,圖片變換等,數據和圖片都應該在以前就加載到內存中,圖片變換用canvas的變換來實現。
二、同一個界面中多個動畫重疊出現時,儘可能將動畫的刷新過程統一刷新,避免頻繁的invalidate,尤爲是多個動畫有時序上的關係時更應該統一。
三、儘可能使用帶有參數的invalidate來刷新,這樣能夠減小不少運算量。
歡迎有需求的小夥伴使用上述方法進行應用FPS測試,若是您有更好的解決方法與看法,歡迎在文章下方留言交流!後續咱們將針對應用FPS狀況進行重點分析,想了解應用FPS不一樣的緣由麼,想學習更多應用FPS優化的方法麼?歡迎持續關注!
目前,華爲終端開放實驗室已上線FPS測試功能,歡迎廣大應用開發者前來使用!
①登陸 DevEco 平臺
進入 https://deveco.huawei.com/ ,登陸帳號,選擇「測試服務-雲測試-性能測試」
②選擇機型,點擊「當即體驗」
③根據要求上傳應用 APK,獲取幀率測試結果。
若有疑問,可發送郵件至deveco@huawei.com
*本報告最終解釋權歸華爲全部。
DevEco 雲測平臺已開放能力概覽
雲測試:
兼容性測試——全自動化驗證,保證應用無兼容性死角
穩定性測試——基於控件識別技術的隨機遍歷測試
性能測試——深刻分析應用性能薄弱點
功耗測試——檢測影響手機應用功耗的各項關鍵指標
安全測試——進行廣告攔截、病毒掃描、安全漏洞分析和隱私泄露分析
雲調試:
遠程真機——華爲全機型+谷歌原生真機,7*24小時在線
功能測試:
錄製回放——解決應用功能邏輯測試訴求
*以上內容都已面向安卓綠色聯盟會員免費開放,可登陸deveco.huawei.com使用體驗。