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

为什么我的Android应用程序在不同的操作系统版本上分配的内存量大不相同?,android,memory-management,Android,Memory Management,我有一个非常简单的Android应用程序,由一个带有一些文本框的活动和一点处理代码组成 当我将它安装在2.3设备上并第一次打开它时,它会分配大约2.7MB的内存(根据EclipseDDMS中的Heap update选项卡) 在3.1设备上,它分配约6.1MB 在4.0设备上,它分配约13.8MB 我在3个版本之间没有做任何代码更改,这些措施是在应用程序的初始安装/打开时采取的(因此它没有时间做任何泄漏)。它不使用图像,并且没有专门启用硬件加速 有人知道为什么脚印会有这么大的差异吗?我认为这与操作

我有一个非常简单的Android应用程序,由一个带有一些文本框的活动和一点处理代码组成

当我将它安装在2.3设备上并第一次打开它时,它会分配大约2.7MB的内存(根据EclipseDDMS中的Heap update选项卡)

在3.1设备上,它分配约6.1MB

在4.0设备上,它分配约13.8MB

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

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


我已经读到位图分配从3.0开始的变化,导致分配的内存明显增加,但我的应用程序不使用任何图像。它只包含几个EditText字段和TextView。

在本机堆中分配了蜂窝状结构之前的位图。由于Android 3.0(包括ICS),位图的像素数据是在Dalvik堆中分配的。2.3和3.1之间的差异可能就是因为这个原因


ICS使用的内存确实超过了3.1,我不知道原因。

我读过位图,但我的应用程序根本不使用任何图像。它只有一些文本视图和编辑文本字段。虽然我猜这些可以使用操作系统内部的位图渲染?但这并不能解释从3.1到4.0的跳跃。您可以使用内存分析器获取详细信息并比较分配吗?