2011-05-20 16 views
19

Estoy desarrollando una aplicación que consume mucha memoria y quiero usar el granHeap-Tag, que debería darle a la aplicación un poco más de memoria. Cualquier cosa que establezca esta etiqueta en AndroidManifest.xml, no hace ninguna diferencia en la memoria real que me han dado. Estoy leyendo en mi memoria máxima de esta manera:largeHeap = ¿la etiqueta de manifiesto verdadero no funciona?

Log.v("Utils","Max Mem in MB:"+(Runtime.getRuntime().maxMemory()/1024/1024)); 

Mi manifiesta ve bastante como esto:

<application android:label="@string/app_name" android:hardwareAccelerated="true" android:largeHeap="true" android:debuggable="true"> 

    <activity android:name=".EntryActivity" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

</application> 

Estoy corriendo 3.1 en el emulador , la salida de mi registro arriba siempre es de 48MB. ¿Alguien puede ayudar?

+0

No se debe evitar la pregunta, pero ¿para qué está utilizando esta memoria? – Nick

+3

procesamiento de imágenes ¡apuesto! – binnyb

+1

exactamente ... si hay alguna otra manera de modificar imágenes de alta resolución, esto sería muy bienvenido. pero no encontré otra manera de trabajar con bitmaps, que son muy grandes. – stk

Respuesta

12

Use ActivityManager.getMemoryClass() y ActivityManager.getLargeMemoryClass() para verificar los valores aproximados asignados a su aplicación.

+0

Conozco este método, pero no devuelve el valor real del límite del montón, iirc. solo devuelve los límites para montones grandes o normales, pero esto no es un indicador de si el límite ahora es estándar o grande. – stk

+0

¿Cuáles son los valores devueltos? –

+0

ah bien ... dice que largeHeap in Emulator tiene el mismo tamaño que el tamaño de pila "normal" ... ¡tengo que probarlo en un dispositivo real más adelante! – stk

9

De hecho, el montón grande será el mismo que el montón normal hasta que su aplicación necesite más memoria para una tarea. Su máquina virtual mostrará estos mensajes en la consola:

06-30 15:38:14.770: INFO/dalvikvm-heap(9075): Grow heap (frag case) to 42.365MB for 6152016-byte allocation 
06-30 15:38:16.680: INFO/dalvikvm-heap(9075): Grow heap (frag case) to 39.739MB for 3517456-byte allocation 
Cuestiones relacionadas