任何人有任何想法如何獲得Android設備的FPS(幀每秒)?如何計算Android設備級別的FPS
在開發設置中有一個選項可以顯示FPS,但我想編寫一個應用程序來執行相同的操作。
它內部調用surfaceflinger
api。
任何人有任何想法如何獲得Android設備的FPS(幀每秒)?如何計算Android設備級別的FPS
在開發設置中有一個選項可以顯示FPS,但我想編寫一個應用程序來執行相同的操作。
它內部調用surfaceflinger
api。
在你的主Activity
類覆蓋onDraw()
方法。調用super.onDraw()
然後存儲當前的系統時間。在當前的繪圖調用和前一次繪製調用之間以毫秒計算delta_time
。然後使用1000 ms/delta_time ~ FPS
這裏計算FPS是一些僞代碼:
void onDraw(){
super.onDraw()
curTime = getTime();
deltaTime = curTime - prevTime();
aproxFps = 1000/deltaTime;
prevTime = curTime;
}
那是不是,除非你的根設備和引擎蓋下得到某種程度上,你可以做。
但是這會計算應用程序的FPS而不是設備的FPS,對不對? – Robust
使用標準的android API,你無法獲得設備的幀率。你需要使用'root'或者滾動你自己的自定義ROM。 – slayton