Las imágenes de JavaME - LWUIT se comen toda la memoria
Estoy escribiendo un MIDlet usando LWUIT y las imágenes parecen consumir cantidades increíbles de memoria. Todas las imágenes que uso son PNG y están empaquetadas dentro del archivo JAR. Los cargo usando el método estándar Image.createImage (URL). La aplicación tiene varias formas y cada una tiene un par de etiquetas y botones, sin embargo, estoy bastante seguro de que solo la forma activa se guarda en la memoria (sé que no es muy confiable, pero Runtime.freeMemory () parece confirmar esta).
La aplicación ha funcionado bien en una resolución de 240x320, pero al moverla a 480x640 y al usar imágenes más grandes para la IU, comenzó a aparecer errores de falta de memoria. Lo que hace la aplicación, entre otras cosas, es descargar imágenes remotas. La aplicación parece funcionar bien hasta que llega a este punto. Después de descargar un par de archivos PNG y volver al menú principal, se encuentra el error de falta de memoria. Naturalmente, examiné la cantidad de memoria que usa el menú principal y fue bastante impactante. Son solo dos etiquetas con imágenes y cuatro botones. Cada botón tiene tres imágenes utilizadas para style.setIcon, setPressedIcon y setRolloverIcon. Las imágenes varían en tamaño desde 15 a 25 KB, pero al eliminar dos de las tres imágenes utilizadas para cada botón (8 imágenes en total), Runtime.freeMemory () mostró una impresionante disminución de 1 MB en el uso de la memoria.
A mi modo de ver, o bien tengo muchas fugas de memoria (que no creo que tenga, pero no se sabe que las fugas de memoria sean fáciles de detectar), estoy haciendo algo terriblemente mal con el manejo de la imagen o Realmente no hay problema involucrado y solo necesito escalar.
Si alguien tiene alguna idea que ofrecer, lo apreciaría enormemente.