2012-01-18 34 views
16

Androidのアプリ開発中にFPS(frames per second)を測定する方法(アプリ、ハッキング、ライブラリなど)はありますか?アプリの開発中にAndroidでFPSを測定する方法

+0

あなたの質問はあまりにも一般的すぎると思います。あなたは、あなたが使っている在庫UIのいくつかについて話していますか、OpenGLのコンテキストなどを実行していますか?後のケースでは、フレームを自分で数えるだけです。 – Mario

答えて

14

デバッガが接続されているとパフォーマンスがひどくなることに注意してください。

自分のAndroidゲームから、フレーム時間はandroid.os.SystemClockで測定できます。つまり、フレームごとに1回、SystemClock.elapsedRealtime()を呼び出し、前のフレームから値を減算します。 elapsedRealtime()はミリ秒単位で測定されるため、フレームレートの計算は1000.0/frametimeと同じくらい簡単です。

APIレベル16以上(Jelly Bean)をターゲティングする場合はChoreographer#postFrameCallbackを使用して、進行中のフレームにコードを投稿できます。

また、frametimeは、一般にフレームレートよりもパフォーマンスの優れた指標です。 1000fpsと1200fpsの差は、60fpsと61fpsの差と同じ時間です(ただし、おそらくそれ以下です)。

+0

ああ、補間/アニメーションを実行しようとしている場合、滑らかな時間ベースの動きを得る方法と同じフレームタイムを使用することができます。 –

+4

1000-1200の差はおよそ0.17秒で、60と61fpsの差は約0.017秒です。だからそれは間違いなく大きな違いです。 – Sietse

+1

あなたの経過時間の計算はあなたが言ったようにミリ秒単位です。だから、フレームレート計算は1000.0/frametimeではないでしょうか?私はあなたの答えが何の単位で指定されているのかはっきりしないと思うが、OPは1秒あたりのフレーム数を言い表しているので、私はあなたが1000時間する必要があると思う。 –

3

プレイセッションのFPSを測定できるプレイストアにはappsがあります。 GameBenchを見てください。それは、それが再生されている間、任意のゲームのパフォーマンスを測定することができますし、画面上でレンダリングされていたものにFPSドロップを相関させることができます。

15

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に関する情報をインタラクティブなビューが表示されます。

enter image description here

+0

これは、既存のコードで実装するのが速く、魅力的に動作するように、使いやすく簡単です。いいです! – SMalpica

+0

これが最適なソリューションです。非常に素晴らしい結果! –

2

私は、AndroidアプリケーションのFPS分析(それはゲームではありません、私は私のアプリのアニメーションが実行を開始したときにFPSをチェックしたい)のためにGameBenchを使用しています。 GameBenchは、キーフレームレート(FPS)メトリックをキャプチャします。このメトリックは、UXの流動性を示す最も優れた指標です。

私のアンドロイドアプリケーションのアニメーションが始まると、FPSが30FPSであることを確認する必要がありました。私はGameBenchツールが提供するグラフレポートで、次を確認しました

は、

  • アニメーションが開始さ

    、FPSは0 FPSから30FPSに移動しました。アニメーションが終了すると
  • はFPSは0 FPS

参照してください。スクリーンショットに30FPSから移動しました。

enter image description here

このツールを使用するには、Androidアプリケーションとデスクトップ・ランチャーをインストールする必要があります。

  1. アンドロイドデバイスにGameBenchアプリケーションをインストールします。
  2. 電子メールアドレスを使用してGameBenchに登録し、デスクトップアプリケーションをインストールします。
  3. GameBench Desktop Launcherをダウンロードしてインストールします。
  4. デバイスをデスクトップに接続します。 USBデバッグを許可するようにデバイスにポップアップが表示される場合があります。
  5. GameBenchのAndroidアプリでは、解析のためにアプリ(タブレットにインストール済み)を選択できます。
  6. フレームを秒単位で記録し、レポート(Webダッシュボード、FPS、スクリーンショット、パフォーマンス、バッテリーなどで利用可能)を生成することができます。私もFPS Meter appを使用しているが、それは私らしいサイドノートとして

    1. https://play.google.com/store/apps/details?id=com.gamebench.metricscollector
    2. https://www.gamebench.net/
    3. https://docs.gamebench.net/web-dashboard/getting-started

リファレンス私の場合は不正確です。アンドロイドアプリケーションのアニメーションが開始されると、29FPSから31FPSになります。予想されるFPSは30FPSです。

https://play.google.com/store/apps/details?id=com.ftpie.fpsmeter&hl=en

関連する問題