Как измерить FPS на Android во время разработки приложения - PullRequest
25 голосов
/ 18 января 2012

Есть ли способ (может быть, некоторые приложения, хаки, библиотеки) измерять количество кадров в секунду (FPS) во время разработки приложения для Android?

Ответы [ 4 ]

26 голосов
/ 25 января 2016

Вы можете использовать библиотеку 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

16 голосов
/ 18 января 2012

Обратите внимание, что при подключенном отладчике производительность будет ужасной.

В моей собственной игре для Android время кадра можно измерить с помощью android.os.SystemClock.То есть вы вызываете SystemClock.elapsedRealtime() один раз за кадр и вычитаете значение из предыдущего кадра.Поскольку elapsedRealtime() измеряется в миллисекундах, вычисление частоты кадров выполняется просто, как 1000.0 / frametime.

. Вы можете разместить свой код в текущем кадре, используя Choreographer#postFrameCallback, если нацеливает уровень API 16или новее (Jelly Bean).

Также обратите внимание, что время кадра обычно является лучшим показателем производительности, чем частота кадров.Разница между 1000 к / с и 1200 к / с - это то же количество времени, что и разница между 60 к / с и 61 к / с (приблизительно, вероятно, меньше, чем это)

6 голосов
/ 31 января 2017

Я использовал GameBench для анализа FPS приложения для Android (это не игра, я хотел проверить FPS, когда запускается анимация моего приложения).GameBench захватывает метрики ключевой частоты кадров (FPS), которые являются лучшим объективным показателем текучести UX.

Мое требование состояло в том, чтобы при запуске анимации моего приложения для Android было подтверждено, что FPS равен 30 FPS.*

Я проверил следующее в отчете «График», предоставленном инструментом GameBench:

  • Когда анимация начинается, FPS перемещается с 0 FPS на 30 FPS.
  • Когдаанимация заканчивается FPS перемещен с 30 FPS на 0 FPS

См. скриншот.

enter image description here

Чтобы использовать этот инструмент, у вас естьустановить приложение для Android и средство запуска на рабочем столе.

  1. Установите приложение GameBench на свое устройство Android.
  2. Зарегистрируйтесь в GameBench, используя адрес электронной почты, и установите приложение для настольного компьютера.
  3. Загрузите и установите GameBench Desktop Launcher.
  4. Подключите устройство к рабочему столу.На вашем устройстве может появиться всплывающее окно с просьбой разрешить отладку по USB
  5. В приложении GameBench Android вы можете выбрать приложение (которое я уже установил на планшете) для анализа.
  6. Затем вы можете записывать кадры в секунду и генерировать отчет (он также доступен в веб-панели инструментов, 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 , но в моем случае это выглядит неточно.Получил 29FPS до 31 FPS, когда моя анимация в приложении для Android запускается.Ожидаемый FPS составляет 30FPS.

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

3 голосов
/ 17 июня 2014

В PlayStore есть приложения , которые могут измерять FPS сеанса воспроизведения.Пожалуйста, посмотрите на GameBench.Он может измерять производительность любой игры во время игры, и вы можете соотносить капли FPS с тем, что воспроизводилось на экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...