溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

android獲取某應(yīng)用的幀數(shù)據(jù)

發(fā)布時(shí)間:2020-08-15 02:12:21 來(lái)源:網(wǎng)絡(luò) 閱讀:614 作者:lilier 欄目:移動(dòng)開發(fā)

android獲取某應(yīng)用的幀數(shù)據(jù):

  • 前提操作:

(打開手機(jī) 開發(fā)者選項(xiàng)-GPU顯示配置文件(顯示于 adb shell dumpsys gfxinfo)勾上,只有4.1以上支持)

在android4.1中,谷歌提供了一個(gè)工具來(lái),叫做“ GPU呈現(xiàn)模式分析(Profile GPU rendering)”,

在開啟這個(gè)功能后,系統(tǒng)就會(huì)記錄保留操作界面最后128幀圖像繪制的相關(guān)時(shí)間信息


  • 正式開始開始操作

  1. 打開需要測(cè)試的頁(yè)面,上下勻速的滑動(dòng)(這里建議最好是用腳本穩(wěn)定運(yùn)行)

  2. 命令行 adb shell dumpsys gfxinfo com.taobao.mobile.dipei

  3. 結(jié)果中 Profile data in ms 

分析下面數(shù)據(jù)(這里要注意,找到對(duì)應(yīng)的頁(yè)面activity對(duì)應(yīng)的數(shù)據(jù))

Draw:表示在Java中創(chuàng)建顯示列表部分中,OnDraw()方法占用的時(shí)間?!?/strong>

Process:表示渲染引擎執(zhí)行顯示列表所花的時(shí)間,view越多,時(shí)間就越長(zhǎng) 

Execute:表示把一幀數(shù)據(jù)發(fā)送到屏幕上排版顯示實(shí)際花費(fèi)的時(shí)間。


其實(shí)是實(shí)際顯示幀數(shù)據(jù)的后臺(tái)緩存區(qū)與前臺(tái)緩沖區(qū)交換后并將前臺(tái)緩沖區(qū)的內(nèi)容顯示到屏幕上的時(shí)間。所以這個(gè)時(shí)間,一般都很短。

PS:View類包含Surface(變量名mSurface),每個(gè)Surface通常對(duì)應(yīng)兩個(gè)buffer,一個(gè)front buffer, 一個(gè)back buffer。

 (4.1之后是3個(gè),一個(gè)前,兩個(gè)后)其中,back buffer就是canvas繪圖時(shí)對(duì)應(yīng)的bitmap (研究Android_view_Surface.cpp::lockCanvas)。

 因此,繪畫總是在back buffer上,需要更新時(shí),則將back buffer和front buffer互換。   

 Draw + Process + Execute = 完整顯示一幀 ,

 這個(gè)時(shí)間要小于16ms才能保存每秒60幀。

將數(shù)據(jù)復(fù)制到excel中(win記得逐列復(fù)制,mac下就直接復(fù)制過去吧),然后將數(shù)據(jù)生成“堆積柱形圖”;


  • 統(tǒng)計(jì)數(shù)據(jù)

  1. 將上面步驟中得到的三列數(shù)據(jù),放到excl里面,將3個(gè)值加在一起得到一幀的總耗時(shí)sum1,sum2,....sum128,共128個(gè)幀值;

  2. 將這128個(gè)幀中大于16ms的數(shù)據(jù)count()出來(lái),比如,得到10幀是大于16ms的;

  3. 再將10/128 與8%比較,超過8%則可以斷定基本不合格;小于8%可以算合格;

這里面的3個(gè)步驟,均可以用腳本來(lái)實(shí)現(xiàn),后續(xù)會(huì)補(bǔ)上特定的章節(jié)來(lái)描述如何用腳本來(lái)實(shí)現(xiàn);

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI