2010-06-20 6 views
5

Actualmente estoy considerando desarrollar una aplicación para el procesamiento de imágenes capturadas por la cámara de teléfonos móviles que utilizan el sistema operativo Android. Antes de tomar la decisión de seguir adelante, investigué y el descubrió que hay algunas quejas con respecto a los límites de la memoria asignados por Dalvik VM, que parecen ser limitantes para las aplicaciones que requieren manipulación y procesamiento de imágenes. ¿Qué límites debería tener en cuenta si tuviera que procesar ejemplo 3 fotos tomadas con la cámara, en mi proceso, aplicando filtros , transformaciones y otros tipos de operaciones matemáticas?Dalvik Memory Allocation - ¿Cómo cambiar los límites predeterminados?

me gustaría saber si es posible cambiar el valor por defecto de memoria asignada por la máquina virtual Dalvik para cada aplicación (este valor predeterminado es de 16 MB), de ninguna manera, utilizando el sistema operativo Android 1.6. ¿Alguien ha visto en esto que me puede ayudar, por favor?

También he leído en el documento Android 2.1 compatibilidad definición (disponible aquí: http://static.googleusercontent.com/external_content/untrusted_dlcp/source.android.com/pt-PT//compatibility/android-2.1-cdd.pdf ) que es posible cambiar la asignación de memoria por el Dalvik VM de 16 MB a 24 MB o incluso una más grande cantidad si es necesario, pero no se menciona en ningún lugar cómo se puede hacer esto.

Si alguien ha investigado estos problemas anteriormente y podría darme alguna ayuda o sugerencia sobre , lo agradecería mucho. Gracias.

+0

por cierto: el Nexus One el tamaño del montón predeterminado ya está a 24 MB por aplicación –

Respuesta

7

En un dispositivo habitual no puede cambiar los límites de almacenamiento dinámico de su aplicación. Están codificados por el OEM. Si está desarrollando un dispositivo para el cual tiene control total, puede modificar los scripts de inicio de Dalvik para permitir más espacio en el montón.

+0

¿Tiene información sobre cómo ¿Modifica las secuencias de comandos de inicio de Dalvik con respecto al mayor tamaño de almacenamiento dinámico predeterminado por aplicación? ¿Necesita enraizar el teléfono para eso? Estoy desarrollando una aplicación que se combinará/distribuirá junto con un dispositivo, donde tendría el control total, pero no rooteado (aún). –

+2

necesita tener un acceso completo al teléfono, la modificación de las secuencias de comandos de inicio significa un acceso de root. en caso de que tenga un acceso raíz - edite el script de inicio (está en la raíz/init).rc) y busque "setprop ro.FOREGROUND_APP_MEM 1536" – reflog

+4

Para el límite del montón administrado de Dalvik, usted desea editar vendor/[compañía]/[producto] /system.prop y agregar o actualizar "dalvik.vm.heapsize = 24m ". Esto termina en /system/build.prop, y finalmente se convierte en un argumento -Xmx. – fadden

2

Puede cambiar esto cambiando el elemento vm.heapSize en config.ini de avd. Por ejemplo, puede escribir

vm.heapSize=64 

en config.ini. Si no hay tal artículo, puede agregar uno nuevo.

Sin embargo, tenga en cuenta que vm.heapSize puede ser anulado por la piel. Hay un hardware.ini en la ruta de acceso de la máscara y contiene las configuraciones predeterminadas de vm.heapSize y hw.ramSize que pueden anular su valor. Para solucionar este problema, es posible configurar

skin.path=720x1280 
skin.name=720x1280 

Los números no son importantes, debe ser en la forma (anchura) x (altura).

1

Se puede cambiar el tamaño de la pila global predeterminada a través de setprop adb shell, por ejemplo:

setprop dalvik.vm.heapsize 128m 
Cuestiones relacionadas