Есть ли способ (возможно, некоторые приложения, хаки, библиотеки) для измерения кадров в секунду (FPS) во время разработки приложений для Android?Как измерить FPS на Android во время разработки приложения
ответ
Обратите внимание, что производительность будет ужасной при подключении отладчика.
Из моей собственной игры для Android время кадра можно измерить с помощью android.os.SystemClock
. То есть вы вызываете SystemClock.elapsedRealtime()
один раз за кадр и вычитаете значение из предыдущего кадра. Поскольку elapsedRealtime()
измеряется в миллисекундах, вычисление частоты кадров так же просто, как 1000.0/frametime
.
Вы можете разместить свой код в текущем фрейме, используя Choreographer#postFrameCallback
, если вы используете API 16-го уровня или более новый (Jelly Bean).
Также обратите внимание, что время цикла обычно является лучшим показателем производительности, чем частота кадров. Разница между 1000fps и 1200fps составляет такое же количество раз, как разница между 60fps и 61fps (приблизительно, вероятно, меньше, чем это)
О, и если вы пытаетесь сделать интерполяцию/анимацию, вы можете использовать одно и то же время цикла как способ добиться плавного движения по времени. –
Разница между 1000-1200 составляет приблизительно 17 секунд, разница между 60 и 61 fps составляет около 0,017 секунд. Так что это определенно огромная разница. – Sietse
расчет вашего прошедшего времени в миллисекундах, как вы сказали. Итак, не следует ли вычислять частоту кадров 1000.0/время цикла? Я предполагаю, что неясно, какие единицы указывается ваш ответ, но поскольку OP упоминает кадры в секунду, я думаю, вам нужно сделать 1000.0 –
В игровом магазине есть apps, который может измерять FPS игровой сессии. Посмотрите на GameBench. Он может измерять производительность любой игры во время ее воспроизведения, и вы можете сопоставить капли FPS с тем, что отображалось на экране.
Вы можете использовать библиотеку 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 на верхней части вашего экрана.
действительно прост в использовании, быстро реализуется в существующем коде и работает как шарм. Неплохо! – SMalpica
Это лучшее решение. Очень хорошие результаты! –
Я использовал GameBench для FPS анализа андроид приложения (это не игра, я хотел проверить FPS, когда анимация мое приложение начинает работать). GameBench фиксирует показатели ключевой частоты кадров (FPS), которые являются лучшим объективным индикатором текучести UX.
Мое требование состояло в том, чтобы проверить, что FPS будет 30FPS, когда начинается анимация моего приложения для Android.
Я проверил следующее с отчетом Graph, предоставляемым инструментом GameBench,
- Когда начинается анимация, ФПС переехал от 0 FPS до 30FPS.
- Когда анимация заканчивается FPS перемещается от 30FPS до 0 FPS
Смотрите скриншот.
Чтобы использовать этот инструмент, вы должны установить приложение для Android и настольной пусковой установки.
- Установите приложение GameBench в устройство Android.
- Зарегистрируйтесь в GameBench, используя адрес электронной почты и установите настольное приложение.
- Загрузите и установите GameBench Desktop Launcher.
- Подключите устройство к рабочему столу. На вашем устройстве может появиться всплывающее окно с просьбой разрешить USB-отладку.
- В Android-приложении GameBench вы можете выбрать приложение (которое я уже установил на планшет) для анализа.
- Затем вы можете записывать кадр в секундах и генерировать отчет (его также можно найти в веб-панели управления, FPS, снимок экрана, производительность, батарея и т. Д.).
Ссылка:
- https://play.google.com/store/apps/details?id=com.gamebench.metricscollector
- https://www.gamebench.net/
- 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
- 1. Как измерить FPS в Android?
- 2. Как измерить время разработки разработчика
- 3. Как измерить FPS анимации CSS3?
- 4. Как измерить FPS приложения Android, использующего TextureView? (Я использую OpenGL)
- 5. Тестирование во время разработки Android
- 6. Как измерить время загрузки приложения?
- 7. compiler traceur во время разработки во время разработки
- 8. Как измерить время в Android?
- 9. Изменение имени приложения iOS во время разработки
- 10. Как измерить WPF Silverlight FPS или время рендеринга?
- 11. Как измерить fps (прошедшее время) с помощью tkinter python.after?
- 12. распространение приложения для iPad во время разработки?
- 13. Как измерить энергопотребление моего приложения на Android
- 14. Android, как измерять FPS вида или приложения программно
- 15. Android, как измерить прошедшее время
- 16. Как измерить время события во вспышке?
- 17. Как измерить fps в C# .net winform
- 18. Добавление файла во внутреннее хранилище Android во время разработки
- 19. Установка приложения во время установки на android
- 20. Как измерить количество команд во время выполнения?
- 21. Отладка во время разработки
- 22. DataTemplate во время разработки
- 23. Xaml во время разработки
- 24. Как я могу определить размер моего приложения во время разработки?
- 25. Как получить путь приложения во время разработки в winforms, .net?
- 26. Как измерить FPS на моей странице WebGL с помощью FPSMeter?
- 27. Как открыть меню WPF во время разработки?
- 28. Как измерить время выполнения приложения для запуска на C#?
- 29. Как избежать траты времени во время компиляции во время разработки?
- 30. Как измерить производительность приложения Java?
Угадайте, что ваш вопрос является слишком общим. Вы говорите о каком-то материале пользовательского интерфейса, который вы используете, или используете контекст OpenGL или что-то подобное? В более позднем случае я просто считаю кадры самостоятельно. – Mario