在Android模拟器上,当我退出应用程序并立即再次运行时,我得到了
OutOfMemoryError: bitmap size exceeds VM budget.
但是在设备本身,这不会发生。为什么呢?
答案 0 :(得分:15)
在模拟器上,默认的最大堆大小约为13MB。
在设备上,它取决于手机和Android版本。在我的摩托罗拉Droid上,最大堆大小约为21-22MB,而我的HTC Desire则大约为32MB。
这就是您在模拟器上崩溃而不是在设备上崩溃的原因。
如果要监视应用程序的堆大小,可以调用类似的方法:
protected void displayMemoryUsage(String message) {
int usedKBytes = (int) (Debug.getNativeHeapAllocatedSize() / 1024L);
String usedMegsString = String.format("%s - usedMemory = Memory Used: %d KB", message, usedKBytes);
Log.d(TAG, usedMegsString);
}
答案 1 :(得分:13)
在VM选项中增加AVD RAM和最大VM应用程序堆大小。
要做到这一点,请转到
窗口 - > AVD管理器 - >虚拟设备 - >编辑。
答案 2 :(得分:5)
你需要为模拟器增加堆大小 - 它对我有用 我将它从 16 M增加到32 M
答案 3 :(得分:3)
这是一个懒惰的如何从Andriod studio 1.2.0找到操作模拟器的heapsize的选项
答案 4 :(得分:1)
可能是因为你的设备比你的模拟器有更多的内存。 This SO question向您展示了如何增加模拟器的大小。
答案 5 :(得分:0)
增加分配的内存大小......