Android如何分析内存

Android如何分析内存,android,memory-leaks,Android,Memory Leaks,我在eclipse上使用Android,在测试代码时,我似乎注意到堆增加到44MB。我正在寻找我一直存在的变量,但我似乎有几天找不到它。在查看堆(DDMS->heap)时,我得到以下结果: 我尝试单击“Dump HPROF file”(转储HPROF文件)作为,但没有获得“保存文件”对话框,也无法对其进行分析。 所以我试图覆盖它,直到我得到一台新电脑 我正在Windows 7上运行Android eclipse。 编辑: 问题是我保存的图像视图;我有两个图像,我通过一个0.5MB图像的代码设置

我在eclipse上使用Android,在测试代码时,我似乎注意到堆增加到44MB。我正在寻找我一直存在的变量,但我似乎有几天找不到它。在查看堆(DDMS->heap)时,我得到以下结果:


我尝试单击“Dump HPROF file”(转储HPROF文件)作为,但没有获得“保存文件”对话框,也无法对其进行分析。 所以我试图覆盖它,直到我得到一台新电脑


我正在Windows 7上运行Android eclipse。
编辑:
问题是我保存的图像视图;我有两个图像,我通过一个0.5MB图像的代码设置资源。我的问题是:是否可以添加ImageView而不增加堆那么多?为什么两个0.5MB的图像会导致40MB的堆增长?

为了回答您的问题,您的“0.5MB”图像可能被压缩了。最有可能是Jpeg或PNG

一旦它们被解码,那就无关紧要了。重要的是图像的尺寸和使用的位图格式。Android中典型的位图是ARGB_8888,即每像素32位(4字节)

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

这是
1600*1200*4=15360000
,或者每个图像约15MB


在大多数情况下,移动设备上不需要那么大的图像。我不知道你的应用程序,但如果你不需要那么大的应用程序,你应该查看一下

对我来说背景图像占用了很多内存,因为第一步尝试删除,你应该在10米以下,没有口哨和响铃。该线程应该能够引导你正确的方向