我猜Dalvik堆是固定的Android应用程序。像64MB,96MB等。
是不是?。
如果是这样,本机堆也固定为某种大小?或者会根据应用程序的使用而增长?
任何人都可以帮帮我吗? 感谢。
答案 0 :(得分:5)
我猜Dalvik堆是固定的Android应用程序。像64MB,96MB等 是不是?。
Android为应用提供了特定价值,因为基于Android版本的限制(ActivityManager类的getMemoryClass()
API将为您的代码运行的设备提供价值),但供应商调整它以增加它符合他们的要求(例如,在硬件支持更高屏幕分辨率的情况下,因为更大的分辨率将使用更大的位图)。
如果是这样,本机堆也固定为某种大小?或者会根据应用程序的使用而增长?
是的,根据使用情况,它没有硬限制。您可以使用设备可用的内存(即总内存 - 其他程序使用的内存)。当Android认为内存不足时,基于许多因素(无论是否在前台,或为某些前台应用提供服务),它都会开始查杀进程。您可以使用android.app.ActivityManager.MemoryInfo
获取有关设备内存的更多信息。此外,自Android 3.0以来,应用程序可以请求更大的堆(虽然,除非完全不可避免,否则应该避免使用它)。您可以在清单文件中使用android:largeheap="true"
来增加堆大小