2012-05-07 70 views
4

任何人有任何想法如何獲得Android設備的FPS(幀每秒)?如何計算Android設備級別的FPS

在開發設置中有一個選項可以顯示FPS,但我想編寫一個應用程序來執行相同的操作。

它內部調用surfaceflinger api。

回答

4

在你的主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; 
} 
+0

但是這會計算應用程序的FPS而不是設備的FPS,對不對? – Robust

+0

使用標準的android API,你無法獲得設備的幀率。你需要使用'root'或者滾動你自己的自定義ROM。 – slayton

0

那是不是,除非你的根設備和引擎蓋下得到某種程度上,你可以做。