我在eclipse上使用Android,在测试代码时,我似乎注意到堆增加到44MB。我正在寻找我保持活着的变量,我似乎无法在几天内找到它。在查看堆(DDMS - >堆)时,我得到以下内容:
我尝试点击“转储HPROF文件”作为showed in here,但我没有得到保存文件对话框,我无法对其进行分析。
所以我试图覆盖它,直到我得到一台新电脑..
我在Windows 7上运行Android eclipse。
修改:
问题是我保留的ImageViews;我有两个图像,我通过代码设置资源,图像为0.5MB。我的问题是:是否有可能添加ImageViews而不会增加堆那么多?为什么有2个0.5MB的图像会导致40MB的堆积?
答案 0 :(得分:1)
要回答您的编辑问题,您的“0.5MB”图片可能会被压缩。最有可能的是Jpeg或PNG。
一旦解码就无所谓了。重要的是图像的尺寸和使用的位图格式。 Android中的典型位图是ARGB_8888
,每个像素为32位(4字节)。
这意味着对于每个像素(w * h),它需要4个字节的空间。查看最大尺寸(~15MB),看起来您的图像可能大约为1600x1200,或大约为2MP。
每张图片都是1600 * 1200 * 4 = 15360000
或大约15MB。
对于大多数情况,您不应该需要移动设备上的大图像。我不知道你的应用程序,但是如果你不需要它那么大,你应该看看Loading Large Bitmaps Efficiently.