为什么我的Android应用程序在不同的操作系统版本上分配了大量不同的内存?

mWi*_*lis 5 android memory-management

我有一个非常简单的Android应用程序,包含一个Activity,带有一些文本框和一些处理代码.

当我在2.3设备上安装并首次打开它时,它会分配~2.7MB的内存(根据Eclipse DDMS中的Heap update选项卡).

在3.1设备上,它分配~6.1MB.

在4.0设备上,它分配~13.8MB.

我在3之间没有进行任何代码更改,这些措施是在初始安装/打开应用程序时采取的(因此它没有时间进行任何泄漏).它不使用任何图像,也没有专门启用硬件加速.

有谁知道为什么脚印可能会有这么大差异?我认为它与操作系统版本的差异有关,但我想知道是否有人知道这些差异可能是什么.

我已经读过有关从3.0开始的位图分配的变化导致分配的内存明显增加,但我的应用程序不使用任何图像.它只包含一些EditText字段和TextViews.

Can*_*ner 1

蜂巢之前的位图是在本机堆中分配的。从Android 3.0(包括ICS)开始,位图的像素数据分配在Dalvik堆中。2.3和3.1的区别可能就是因为这个。

ICS确实比3.1使用内存,我不知道其原因。