Android中的可用RAM

时间:2019-10-29 22:16:47

标签: android ram

我想知道一些简单的代码,这些代码可以释放不再需要的已用内存,就像许多释放内存的应用程序一样。

是的,我知道这不是必需的,因为Android可以自行管理内存,但是看起来导致我的应用程序发生异常行为的原因是打开的应用程序占用了大量内存,所以我认为这是值得尝试的,并检查错误是否再次发生。

有人可以给我这样的代码吗?我找不到任何东西。

1 个答案:

答案 0 :(得分:1)

我从本文中收集到的是,您不需要做任何事情来回收内存,但是您可以使垃圾回收在特定的时间更快地进行。对我而言,这意味着完成操作后,应将所有数组,列表,大对象等设置为null。当然,当您离开方法或视图时,此操作应自动完成,但是如果您处于长时间运行的循环中或停留在有大量数据的页面上,则可以更快地对其进行清理。

  

Android运行时(ART)和Dalvik虚拟机使用分页和内存映射(映射)来管理内存。这意味着应用程序修改的任何内存(无论是通过分配新对象还是触摸映射的页面)都驻留在RAM中,无法分页。从应用程序释放内存的唯一方法是释放该应用程序持有的对象引用,从而使内存可用于垃圾回收器。这是一个例外:如果系统要在其他地方使用该内存,则可以将未经修改而映射的任何文件(例如代码)都可以调出RAM。

https://developer.android.com/topic/performance/memory-overview

您还可以检查内存使用情况,以查看是否确实存在此问题。这是上面文章中的链接,但是我想我将它弹出,这样更容易注意到。

https://developer.android.com/reference/android/app/ActivityManager.html#getMemoryClass()