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
Run Code Online (Sandbox Code Playgroud)
例如
convert -size 680x1209 -depth 8 phone_decor.rgba phone_decor.png
Run Code Online (Sandbox Code Playgroud)
您可以通过查看生成的PNG文件EOG,像eog phone_decor.rgba
上Ubuntu
容易.
归档时间: |
|
查看次数: |
10351 次 |
最近记录: |