如何在应用程序开发期间在Android上测量FPS

有没有一种方法(也许一些应用程序,黑客,库)来测量Android应用程序开发期间每秒帧数(FPS)?

Solutions Collecting From Web of "如何在应用程序开发期间在Android上测量FPS"

请注意,附加的debugging器的性能会很糟糕。

从我自己的Android游戏中,帧时间可以通过android.os.SystemClock进行测量。 也就是说,每帧调用一次SystemClock.elapsedRealtime() ,并从前一帧中减去该值。 由于elapsedRealtime()以毫秒为单位进行测量,因此计算帧率非常简单,为1000.0 / frametime

如果目标API级别为16或更高(Jelly Bean),则可以使用Choreographer#postFrameCallback将代码发布到正在进行的帧中。

另外请注意,帧时间通常比帧率更好地衡量性能。 1000fps和1200fps之间的差值与60fps和61fps之间的差值相同(大约可能小于这个值)

您可以使用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信息的交互式视图。

在这里输入图像说明

Playstore中有可以测量玩游戏的FPS的应用程序 。 请看GameBench。 它可以测量任何游戏在播放时的性能,并且可以将FPS丢弃与屏幕上显示的内容相关联。

我已经使用GameBench进行Android应用程序的FPS分析(这不是游戏,我想在应用程序的animation开始运行时检查FPS)。 GameBench捕捉关键帧速率(FPS)指标,这是UXstream动性的最佳客观指标。

我的要求是当我的android应用程序的animation开始时,validationFPS是30FPS。

我已经通过GameBench工具提供的Graph报告validation了以下内容,

  • 当animation开始时,FPS从0 FPS移动到30FPS。
  • 当animation结束时,FPS从30FPS移动到0 FPS

看截图。

在这里输入图像说明

要使用这个工具,你必须安装一个android应用程序和一个桌面启动器。

  1. 在Android设备上安装GameBench应用程序。
  2. 使用电子邮件地址注册到GameBench并安装桌面应用程序。
  3. 下载并安装GameBench Desktop Launcher。
  4. 将设备连接到桌面。 您可能会收到设备上的popup窗口,要求您允许USBdebugging
  5. 在GameBench Android应用程序中,您可以select应用程序(我已经安装在平板电脑上)进行分析。
  6. 然后,您可以每秒钟logging帧,并生成报告(也可在Web仪表板中使用,FPS,屏幕截图,性能,电池等)。

参考:

  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

作为一个方面说明,

我也使用了FPS Meter应用程序 ,但在我的情况下似乎不准确。 当我的android应用程序的animation开始时,得到29FPS到31 FPS。 预期的FPS是30FPS。

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