saber - Cómo medir FPS en Android durante el desarrollo de aplicaciones
fps counter android (4)
Hay GameBench en la tienda de juegos que pueden medir los FPS de una sesión de juego. Por favor mira en GameBench. Puede medir el rendimiento de cualquier juego mientras se está jugando y puede correlacionar las caídas de FPS con lo que se estaba representando en la pantalla.
¿Hay alguna forma (tal vez algunas aplicaciones, hacks, libs) de medir marcos por segundo (FPS) durante el desarrollo de aplicaciones para Android?
He utilizado GameBench para el análisis de FPS de una aplicación de Android (no es un juego, quería comprobar el FPS cuando una animación de mi aplicación comienza a ejecutarse). GameBench captura métricas de tasa de fotogramas clave (FPS), que son el mejor indicador objetivo de la fluidez de un UX.
Mi requisito era verificar que el FPS sea de 30 FPS cuando se inicie una animación de mi aplicación de Android.
He verificado lo siguiente con el informe Graph proporcionado por la herramienta GameBench,
- Cuando comienza la animación, el FPS se movió de 0 FPS a 30FPS.
- Cuando la animación termina, el FPS se movió de 30FPS a 0 FPS.
Ver captura de pantalla.
Para utilizar esta herramienta, debe instalar una aplicación de Android y un iniciador de escritorio.
- Instala la aplicación GameBench en tu dispositivo Android.
- Regístrese en GameBench usando una dirección de correo electrónico e instale la aplicación de escritorio.
- Descarga e instala el GameBench Desktop Launcher.
- Conecte el dispositivo con el escritorio. Puede recibir una ventana emergente en su dispositivo que le pide que permita la depuración USB
- En la aplicación de GameBench para Android, puede seleccionar la aplicación (que ya instalé en la tableta) para el análisis.
- Luego, puede grabar el fotograma por segundo y generar el informe (también está disponible en el panel web, el FPS, la captura de pantalla, el rendimiento, la batería, etc.).
Referencia:
Como nota al margen,
También utilicé la aplicación FPS Meter , pero en mi caso me parece inexacta. Obtuve 29FPS a 31 FPS cuando se inicia mi animación en la aplicación de Android. FPS esperado es 30FPS.
https://play.google.com/store/apps/details?id=com.ftpie.fpsmeter&hl=es
Puedes usar la librería TinyDancer .
Simplemente añada 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á una vista interactiva con información sobre los FPS actuales en la parte superior de sus pantallas.
Tenga en cuenta que el rendimiento será terrible con el depurador adjunto.
Desde mi propio juego de Android, el tiempo de fotogramas se puede medir con android.os.SystemClock
. Es decir, se llama a SystemClock.elapsedRealtime()
una vez por fotograma y se resta el valor del fotograma anterior. Como elapsedRealtime()
se mide en milisegundos, el cálculo de la frecuencia de cuadros es tan simple como 1000.0 / frametime
.
Puede publicar su código en un marco continuo usando Choreographer#postFrameCallback
si apunta al nivel de API 16 o más reciente (Jelly Bean).
También tenga en cuenta que frametime es generalmente un mejor indicador de rendimiento que framerate. La diferencia entre 1000fps y 1200fps es la misma cantidad de tiempo que la diferencia entre 60fps y 61fps (aproximadamente, probablemente menos que eso)