Pregunta

Estoy analizando el uso de memoria de mi aplicación de Android con la ayuda de Analizador de memoria Eclipse (también conocido como MAT).A veces puedo encontrar casos extraños de android.graphics.Bitmap clase, utilizando una gran parte del montón.El problema es que no puedo encontrar la fuente de estos mapas de bits, no Nombre del archivo, No ID de recurso, nada.Toda la información que puedo encontrar para el mapa de bits es la siguiente:bitmap_info

hay un campo mBuffer Supongo que con una variedad de píxeles de imagen.Pero está en algún formato interno de Android, no PNG.

Pregunta:¿Cómo puedo ver la imagen representada por este mapa de bits desde el volcado de memoria?

¿Fue útil?

Solución

He encontrado una manera de ver dichos mapas de bits:

  • Primero, necesitas descargar e instalar CAÑUTILLO
  • A continuación, encuentra tu Bitmap objeto en MAT, haga clic derecho en mBuffer campo, en el menú emergente elija "Copiar" -> "Guardar valor en archivo" elemento de menú y guardar el valor de esta matriz en algún archivo
  • dar extensión .data a ese archivo
  • inicie GIMP, elija "Archivo" -> "Abierto", selecciona tu .data archivo y haga clic Abierto botón
  • "Cargar imagen desde datos sin procesar" Aparecerá el cuadro de diálogo.Aquí debe configurar los parámetros correctos para su mapa de bits.
  • primero, elige "Tipo de imagen" como "RGB Alfa" (la mayoría de los recursos de Android tienen este tipo de imagen, pero es posible que tengas que experimentar con otros tipos de imágenes)
  • segundo, configurar correctamente Ancho y Altura para su mapa de bits (las dimensiones correctas se pueden encontrar en el volcado de memoria)

En ese punto ya deberías observar la vista previa de la imagen original.Si no lo hizo, puede intentar cambiar algunos otros parámetros en "Cargar imagen desde datos sin procesar" diálogo.

NOTA:para obtener el ancho y alto de la imagen que puedes mirar mWidth y mHeight campos en MAT en la sección de atributos como se muestra en la imagen en cuestión.

Otros consejos

Puede convertir volcados de memoria de MAT a png usando con ImagenMagia en la línea de comando.

En MAT para relacionados Bitmap objeto clic derecho mBuffer y seleccione "Copiar" -> "Guardar valor en archivo", nombre el archivo con un .rgba extensión.

Debe tener en cuenta el ancho y alto del mapa de bits desde mWidth y mHeight campos, que puede ver en el objeto Bitmap.

Teniendo ImageMagick herramientas de línea de comando instaladas (para Ubuntu apt-get install imagemagick), usted emite convert comando con los siguientes parámetros.

convert -size 'width'x'height' -depth 8 filename.rgba filename.png

Por ejemplo

 convert -size 680x1209 -depth 8 phone_decor.rgba phone_decor.png

Puede verificar el archivo png generado a través de eog, como eog phone_decor.rgba en Ubuntu fácilmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top