2012-01-20 12 views
6

Como dice el título, ¿debería seguir diseñando mi aplicación en torno a un límite de tamaño de almacenamiento dinámico de 16 MB? La razón por la que pregunto es porque he estado desarrollando recientemente un juego que funciona bien en mi Droid 2 de casi 2 años. Pero cuando pruebo mi aplicación usando un AVD con un límite de tamaño de almacenamiento dinámico de 16 MB, me salen errores de memoria. El monitoreo de mi aplicación con DDMS muestra que la memoria total asignada para mi juego es de alrededor de 20 MB. No es una gran diferencia, pero hacer que mi juego funcione por debajo de ese límite de 16 MB realmente dañaría las imágenes.Límite de tamaño de almacenamiento dinámico de Android, ¿todavía necesitamos diseñar aplicaciones teniendo en cuenta un límite de 16 MB?

Ahora, si esto fuera 2008, ni siquiera estaría haciendo esta pregunta. Pero es 2012, casi 4 años después de que el G1 debutó. ¿Es seguro decir que la mayoría de los teléfonos fabricados el año pasado permiten que las aplicaciones asignen más de 16 MB de memoria? ¿O realmente me estoy atormentando al no diseñar mi aplicación con un límite de 16 MB en mente?

+0

Guardé mi teléfono anterior durante 5 años. Espero mantener mi Droid 2G durante 5 años también. – Chloe

Respuesta

6

El límite del montón varía según la resolución del dispositivo (y probablemente también otros factores). Por lo tanto, en un dispositivo de alta resolución, el límite del montón puede ser de 30 MB mientras que en un G1 de baja resolución es de 16 MB. En general, debe cambiar sus gráficos en consecuencia, por lo que los dispositivos de baja resolución utilizan gráficos de baja resolución (que ocupan menos espacio) y los dispositivos de alta resolución usan gráficos de alta resolución (que ocupan más espacio).

+2

Gracias, su publicación me llevó a darme cuenta de por qué tenía un bloqueo en mi aplicación dentro del emulador en primer lugar. Había configurado mi AVD con una gran resolución de pantalla, pero no subí el tamaño del montón en consecuencia. Cuando volví y cambié la resolución de la pantalla a algo similar al G1 original, mi juego funcionó perfectamente sin exceder el límite de tamaño de almacenamiento dinámico de 16 MB. – AntiWiggin

2

Sí, todavía lo necesitamos, pero no en todos los casos. Si está utilizando un código nativo, la memoria asignada por el compilador c no incluye este límite. Por lo tanto, puede proporcionar más memoria al componente esencial de su aplicación. y la segunda forma es usar Textura para dibujar imágenes usando OpenGL. Entonces, la memoria para estas texturas no incluye la memoria limitada.

Pero estas técnicas no se puede aplicar en todos los casos

Una cosa más importante, no se puede utilizar estos 30 MB por completo also.Only 30% de la misma es útil para una aplicación.

+0

"Solo el 30% se puede usar para una aplicación". ¿Qué hay de abrir 5 aplicaciones juntas? –

Cuestiones relacionadas