2

我在 Eclipse 上使用 Android,在测试代码时,我似乎注意到堆增加到 44MB。我正在寻找我保持活力的变量,但我似乎几天都找不到它。在查看堆(DDMS -> Heap)时,我得到以下信息:

在此处输入图像描述


我尝试单击此处显示的“转储 HPROF 文件” ,但没有得到保存文件对话框,也无法分析它。所以我试图覆盖它,直到我得到一台新电脑..


我在 Windows 7 上运行 Android Eclipse。
编辑: 问题是我保留的 ImageView;我有两张图片,我通过代码设置资源,图片大小为 0.5MB。我的问题是:是否可以在不增加那么多堆的情况下添加 ImageViews?为什么 2 张 0.5MB 的图像会导致 40MB 的堆增长?

4

1 回答 1

1

要回答您编辑的问题,您的“0.5MB”图像可能已被压缩。Jpeg 或 PNG,最有可能。

一旦他们被解码,这并不重要。那么重要的是图像的尺寸和使用的位图格式。Android 中的典型位图是ARGB_8888,即每像素 32 位(4 字节)。

这意味着对于每个像素(w*h),它需要 4 个字节的空间。查看最大尺寸(~15MB),看起来您的图像可能约为 1600x1200,或约 2MP。

1600 * 1200 * 4 = 15360000, 或每张图像约 15MB。

对于大多数事情,您不应该在移动设备上需要这么大的图像。我不知道你的应用程序,但如果你不需要那么大,你应该看看有效地加载大位图。

于 2013-08-05T17:29:55.573 回答