Rendimiento en Android Juego

Codifiqué un juego para Android. Para cada trama utilizo el mismo procedimiento.

Así que mi juego funciona suave, pero en algunos momentos el juego se atasca. Busqué con deltaTimes en los métodos, pero no es fácil encontrar el problema.

En la imagen de la deltaTiempo entre los fotogramas: pedazo de tiempo Usted puede ver los picos. Entre los picos el juego corre sin problemas.

Así que mi pregunta para usted es, ¿conoces un profiler o algo parecido en eclipse para encontrar la razón de los picos? ¿O sabes un sitio web con tipps de rendimiento para el desarrollo de juegos en android?
El recolector de basura no lo es, porque en la consola de depuración el mensaje no aparece.

// EDIT 1: Después de buscar más tipps de rendimiento, agregué una clase de tema personalizada:

<resources> <style name="Theme.NoBackground" parent="android:Theme"> <item name="android:windowBackground">@null</item> </style> </resources> 

Esto me dio un mejor rendimiento, pero todavía hay picos altos. Segunda prueba de rendimiento

Una de las razones más grandes para estos tipos de picos es cuando la recolección de basura comienza. Los marcos paran un lento si usted tiene decir un arraylist de burbujas, y cada burbuja contiene una imagen, usted utilizaría un sistema de la agrupación para reutilizar las burbujas más bien que Dejando que el recolector de basura se acumule, lo que causaría estos picos.

La recolección de basura debe evitarse mientras el juego se está ejecutando y los elementos se deben cargar al inicio del juego.

Algunos artículos aquí que pueden ser de utilidad para usted ..

Evite usar el for-loop mejorado para ArrayLists en juegos con Android

Pool de objetos para juegos con Android

Puede utilizar traceview para ver dónde pasa su tiempo.
Perfilado con traceview

Y hay algunas prácticas recomendadas proporcionadas por Android para mejorar el rendimiento de una aplicación.
Consejos de rendimiento

Definitivamente parece una recolección de basura. Para verificar esto, puede filtrar los mensajes de logcat que comienzan con "GC_" mientras se ejecuta el juego.

Otros ya han publicado consejos para arreglar eso, esto es lo que añadiría: mira cada línea que contiene el operador new () y piensa en dónde la instancia creada acabará con su vida útil. Si es durante el juego, debe ser cambiado.

  • ¿La codificación dura de la cadena afecta el rendimiento?
  • Aplicación de Android onLowMemory () en la API> = 14
  • ¿Por qué mi aplicación comienza increíblemente lento (10s +) en la primera ejecución, mostrando sólo pantalla blanca en Android 5.0?
  • Cómo medir FPS en Android durante el desarrollo de aplicaciones
  • ¿Por qué Android Eclipse constantemente actualiza las carpetas externas y toma forver?
  • ¿Cómo almacenar en caché y almacenar objetos y establecer una política de expiración en android?
  • Android Studio demasiado lento y laggy
  • Mejorando la velocidad de getpixel () y setpixel () en Android Bitmap
  • Android triple buffering - comportamiento esperado?
  • Problema de rendimiento de PublisherAdView loadAd en Android
  • Una forma más eficiente de actualizar la interfaz de usuario del servicio que las intenciones?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.