每个android进程获得多少内存?

use*_*701 11 memory android

我们可以依靠我们的Android应用程序获取一定数量的内存,还是在手机型号或操作系统版本之间有所不同?

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

有没有办法解决这个问题,金额是否会有所变化?

Ale*_*ood 19

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

返回当前设备的近似每应用程序内存类.这可以让您了解应该对应用程序施加的内存限制有多难,以使整个系统最佳运行.返回值以兆字节为单位; 基线Android内存类是16(恰好是这些设备的Java堆限制); 一些具有更多内存的设备可能会返回24或更高的数字.

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