【问题标题】:how to set heap size to minimum when application was closed关闭应用程序时如何将堆大小设置为最小
【发布时间】:2013-01-20 14:55:16
【问题描述】:

我正在开发一个 android 应用程序,它使用更多分辨率约为 640*960 的图像。所有这些图像都加载了具有适当比例因子的位图。

当我加载 bitmpas 时,堆大小正在增加,即使我正在回收 bitmpas,它也不会减少。正如我读到的关于这个问题的理论很少,最大值说一旦堆增加它就不会减少。

我的问题是如果我在堆大小为 10MB 时关闭我的应用程序,而当我重新打开应用程序堆时从 10Mb 开始。它会导致 VM 超过最大堆内存,然后在一段时间后内存不足。

我必须为此做些什么,我保证如果没有回收位图,我的应用程序永远不会关闭。

谁能建议我如何最小化堆内存并解决这个OOM。

【问题讨论】:

标签: android bitmap out-of-memory heap-memory


【解决方案1】:

即使我遇到了同样的问题....您可以参考此链接以有效加载位图http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

一旦堆大小超过垃圾收集器运行的限制......它会清理任何不需要的对象。所以最好不要调用垃圾收集器,因为它会自动运行。

在 API 级别 11+ 上运行的应用程序可以在清单中的元素上使用 android:largeHeap="true" 以请求大于正常的堆大小

在您的活动中的 onCreate 方法中,您可以使用这个(我没有尝试过) dalvik.system.VMRuntime.getRuntime().setMinimumHeapSize(yournumberhere);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2018-04-14
    • 1970-01-01
    • 2011-01-16
    • 2018-03-14
    • 1970-01-01
    • 2010-12-03
    相关资源
    最近更新 更多