我正在为 Android 2.2 及更高版本开发图形密集型应用程序。
我知道从 Honeycomb 开始,位图存储在 VM_HEAP 而不是它们的本机位图堆上。
这会影响我的应用程序的有效内存使用吗?我的意思是,例如,如果我的用于预蜂窝设备的应用程序使用 X MB 的 VM 堆,并且有 Y MB 位图(存储在本机堆上),那么我希望它不会开始使用 VM 堆中的 X+Y MB如果它安装在 Honeycomb 或更新的设备上。
这听起来不合逻辑。相反,我猜位图大小甚至在 Honeycomb 之前就已计入 VM 限制,否则为什么会出现“位图大小超出 VM 预算”错误?因此它们存储在其本机堆上,但仍计入 VM_HEAP 大小最大值)。