2012-01-18 12 views
16

¿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

+0

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

Respuesta

14

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)

+0

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. –

+4

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

+1

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 –

3

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.

15

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.

enter image description here

+0

es realmente fácil de usar, rápido de implementar en un código existente y funciona como un encanto. ¡Bien! – SMalpica

+0

Esta es la mejor solución. Muy buenos resultados! –

2

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.

enter image description here

Para utilizar esta herramienta, usted tiene que instalar una aplicación androide y un lanzador en el escritorio.

  1. Instale la aplicación GameBench en su dispositivo Android.
  2. Regístrese en GameBench usando una dirección de correo electrónico e instale la aplicación de escritorio.
  3. Descargue e instale GameBench Desktop Launcher.
  4. Conecte el dispositivo al escritorio. Puede recibir una ventana emergente en su dispositivo pidiéndole que permita la depuración de USB
  5. En la aplicación GameBench para Android, puede seleccionar la aplicación (que ya instalé en la tableta) para el análisis.
  6. 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:

  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

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

Cuestiones relacionadas