2012-01-18 4 views
16

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

+0

Угадайте, что ваш вопрос является слишком общим. Вы говорите о каком-то материале пользовательского интерфейса, который вы используете, или используете контекст OpenGL или что-то подобное? В более позднем случае я просто считаю кадры самостоятельно. – Mario

ответ

14

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

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

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

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

+0

О, и если вы пытаетесь сделать интерполяцию/анимацию, вы можете использовать одно и то же время цикла как способ добиться плавного движения по времени. –

+4

Разница между 1000-1200 составляет приблизительно 17 секунд, разница между 60 и 61 fps составляет около 0,017 секунд. Так что это определенно огромная разница. – Sietse

+1

расчет вашего прошедшего времени в миллисекундах, как вы сказали. Итак, не следует ли вычислять частоту кадров 1000.0/время цикла? Я предполагаю, что неясно, какие единицы указывается ваш ответ, но поскольку OP упоминает кадры в секунду, я думаю, вам нужно сделать 1000.0 –

3

В игровом магазине есть apps, который может измерять FPS игровой сессии. Посмотрите на 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

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

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

Я проверил следующее с отчетом Graph, предоставляемым инструментом GameBench,

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

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

enter image description here

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

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

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

Смежные вопросы