gpt4 book ai didi

android - 如何增加 Android 2.3 (Gingerbread) 上的堆大小?

转载 作者:行者123 更新时间:2023-11-29 00:16:07 27 4
gpt4 key购买 nike

当我尝试使用 StringBuilder.append() 创建一个大于 4MB 的 String 时出现 OutOfMemoryError。

据我所知,StringBuilder 没有任何大小限制,String 也没有。

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

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

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

最佳答案

Is that assumption correct?

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

What do you do when you're in between VMRuntime and android:largeHeap="true"?

寻找一种内存效率更高的方法来构建您的 4MB String,例如为您的 StringBuilder 构造函数提供大容量。

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

关于android - 如何增加 Android 2.3 (Gingerbread) 上的堆大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26802531/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com