Android Studio Libgdx Problemas de memoria

Tengo algunos problemas con mi aplicación. A veces se retrasa y me da "GC_CONCURRENT liberado". Yo uso MAT para mirar lo que consume tanta memoria y descubrí que una lista de objetos come mucha memoria. El problema es que tengo bloques en mi juego y necesito ver si mi jugador los pasos en ellos así que por eso estoy usando esta lista. Actualmente tengo 200 bloques, pero tendré mucho más y no creo que deberían usar tanta memoria, ¿qué puedo hacer para solucionar el problema? Así es como se ve la clase de bloque:

package com.NeverMind.DontFall.android; import android.util.Log; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.SpriteBatch; /** * Created by user on 20-Aug-15. */ public class blockClass { private SpriteBatch spriteBatch; public float x, y, sizeX = 100, sizeY = 100, startTime; private boolean isTouched = false; private Texture texture; Sprite blockSprite; public blockClass(float sentX, float sentY, Texture sentTexture, float scaleX, float scaleY){ x = sentX; y = sentY; sizeY *= scaleY; sizeX *= scaleX; spriteBatch = new SpriteBatch(); texture = sentTexture; blockSprite = new Sprite(texture); startTime = System.currentTimeMillis(); } public void draw(float cameraX, float cameraY) { spriteBatch.begin(); spriteBatch.draw(blockSprite, x + cameraX, y + cameraY, sizeX, sizeY); spriteBatch.end(); } public void update(float posX, float posY, boolean immune){ if (isTouched == false && immune == false) if (touched(posX, posY) ) isTouched = true; if (isTouched == true) { y -= 10; } } public boolean touched (float posX, float posY) { if (posX >= x && posX < x + sizeX && posY == y + sizeY) return true; return false; } public boolean toKill (float posY){ if (isTouched && y < posY - 1000) return true; return false; } } 

GC_CONCURRENT freed significa que se llama Garbage Collector, debido a objetos que matan (por ejemplo, asignar null a ellos).

Hay un concepto llamado Object Pooling , reutiliza el objeto muerto en lugar de matarlo y obtener el objeto de la agrupación en lugar de crear uno nuevo, por lo que no tiene GC llamadas y de forma similar no GC_CONCURRENT freed .

  • Fuera de la memoria
  • Fragmentos de memoria de Android Fragment
  • Problema de seguimiento de heap nativo - la pestaña "Native Heap" está vacía
  • ¿Cómo puedo forzar la presión de memoria para la depuración de Android?
  • EditText que causa la pérdida de memoria
  • Android - ¿Cómo rastrear el uso de memoria de una aplicación en ejecución en el dispositivo mediante programación?
  • ¿Por qué el tamaño de mapa de bits es más grande en la memoria que en el disco en Android?
  • Android BitmapRegionDecoder Fuga de memoria
  • Decodificación de mapas de bits en Android con el tamaño correcto
  • Error de memoria insuficiente al reiniciar la aplicación (Android)
  • SocketTimeoutException Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.