【问题标题】:MAT (Eclipse Memory Analyzer) - how to view bitmaps from memory dumpMAT (Eclipse Memory Analyzer) - 如何从内存转储中查看位图
【发布时间】:2012-09-24 10:43:03
【问题描述】:

我正在借助 Eclipse Memory Analyzer(也称为 MAT)分析我的 Android 应用程序的内存使用情况。有时我可以找到 android.graphics.Bitmap 类的奇怪实例,利用大部分堆。问题是我找不到这个位图的来源,没有 filename,没有 resourceID,什么都没有。我可以为位图找到的所有信息如下:

我假设有一个带有图像像素数组的字段mBuffer。但它是某种内部 Android 格式,而不是 PNG。

问题:如何从内存转储中查看此位图表示的图像?

【问题讨论】:

  • 如果mBuffernull,如何在代码中查看Bitmap的这个成员变量的值?
  • 你是如何显示位图的变量值的?
  • 嗨,伙计。我在我的 MAT Eclipse 中找不到包含有关位图信息的类似窗口。你在哪里找到的?

标签: android bitmap memory-dump hprof eclipse-memory-analyzer


【解决方案1】:

我找到了一种查看此类位图的方法:

  • 首先需要下载安装GIMP
  • 接下来,在 MAT 中找到您的 Bitmap 对象,右键单击 mBuffer 字段,在弹出菜单中选择 “复制” -> “将值保存到文件” 菜单项并将此数组的值保存到某个文件中
  • 为该文件提供扩展名.data
  • 启动 GIMP,选择“文件” -> “打开”,选择您的.data 文件并点击打开按钮
  • “从原始数据加载图像”对话框将会出现。在这里你需要为你的位图设置正确的参数
  • 首先,选择“图像类型”“RGB Alpha”(大多数Android资源都有这种图像类型,但您可能需要尝试其他图像类型)
  • 其次,为您的位图设置正确的WidthHeight(正确的尺寸可以在内存转储中找到)

此时您应该已经观察到原始图像的预览。如果没有,您可以尝试在 “从原始数据加载图像” 对话框中更改一些其他参数。

注意:要获得图像的宽度和高度,您可以查看属性部分中 MAT 中的 mWidthmHeight 字段,如相关图像所示。

【讨论】:

  • 这应该得到更多的支持。这是 Android 开发人员想要的最有用的东西。太棒了!
  • 对我来说,mBuffer 只复制值,而不是字节。 “复制”适用于 byte[xxxxx] 。另外,要明确:宽度 X 高度是平板电脑的规格。例如:我在 amazon hd8,9 上测试了这个操作,我有 1200x1920 。
  • 正如您在帖子中的第一张图片所看到的 - 有两个字段 mWidthmHeight
  • 它在检查器窗口的属性选项卡中。窗口>检查器
  • 对于那些找不到显示mWidth-mHeight的窗口的人,转到Window->Show View->MAT->Inspector。在dominator tree中选择一个对象,在inspector窗口中可以看到height-width。
【解决方案2】:

您可以在命令行上使用 ImageMagick 将内存转储从 MAT 转换为 png。

MAT 中为相关的Bitmap 对象右键单击mBuffer 字段并选择“复制”->“将值保存到文件”,使用.rgba 扩展名命名文件。

您需要注意mWidthmHeight字段中的位图宽度和高度,您可以在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

您可以通过eog 轻松检查生成的png 文件,例如Ubuntu 上的eog phone_decor.rgba

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2012-03-29
    • 2013-04-12
    • 2018-07-02
    • 2018-06-09
    • 2012-03-25
    • 1970-01-01
    相关资源
    最近更新 更多