Hit*_*sit 48 android memory-dump bitmap hprof eclipse-memory-analyzer
我在Eclipse Memory Analyzer(也称为MAT)的帮助下分析了我的Android应用程序的内存使用情况.有时我可以找到奇怪的android.graphics.Bitmap类实例,利用大部分堆.问题是我找不到这个位图的来源,没有文件名,没有resourceID,什么都没有.我能找到的关于位图的所有信息如下:

mBuffer我假设有一个带有图像像素阵列的场.但它采用的是一些内部Android格式,而不是PNG.
问题:如何从内存转储中查看此位图表示的图像?
Hit*_*sit 123
我找到了查看这些位图的方法:
Bitmap在MAT中找到您的对象,右键单击mBuffer字段,在弹出菜单中选择"复制" - > "将值保存到文件"菜单项,并将此数组的值保存到某个文件中.data该文件扩展名.data文件,然后单击打开按钮此时您应该已经观察过原始图像的预览.如果没有,您可以尝试更改"从原始数据加载图像"对话框中的其他一些参数.
注:获得的宽度和图像的高度,你可以看看mWidth和mHeight领域在MAT中的属性部分中的问题显示在图像.
您可以在命令行上使用ImageMagick将内存转储从MAT转换为png .
在MAT相关Bitmap对象右键单击mBuffer字段并选择"复制" - >"将值保存到文件",将文件命名为.rgba扩展名.
您需要注意位图宽度和高度mWidth以及mHeight字段,您可以在Bitmap对象中看到它们.
有ImageMagick安装(Ubuntu的命令行工具apt-get install imagemagick),您发出convert以下参数的命令.
convert -size 'width'x'height' -depth 8 filename.rgba filename.png
例如
 convert -size 680x1209 -depth 8 phone_decor.rgba phone_decor.png
您可以通过查看生成的PNG文件EOG,像eog phone_decor.rgba上Ubuntu容易.
| 归档时间: | 
 | 
| 查看次数: | 10351 次 | 
| 最近记录: |