由于20 +天之后的碎片导致内存不足错误

时间:2018-05-31 12:28:00

标签: android memory out-of-memory fragmentation

我做了一个在咖啡机上运行的应用程序。
过了20多天(根据用途可能会超过60天) 发生OutOfMemoryError:

    java.lang.OutOfMemoryError: Failed to allocate a 604 byte allocation with 16777216 free bytes and 319MB until OOM; failed due to fragmentation (required continguous free 65536 bytes for a new buffer where largest contiguous free 53248 bytes)

我的问题是:
有没有办法以编程方式对内存android应用程序运行碎片整理?

因为机器进入待机或生态模式,所以花费的时间不应成为问题 而我所看到的是有足够的内存可供使用。

1 个答案:

答案 0 :(得分:4)

  

有没有办法以编程方式对内存android应用程序运行碎片整理?

没有。在Android 5.0-7.1上,你可以做的最好的事情是脱离前景,因为ART的垃圾收集器只有当你的应用程序在后台时才能压缩内存。在Android 8.0及更高版本中,即使您处于前台,ART的垃圾收集器也会压缩内存。

除此之外,我的目标是每周开始一次新鲜的过程,这样你就可以获得新鲜的食物。