2013-08-02 31 views
2

我在Eclipse上使用Android并在测试代码的同时,我似乎注意到堆提高到44MB。我正在寻找我保持活力的变量,而且似乎无法在几天内找到它。虽然看在堆(DDMS - >堆)我得到以下几点:Android如何分析内存

enter image description here


我试着点击“转储文件HPROF”为showed in here,但我不明白的保存文件对话框,我无法分析它。 所以我试图重写它,直到我得到一台新电脑..


我在Windows上运行Android蚀7
编辑: 的问题是ImageViews我保持;我有两张图片,我通过代码以0.5MB的图片设置资源。我的问题是:是否有可能添加ImageViews而不增加堆?以及0.5MB的2张图像如何导致40MB堆增长?

+1

对我来说背景图片花了很多内存,第一步试着去掉,你应该是10米以下没有口哨和钟声 – 2013-08-02 05:34:47

+0

此线程http://stackoverflow.com/q/3112671/1321873应该能够引导你正确的方向 – Rajesh

回答

1

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

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

这意味着对于每个像素(w * h),它需要4个字节的空间。看最大尺寸(〜15MB),它看起来像你的图像可能是大约1600x1200,或约200万像素。

这就是1600 * 1200 * 4 = 15360000,或每个图像~15MB。

对于大多数情况,您不需要在移动设备上显示较大的图像。我不知道你的应用程序,但如果你不需要需要那么大,你应该看看Loading Large Bitmaps Efficiently.