android中的dalvik堆和本机堆有什么区别?哪一个是固定的。?

时间:2014-06-12 12:53:24

标签: android memory memory-management android-memory

我猜Dalvik堆是固定的Android应用程序。像64MB,96MB等。

是不是?。

如果是这样,本机堆也固定为某种大小?或者会根据应用程序的使用而增长?

任何人都可以帮帮我吗? 感谢。

1 个答案:

答案 0 :(得分:5)

  

我猜Dalvik堆是固定的Android应用程序。像64MB,96MB等   是不是?。

Android为应用提供了特定价值,因为基于Android版本的限制(ActivityManager类的getMemoryClass() API将为您的代码运行的设备提供价值),但供应商调整它以增加它符合他们的要求(例如,在硬件支持更高屏幕分辨率的情况下,因为更大的分辨率将使用更大的位图)。

  

如果是这样,本机堆也固定为某种大小?或者会根据应用程序的使用而增长?

是的,根据使用情况,它没有硬限制。您可以使用设备可用的内存(即总内存 - 其他程序使用的内存)。当Android认为内存不足时,基于许多因素(无论是否在前台,或为某些前台应用提供服务),它都会开始查杀进程。您可以使用android.app.ActivityManager.MemoryInfo获取有关设备内存的更多信息。此外,自Android 3.0以来,应用程序可以请求更大的堆(虽然,除非完全不可避免,否则应该避免使用它)。您可以在清单文件中使用android:largeheap="true"来增加堆大小