MAT(Eclipse的内存分析器) - 如何看待从内存转储位图 [英] MAT (Eclipse Memory Analyzer) - how to view bitmaps from memory dump
问题描述
我分析了我的Android应用程序的内存使用情况与 Eclipse的内存分析器(也称为MAT)。有时我可以找到 android.graphics.Bitmap奇怪的实例
类,利用堆的很大一部分。是什么问题,我无法找到这个位图,没有的文件名的,没有任何的 RESOURCEID 的,没有来源。所有的信息是我能找到的位图如下:
I'm analyzing memory usage of my Android app with help of Eclipse Memory Analyzer (also known as MAT). Sometimes I can find strange instances of android.graphics.Bitmap
class, utilizing big portion of heap. Problem is what I can't find source of this bitmaps, no filename, no resourceID, nothing. All information what I can find for bitmap is following:
有一个字段 mBuffer
与图像的像素阵列,我假设。但它在一些内部的Android格式,而不是PNG。
There is a field mBuffer
with array of image pixels, I assume. But it's in some internal Android format, not PNG.
问题:我怎么可以查看图像再从内存中psented此位$ P $转储
Question: how can I view image represented by this bitmap from memory dump?
推荐答案
我已经找到一种方法来查看这样的位图:
I have found a way to view such bitmaps:
- 首先,你需要下载并安装 GIMP
- 接下来,找到在MAT你的
位图
对象,对mBuffer
字段中单击鼠标右键,在弹出菜单中选择复制的 - >的保存值到文件的菜单项,并保存这个数组的价值的一些文件 - 给扩展
.DATA
该文件 - 在启动GIMP,选择的文件的 - >的打开的,选择
.DATA
文件,然后单击打开的按钮 - 的加载从原始数据图像的对话框将会出现。在这里,你需要设置正确的参数为位图
- 第一,选择的图像类型的作为的RGB阿尔法的(大多数Android资源有这样的图像类型,但您可能需要尝试其他类型的图像)
- 第二,设置正确的宽度和高度的为您的位图(正确的尺寸可以在内存转储中)
- First, you need to download and install GIMP
- Next, find your
Bitmap
object in MAT, right-click onmBuffer
field, in the popup menu choose "Copy" -> "Save Value To File" menu item and save value of this array to some file - give extension
.data
to that file - launch GIMP, choose "File" -> "Open", select your
.data
file and click Open button - "Load Image from Raw Data" dialog will appear. Here you need to set correct parameters for your bitmap
- first, choose "Image type" as "RGB Alpha" (most Android resources have this image type, but you may need to experiment with other image types)
- second, set correct Width and Height for your bitmap (correct dimensions can be found in the memory dump)
在这一点上,你应该已经看到原始图像的preVIEW。如果你没有,你可以尝试改变的载入图像原始数据的对话框。
At that point you should already observe preview of original image. If you didn't, you can try to change some other parameters in "Load Image from Raw Data" dialog.
注:获得一个宽的图像和高度,你可以看看 mWidth
和 mHeight
在MAT字段属性部分如图形象的问题。
NOTE: to get a width and height of image you can look at mWidth
and mHeight
fields in MAT in attributes section as shown in image in question.
这篇关于MAT(Eclipse的内存分析器) - 如何看待从内存转储位图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!