当我尝试创建一个时出现 OutOfMemoryErrorString
大于 4MB 使用StringBuilder.append()
.
据我所知,StringBuilder
没有任何关于大小的限制,所以没有String
.
所以我搜索了“如何增加 Android 堆大小”,据我所知这个答案 https://stackoverflow.com/questions/11275650/how-to-increase-heap-size-of-an-android-application and 这个答案 https://stackoverflow.com/questions/7598835/alternative-of-vmruntime-getruntime-setminimumheapsize-in-gingerbread,Gingerbread 是唯一无法处理堆大小的版本,因为对于早期版本,您使用 VMRuntime 类,而对于较新版本android:largeHeap="true"
在清单上。
这个假设正确吗?当你在 VMRuntime 和 VMRuntime 之间时你会做什么android:largeHeap="true"
?
I used Runtime.getRuntime().totalMemory()/1048576 - Runtime.getRuntime().maxMemory()/1048576
在我用于测试的设备(Android 2.3.6)上获得“5.00 MB 分配的 42.00 MB 可用空间”。
这个假设正确吗?
我不能说是否VMRuntime
曾经工作过。android:largeHeap
绝对是 API 级别 11+ 的东西。
当你处于 VMRuntime 和 android:largeHeap="true" 之间时,你会做什么?
找到一种更节省内存的方式来构建 4MBString
,例如通过为您提供大容量StringBuilder
构造函数。
或者,找到一种方法来实现您正在执行的任何操作,而无需创建连续的 4MBString
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)