2016-03-30 16 views
0

TextureViewを使用する特定のAndroidビューのFPS(リフレッシュレート)を測定したいと思います。これを行うには、プログラムでFPSを測定する方法が必要です(ADB.exeを使用せず、サードパーティのアプリやツールを使用しないなど)。AndroidビューやアプリケーションのFPSをプログラムで測定する方法

私はthis questionを見ましたが、フレーム時間を記録する場所には答えません。

画面が更新されたり作成されたときにイベントを取得するためのAPIはありますか?これを使用すると、フレーム時間を測定してFPSを計算するのは比較的簡単です。

CPU使用について同じ質問があります。パフォーマンスを測定するAPIの一部またはすべてが高く評価されています。

+1

このライブラリを検討してください:https://github.com/friendlyrobotnyc/TinyDancer – chRyNaN

答えて

2

まあ、それはあなたがやりたいことができTinyDancer次のようになります。

//you can add a callback to get frame times and the calculated 
//number of dropped frames within that window 
TinyDancer.create() 
    .addFrameDataCallback(new FrameDataCallback() { 
     @Override 
     public void doFrame(long previousFrameNS, long currentFrameNS, int droppedFrames) { 
      //collect your stats here 
     } 
     }) 
     .show(this); 
} 

あなたは常にtopを使用することができますCPUの使用状況を知る必要がある場合。このようなSmth:

[email protected]:/data # top -n 1 -s cpu 

User 28%, System 29%, IOW 0%, IRQ 0% 
User 189 + Nice 162 + Sys 355 + Idle 509 + IOW 0 + IRQ 0 + SIRQ 2 = 1217 

    PID PR CPU% S #THR  VSS  RSS PCY UID  Name 
31096 0 20% S 20 463368K 78884K fg u0_i77 com.android.chrome:sandboxed_process0 
29042 1 11% S 54 451036K 84876K fg u0_a10 com.android.chrome 
    130 2 9% S 25 79228K 37136K fg system /system/bin/surfaceflinger 
... 
... 
... 

Androidアプリからシステムコマンドを呼び出すis not difficult

+0

素晴らしい!ありがとうございました。私は試してみます –

関連する問題