¿Cómo puedo degradar con gracia mi rendimiento, dada la memoria limitada?
Pasé los últimos días tratando de eliminar las pérdidas de memoria en mi juego, lo que resultó en muchos errores de falta de memoria. Estoy a punto de agregar una cantidad significativa de gráficos, que si bien no es muy complicado, se agregarán significativamente a los requisitos de procesamiento de mi sistema, y estoy un poco preocupado por el uso de mi memoria, y esperaba que alguien pudiera tener algunos consejos para mi No quiero ir por debajo de Android 2.1, así que por favor adapte cualquier respuesta para ese fin.
Primero, mi juego consiste en:
2 actividades, 13 archivos XML (algunos relacionados con una pequeña parte de un diseño, algunos diálogos y 2 directamente relacionados con actividades. Un número de dibujos, realizados en Adobe Illustrator y convertidos a PNG. Estos son probablemente grandes, pero no inusualmente grandes, y en su mayor parte, solo pequeñas cantidades de ellos están en la memoria en un momento dado.Quite algunos diálogos. Dirigido a Android 1.6 y superior. Utilicé el Admob más nuevo y, como resultado, tengo que construir contra 3.2. Mi tamaño de almacenamiento dinámico predeterminado para mis emuladores es de alrededor de 24 MB.Algunas imágenes de muestra de mi juego:
Lo que he aprendido
A pesar de que el tamaño total de mi aplicación es de solo alrededor de 500K, de alguna manera estoy ocupando 24 Megs, según lo calculado poradb shell procrank
.He realizado una optimización considerable, pero no veo grandes aumentos en la memoria.Utilizar herramientas para encontrar lo que hay en el montón normalmente solo muestra alrededor de 7 MB disponibles, con alrededor de 3 MB en uso. A veces, al abrir nuevos diálogos y similares, veo un aumento, pero no puedo decir que veo que es tan grande ...MAT muestra que ninguna de mis clases está usando una cantidad de memoria inusualmente grande.Entonces, dado todo esto, mis preguntas.
¿Es 24 Mb un requisito real para desarrollar a (1.6+ Android)?uponiendo que es así, ¿cómo puedo permitir gráficos más agradables para los sistemas que pueden manejarlo, pero no bloquearse y quemarse para los sistemas más antiguos?Cuáles son algunos problemas comunes que puedo usar para mejorar el uso de mi memoria?