【发布时间】:2018-08-06 23:59:40
【问题描述】:
largeHeapSize = true 将堆大小增加到 64 mb。但我的应用程序需要超过 64 mb 的内存。我已经搜索并没有找到任何解决方案。我在 android 开发者网站上有 this。这适用于我的情况还是更合适?
【问题讨论】:
标签: java android heap-memory android-memory heap-size
largeHeapSize = true 将堆大小增加到 64 mb。但我的应用程序需要超过 64 mb 的内存。我已经搜索并没有找到任何解决方案。我在 android 开发者网站上有 this。这适用于我的情况还是更合适?
【问题讨论】:
标签: java android heap-memory android-memory heap-size
largeHeap = "true" 不会将堆大小增加到或增加 64 MB:
大多数应用不应该需要这个,而是应该专注于减少整体内存使用以提高性能。 启用此功能也不能保证可用内存的固定增加,因为某些设备受到其总可用内存的限制。(source,强调我的)。
这意味着使用 largeHeap 标志只会告诉 Android 您的应用是内存密集型的并且需要更大的堆。在某些设备上,这意味着它可以获得 200-300 MB,而在其他设备上则为 50 MB。这取决于可用内存。
另外,你的应用获得的内存是由系统决定的,所以你不能手动设置。 Android 上没有 Xmx 标志或类似标志。 `
TL;DR:您不能像在桌面 Java 上那样指定特定的堆大小。使用largeHeap 不会为您的应用程序提供固定数量的内存;这取决于设备和可用内存。并且尽可能节省内存,而不是像largeHeap 的文档所说的那样请求更多内存 (Most apps should not need this and should instead focus on reducing their overall memory usage for improved performance)
【讨论】: