11

我们是否可以依靠我们的 Android 应用程序获得一定数量的内存,或者它是否因手机型号或操作系统版本而异?

例如,我有一个内存缓存,我将其限制设置为 5 MB。如果在一台设备上,我的应用程序只能使用 8 MB 内存,而在另一台设备上,24 MB,我想调整内存缓存的上限以利用更多或更少的内存。

有什么办法可以解决这个问题,金额甚至会有所不同吗?

4

2 回答 2

19

是的,最大堆大小因设备而异。您可以通过调用来检查设备的每个应用程序的大致内存类getMemoryClass()

返回当前设备的每个应用程序的近似内存类。这让您了解应该对应用程序施加多大的内存限制才能让整个系统发挥最佳作用。返回值以兆字节为单位;基准 Android 内存类是 16(恰好是这些设备的 Java 堆限制);某些具有更多内存的设备可能会返回 24 甚至更高的数字。

更改应用程序堆大小的唯一内置方法是android:largeHeap="true"AndroidManifest.xml. 这通常会将堆大小从 48 增加到 128。请记住,这种方法仅适用于 3.x 平板电脑。否则,您将需要一个有根设备,这显然不是您作为开发人员想要依赖的东西。

于 2012-05-25T01:03:21.487 回答
0

它可以帮助你

16 MB 是任何给定 android 应用程序的最大内存限制。一些第二代手机将为每个进程返回 24 MB 甚至更多的内存。

android中每个进程或应用程序的最大内存限制是多少?

于 2014-09-25T12:45:06.563 回答