Administración de memoria en Android: la aplicación no se carga debido a que no hay suficiente memoria en el emulador

Estoy tratando de transferir un juego de lectura de cartas de la fortuna del tarot desde el iPhone a Android. Puse todas las imágenes sin escalar que ocuparon unos 19 mb. ¿Estaba bajo la suposición de que los androides generalmente tienen 512 mb de ram? ¿Por qué la aplicación no se carga si su tamaño total es de aproximadamente 20 mb? Reduje las imágenes, por lo que la memoria se redujo a alrededor de 8 MB y se cargó bien.

¿Alguien sabe cómo funciona la gestión de la memoria o un buen enlace? Voy a tener algunos efectos de sonido y más gráficos. Me preocupa que no cargue la apk.

preguntado el 12 de junio de 12 a las 17:06

2 Respuestas

En Android, cada aplicación tiene una cantidad limitada de memoria para operar. Por lo general, varía de 16 MB a 24 MB, siendo normalmente menor en dispositivos más antiguos. Para evitar esto, los juegos suelen utilizar texturas OpenGL, ya que no cuentan en este límite de memoria, IIRC. Además, la asignación de memoria desde el NDK evita este límite, pero no es muy conveniente.

Puede agregar android:largeHeap="true" a su etiqueta para obtener una mayor cantidad de memoria asignada, pero solo funciona en 3.X y superior, AFAIK.

Respondido el 12 de junio de 12 a las 17:06

Hola, gracias, 18 MB estaban dentro del límite de memoria. ted pottel

En primer lugar, el hecho de que una imagen ocupe un poco de espacio en el disco no significa que utilizará la misma cantidad de memoria cuando se muestra. Para calcular cuánta memoria ocupará una imagen (aproximadamente), haga H x W x 4. Luego están los límites impuestos por Android, que varían según el tamaño de la pantalla (16 MB y más, pero no mucho más). En general, puede muy pocas imágenes de pantalla completa. Además, dado que sus imágenes son probablemente mucho más grandes que la pantalla del teléfono, debe reducir la muestra para que ocupen menos memoria. Hay mucha información que cubre ese tema aquí mismo en SO.

Respondido el 12 de junio de 12 a las 17:06

Hola, gracias por tu comentario, sí, las reduje y solucioné el problema, en otra nota, la versión de iPhone no me molestó en reducir el tamaño de las imágenes. funcionó bien, pero sí, debería haberlos reducido en el iPhone. - ted pottel

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.