如何在Android 2.3(Gingerbread)上增加堆大小?

时间:2014-11-07 13:38:09

标签: android out-of-memory heap-memory android-2.3-gingerbread

当我尝试使用String创建大于4MB的StringBuilder.append()时,我收到OutOfMemoryError。

据我所知,StringBuilder对尺寸没有任何限制,因此不String

所以我搜索了“如何增加Android堆大小”,就我从this answerthis answer得出的结论而言,Gingerbread是唯一一个你无法处理的问题。堆大小,因为对于早期版本,您使用VMRuntime类以及Manifest上的较新版本android:largeHeap="true"

这个假设是否正确?当您处于VMRuntime和android:largeHeap="true"之间时,您会怎么做?

我使用Runtime.getRuntime().totalMemory()/1048576 - Runtime.getRuntime().maxMemory()/1048576在我用于测试的设备(Android 2.3.6)上获得“5.00 MB分配的42.00 MB可用空间”。

1 个答案:

答案 0 :(得分:2)

  

这个假设是否正确?

我不能说VMRuntime是否有效。 android:largeHeap绝对适用于API Level 11 +。

  

你在VMRuntime和android之间做什么:largeHeap =" true"?

找到一种更节省内存的方法来构建4MB String,例如为StringBuilder构造函数提供大容量。

或者,找到一种方法来实现您正在做的任何事情而不创建连续的4MB String