¿Hay alguna manera (tal vez algunas aplicaciones, hacks, libs) para medir cuadros por segundo (FPS) durante el desarrollo de aplicaciones para Android?Cómo medir FPS en Android durante el desarrollo de aplicaciones
Respuesta
Tenga en cuenta que el rendimiento será terrible con el depurador conectado.
Desde mi propio juego para Android, el tiempo de fotograma se puede medir con android.os.SystemClock
. Es decir, llama al SystemClock.elapsedRealtime()
una vez por cuadro y resta el valor del cuadro anterior. Como elapsedRealtime()
se mide en milisegundos, calcular la velocidad de fotogramas es tan simple como 1000.0/frametime
.
Puede publicar su código en un marco continuo utilizando Choreographer#postFrameCallback
si se dirige a API de nivel 16 o superior (Jelly Bean).
También tenga en cuenta que frametime es generalmente un mejor indicador de rendimiento que framerate. La diferencia entre 1000 fps y 1200 fps es la misma cantidad de tiempo que la diferencia entre 60 fps y 61 fps (aproximadamente, probablemente menos que eso)
Ah, y si estás tratando de hacer interpolación/animación, puedes usar el mismo frametime para obtener un movimiento suave basado en el tiempo. –
La diferencia entre 1000-1200 es .17 segundos aproximadamente, la diferencia entre 60 y 61 fps es de aproximadamente .017 segundos. Entonces eso definitivamente es una gran diferencia. – Sietse
su cálculo del tiempo transcurrido es en milisegundos como usted dijo. Entonces, ¿no debería el cálculo de framerate ser 1000.0/frametime? Supongo que no está claro qué unidades está especificando tu respuesta, pero dado que el PO menciona cuadros por segundo, creo que debes hacer 1000.0 –
Hay apps en el playstore que puede medir FPS de una sesión de juego. Por favor, mira GameBench. Puede medir el rendimiento de cualquier juego mientras se juega y puede correlacionar los descensos de FPS con lo que se estaba representando en la pantalla.
Puede usar la biblioteca TinyDancer.
sólo tiene que añadir un código como:
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);
}
}
y verá vista interactiva con información sobre FPS actual en la parte superior de tu pantalla.
es realmente fácil de usar, rápido de implementar en un código existente y funciona como un encanto. ¡Bien! – SMalpica
Esta es la mejor solución. Muy buenos resultados! –
he utilizado para el análisis GameBench FPS de una aplicación Android (que no es un juego, quería comprobar el FPS cuando una animación de mi aplicación comienza a funcionar). GameBench captura métricas de velocidad de cuadros clave (FPS), que son el mejor indicador objetivo de la fluidez de un UX.
Mi requisito era verificar que el FPS fuera de 30 FPS cuando se inicia una animación de mi aplicación de Android.
He comprobado lo siguiente con el informe de gráfico proporcionado por la herramienta GameBench,
- Cuando se inicia la animación, el FPS se mudaron de 0 a 30 FPS FPS.
- Cuando termina la animación del FPS se mudaron de 30 fps a 0 FPS
Ver Captura.
Para utilizar esta herramienta, usted tiene que instalar una aplicación androide y un lanzador en el escritorio.
- Instale la aplicación GameBench en su dispositivo Android.
- Regístrese en GameBench usando una dirección de correo electrónico e instale la aplicación de escritorio.
- Descargue e instale GameBench Desktop Launcher.
- Conecte el dispositivo al escritorio. Puede recibir una ventana emergente en su dispositivo pidiéndole que permita la depuración de USB
- En la aplicación GameBench para Android, puede seleccionar la aplicación (que ya instalé en la tableta) para el análisis.
- Luego puede registrar el Marco por segundo y generar el informe (está disponible también en el panel de la web, el FPS, la captura de pantalla, el rendimiento, la batería, etc.).
Referencia:
- https://play.google.com/store/apps/details?id=com.gamebench.metricscollector
- https://www.gamebench.net/
- https://docs.gamebench.net/web-dashboard/getting-started
Como nota al margen,
he utilizado FPS Meter app también, pero parece que impreciso en mi caso. Tengo 29FPS a 31 FPS cuando comienza mi animación en la aplicación para Android. El FPS esperado es 30FPS.
https://play.google.com/store/apps/details?id=com.ftpie.fpsmeter&hl=en
- 1. Desarrollo del juego: ¿cómo limitar el FPS?
- 2. Cómo medir el rendimiento en el desarrollo de Java
- 3. Desarrollo de aplicaciones de chat para Android
- 4. SL4A vs Ruboto en el desarrollo de aplicaciones Android
- 5. Desarrollo de aplicaciones para iPhone y Android
- 6. Rails 3.2.x: cómo volver a cargar el directorio de aplicaciones/clases durante el desarrollo?
- 7. Pruebas de FPS en la aplicación de Android
- 8. Desarrollo de aplicaciones de Android sin dispositivo Android
- 9. Desarrollo de aplicaciones para Android en módulos de trabajo separados
- 10. ¿Cómo medir el consumo de VRAM en Android?
- 11. iniciación en el desarrollo de aplicaciones Blackberry
- 12. ¿Cómo evitar el "intercambio de la muerte" durante el desarrollo?
- 13. Desarrollo de aplicaciones de Android con lenguaje ensamblador
- 14. Meteorito mongodb personalizado durante el desarrollo
- 15. Juego de Android con FPS constante?
- 16. ¿Cómo se calcula el FPS en OpenGL?
- 17. Android: ¿cómo puedo medir el rendimiento de ListView y otras vistas?
- 18. ¿Cómo administra las bases de datos durante el desarrollo?
- 19. Emulando Amazon SQS durante el desarrollo
- 20. cómo medir y mejorar el uso de la batería en el iPhone/iPad (también en Android)
- 21. Desarrollo de aplicaciones de Android sin Eclipse/ADT
- 22. Desarrollo de aplicaciones de cliente REST de Android
- 23. cómo medir HeartBeat usando un dispositivo Android
- 24. Desarrollo de desarrollo de diseño en Android
- 25. desarrollo de aplicaciones con el lenguaje D
- 26. ¿Qué dispositivo Android debería comprar para el desarrollo de aplicaciones de Android?
- 27. Desarrollo de aplicaciones para Android: java vs. jquery mobile
- 28. FPS cómo calcular esto?
- 29. Cómo manejar imágenes durante el desarrollo del software
- 30. ¿Cómo evitar perder el tiempo durante la compilación durante el desarrollo?
Supongo que tu pregunta es un poco demasiado general. ¿Estás hablando de algunas cosas de UI de stock que estás utilizando o estás ejecutando un contexto de OpenGL o algo similar? En caso posterior, solo contaría los cuadros yo mismo. – Mario