android獲取某應(yīng)用的幀數(shù)據(jù):
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供新昌網(wǎng)站建設(shè)、新昌做網(wǎng)站、新昌網(wǎng)站設(shè)計、新昌網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、新昌企業(yè)網(wǎng)站模板建站服務(wù),十年新昌做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
前提操作:
(打開手機 開發(fā)者選項-GPU顯示配置文件(顯示于 adb shell dumpsys gfxinfo)勾上,只有4.1以上支持)
在android4.1中,谷歌提供了一個工具來,叫做“ GPU呈現(xiàn)模式分析(Profile GPU rendering)”,
在開啟這個功能后,系統(tǒng)就會記錄保留操作界面最后128幀圖像繪制的相關(guān)時間信息
正式開始開始操作:
打開需要測試的頁面,上下勻速的滑動(這里建議最好是用腳本穩(wěn)定運行)
命令行 adb shell dumpsys gfxinfo com.taobao.mobile.dipei
結(jié)果中 Profile data in ms
分析下面數(shù)據(jù)(這里要注意,找到對應(yīng)的頁面activity對應(yīng)的數(shù)據(jù))
Draw:表示在Java中創(chuàng)建顯示列表部分中,OnDraw()方法占用的時間。
Process:表示渲染引擎執(zhí)行顯示列表所花的時間,view越多,時間就越長
Execute:表示把一幀數(shù)據(jù)發(fā)送到屏幕上排版顯示實際花費的時間。
其實是實際顯示幀數(shù)據(jù)的后臺緩存區(qū)與前臺緩沖區(qū)交換后并將前臺緩沖區(qū)的內(nèi)容顯示到屏幕上的時間。所以這個時間,一般都很短。
PS:View類包含Surface(變量名mSurface),每個Surface通常對應(yīng)兩個buffer,一個front buffer, 一個back buffer。
(4.1之后是3個,一個前,兩個后)其中,back buffer就是canvas繪圖時對應(yīng)的bitmap (研究Android_view_Surface.cpp::lockCanvas)。
因此,繪畫總是在back buffer上,需要更新時,則將back buffer和front buffer互換。
Draw + Process + Execute = 完整顯示一幀 ,
這個時間要小于16ms才能保存每秒60幀。
將數(shù)據(jù)復(fù)制到excel中(win記得逐列復(fù)制,mac下就直接復(fù)制過去吧),然后將數(shù)據(jù)生成“堆積柱形圖”;
統(tǒng)計數(shù)據(jù)
將上面步驟中得到的三列數(shù)據(jù),放到excl里面,將3個值加在一起得到一幀的總耗時sum1,sum2,....sum128,共128個幀值;
將這128個幀中大于16ms的數(shù)據(jù)count()出來,比如,得到10幀是大于16ms的;
再將10/128 與8%比較,超過8%則可以斷定基本不合格;小于8%可以算合格;
這里面的3個步驟,均可以用腳本來實現(xiàn),后續(xù)會補上特定的章節(jié)來描述如何用腳本來實現(xiàn);
當(dāng)前標(biāo)題:android獲取某應(yīng)用的幀數(shù)據(jù)
標(biāo)題鏈接:http://www.chinadenli.net/article36/joehsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網(wǎng)站維護、網(wǎng)站排名、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)