布局中的内存分配

时间:2012-07-20 04:26:38

标签: java android memory-management

在我的项目中,我有一个由单个XML布局组成的简单活动(由setContentView启用)。该项目还有其他活动。

布局基本上由两个.jpg图像组成。第一个是25kB,是400x153像素。第二个是4kB,是150x50像素。

尽管有这么简单的上下文,DDMS告诉我我的程序分配了13MB,我认为这是巨大的,因为我只加载了两个小图像,并且某些设备的每个程序最大堆大小为16MB

在这种布局中堆是如此之大是正常的吗?

编辑:HProf转储:

  

问题疑似1:   由“”加载的类“android.content.res.Resources”占用9,429,232(70.39%)个字节。内存累积在由“”加载的“java.lang.Object []”的一个实例中。

     

问题疑似2:   “android.graphics.Bitmap”的3个实例,由“”加载占用2,147,960(16.03%)个字节。

Biggest instances:
•android.graphics.Bitmap @ 0x41407b98 - 1,048,648 (7.83%) bytes. 
•android.graphics.Bitmap @ 0x4169e6a0 - 979,256 (7.31%) bytes. 

我无法解释这一点。但似乎我的其他资源正在装载前? (在我进入他们各自的活动之前?)

1 个答案:

答案 0 :(得分:0)

如果你说这是你的所有程序都试图做的,那么这是正常的。位图确实占用了大量内存。尝试优化您的图像,这绝对可以帮助您减少应用程序的内存占用。在创建背景时考虑9补丁图像。