MAT (Eclipse Memory Analyzer): cómo ver mapas de bits del volcado de memoria
-
13-12-2019 - |
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:
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?
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 enmBuffer
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.