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

时间:2012-03-07 22:28:46

标签: 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。

1 个答案:

答案 0 :(得分:1)

Pre-Honeycomb位图在本机堆中分配。从Android 3.0(包括ICS)开始,位图的像素数据在Dalvik堆中分配。 2.3和3.1之间的差异可能是因为这个原因。

ICS确实使用内存而不是3.1,我不知道它的原因。