[英]How to measure FPS on Android during app development
有沒有辦法(可能是一些應用程序、黑客、庫)在 Android 應用程序開發過程中測量每秒幀數 (FPS)?
您可以使用TinyDancer庫。
只需添加如下代碼:
public class DebugApplication extends Application {
@Override public void onCreate() {
// default config
TinyDancer.create().show(this);
//or customazed config
TinyDancer.create()
.redFlagPercentage(.1f) // set red indicator for 10%
.startingGravity(Gravity.TOP)
.startingXPosition(200)
.startingYPosition(600)
.show(this);
}
}
您將在屏幕頂部看到包含當前 FPS 信息的交互式視圖。
請注意,附加調試器的性能會很差。
在我自己的 Android 游戲中,可以使用android.os.SystemClock
測量幀時間。 也就是說,您每幀調用一次SystemClock.elapsedRealtime()
從前一幀中減去該值。 由於elapsedRealtime()
以毫秒為單位,計算幀率就像1000.0 / frametime
一樣簡單。
如果面向 API 級別 16 或更高級別(Jelly Bean),您可以使用Choreographer#postFrameCallback
將代碼發布到正在進行的框架中。
另請注意,幀時間通常比幀速率更能衡量性能。 1000fps 和 1200fps 之間的差異與 60fps 和 61fps 之間的差異的時間量相同(大約,但可能小於)
我已經使用GameBench對一個 android 應用程序進行 FPS 分析(它不是游戲,我想在我的應用程序的動畫開始運行時檢查 FPS)。 GameBench 捕獲關鍵幀速率 (FPS) 指標,這是 UX 流動性的最佳客觀指標。
我的要求是在我的 android 應用程序的動畫啟動時驗證 FPS 為 30FPS。
我已經使用 GameBench 工具提供的 Graph 報告驗證了以下內容,
見截圖。
要使用此工具,您必須安裝一個 android 應用程序和一個桌面啟動器。
參考:
作為旁注,
我也使用過FPS Meter 應用程序,但在我的情況下似乎不准確。 當我在 android 應用程序中的動畫啟動時,得到 29FPS 到 31FPS。 預期 FPS 為 30FPS。
https://play.google.com/store/apps/details?id=com.ftpie.fpsmeter&hl=en
Playstore 中有一些應用程序可以測量游戲會話的 FPS。 請查看 GameBench。 它可以測量任何游戲在玩時的性能,您可以將 FPS 下降與屏幕上呈現的內容相關聯。
到目前為止,在Android上測量FPS的最簡單,最簡單的方法是使用GameBench Android或桌面應用程序,或者在任何Android應用程序開發公司的幫助下進行。 GameBench負責查詢正確的OS服務並返回FPS值。 GameBench返回的FPS指標已得到包括Google和手機制造商在內的許多合作伙伴的驗證。 因此,您可以放心使用最少的設置獲得准確的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.