Android如何分析内存

时间:2013-08-02 05:26:14

标签: android memory-leaks

我在eclipse上使用Android,在测试代码时,我似乎注意到堆增加到44MB。我正在寻找我保持活着的变量,我似乎无法在几天内找到它。在查看堆(DDMS - >堆)时,我得到以下内容:

enter image description here


我尝试点击“转储HPROF文件”作为showed in here,但我没有得到保存文件对话框,我无法对其进行分析。 所以我试图覆盖它,直到我得到一台新电脑..


我在Windows 7上运行Android eclipse。
修改: 问题是我保留的ImageViews;我有两个图像,我通过代码设置资源,图像为0.5MB。我的问题是:是否有可能添加ImageViews而不会增加堆那么多?为什么有2个0.5MB的图像会导致40MB的堆积?

1 个答案:

答案 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.