Android流暢度之幀率

2021-08-29 22:55:57 字數 1902 閱讀 6492

首先,明確人為感受的效能不好屬於下面哪種:

1. 響應時間,介面跳轉後響應時間;

2. 流暢度,介面操作時或動畫展示的效果;

而流暢度的衡量指標又有幾種:

1. 幀率fps(frames per second,每秒鐘填充影象的幀率)

2. 丟幀sf(skipped frame)

其中得到最廣泛使用的還是幀率。以下詳細說明之

回顧本源:android如何繪製ui?

參考:顯示效能指標、效能評測調優

說實話,這裡看的不甚懂,主要理解了垂直同步機制。

每隔1個vsync間隔,android會發起一次中斷,gpu/cpu就會處理新一幀的資料,處理每幀資料的時間必定為vsync間隔的整數倍;即使gpu/cpu可處理的幀數更多最終也會保持和android顯示系統一致;而如果gpu/cpu可處理的幀數少於60,則會出現掉幀的情況,即人為感知每幀影象之間的不連貫。

基於此種情況,還出現了三快取,注意下圖中的c,在空閒時先處理了c,在之後的某個時間放到螢幕上。

補充關於雙快取與su***ce關係參考:android ui呈現

幀率值在什麼範圍可認定為流暢?

理想狀態每秒展示60幀時人眼感受不到卡頓,1000ms/60幀,即每幀繪製時間不應超過16.67ms。

幀率如何計算?

二者的區別是什麼?

參考:fps計算方法比較

這是需要重點了解的功能,部門原已採用gfxinfo獲取相關資料,但網搜到後期資料處理多是基於su***ceflinger 的資料。導致研究發現資料處理方法對不上,實則忽略了二者的區別。

gfxinfo:

su***ceflinger:

算出fps了,這個單純的資料能夠代表流暢度麼?關於這點,很多資料中也有質疑。由於android自帶adb測試效能命令,輸出乙個階段的幀繪製耗時,多次測試獲得多個曲線,不能簡單求均值獲得概括資料。有資料是建議使用掉幀率來衡量。

利用處理幀數 / (處理幀數 + 額外的垂直同步脈衝) * 60計算,其中處理幀數常為128

實測補充說明:

附錄:實際獲得的gfxinfo資料:其實後五項的資料意義還不太清晰,求指教,為什麼求和之後不等於janky frames

分類:

android,

qathing

好文要頂

關注我收藏該文

qa小蝦

關注 - 0

粉絲 - 0

+加關注 00

uuencode mail 傳送附件(由格式錯誤引發的思考)

在linux docker上安裝stf

posted @ 2017-06-04 22:19

收藏

android流暢度比Ios差的原因

andorid更新了乙個版本又乙個版本,硬體從單核到雙核到四核,系統流暢度總算基本能和ios持平了。不過人們不禁會問,為什麼都是基於linux,兩個系統會差別如此大?為什麼iphone 4用單核處理器就能實現的流暢度,android要高階雙核才能保證?近日,android開發小組工程師dianne ...

位元速率,解析度,幀率

顯示解析度 螢幕解析度 是螢幕影象的精密度,是指顯示器所能顯示的畫素有多少。由於螢幕上的點 線和面都是由畫素組成的,顯示器可顯示的畫素越多,畫面就越精細,同樣的螢幕區域內能顯示的資訊也越多,所以解析度是個非常重要的效能指標之一。可以把整個影象想象成是乙個大型的棋盤,而解析度的表示方式就是所有經線和緯...

解析度 幀率 位元速率關係

幀率 fps 每秒鐘要多少幀畫面 以及gop 表示多少秒乙個i幀 位元速率 編碼器每秒編出的資料大小,單位是kbps,比如800kbps代表編碼器每秒產生800kb 或100kb 的資料。三者的對應直播質量的影響因素 幀率 影響畫面流暢度,與畫面流暢度成正比 幀率越大,畫面越流暢 幀率越小,畫面越有...