android - 如何在 Android 应用程序中删除/丢弃 "free"ram 使用

标签 android eclipse ram

我的应用程序使用的 RAM 有问题,因为它使用了大量 RAM。在诊断使用情况时,看到超过一半的 ram 是免费的或说是免费分配的,我感到非常震惊。这是预览

enter image description here

所以我想摆脱 RAM 的负担,它是免费的。我用谷歌搜索了它,但我认为没有关于这个问题的好帖子..

提前致谢!

最佳答案

如果您删除堆中的所有可用空间,那么下一刻您将出现 OutOfMemoryError

堆中的一些空间必须始终空闲,以便操作系统可以在您继续运行应用程序时利用它来分配内存。如果您删除所有可用空间,那么操作系统将无法为您的变量分配内存,并且您的应用程序将因 OOM 而崩溃。

与其尝试释放空白空间,不如在退出 Activity 时专注于释放已用空间。确保您的 Activity 中没有留下任何悬空引用,因为这会导致内存泄漏并且堆大小不断增加,直到系统无法再分配并且您的应用程序崩溃。尝试删除对图像的引用并删除任何对回调的监听器(如果已设置)。基本上,尝试减少 Activity 的内存占用。

理想状态是 Activity 在被销毁后立即释放它正在使用的所有空间。例如,您有一个 1 字节的 14 MB 数组,它们基本上是存储在内存中的位图,因为您可能在某处留下了对它们的引用。

关于android - 如何在 Android 应用程序中删除/丢弃 "free"ram 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28124815/

相关文章:

android - 无法识别 ViewEventActivity.class

linux - TortoiseSVN,如何撤消上次操作?

python - 如何使用 Python 3 在 MacOS 上获取 RAM 制造商?

android - Android 文件系统中的 GPU 和 RAM 频率

java - 减少 IntelliJ IDEA 内存使用的方法?

Android - "Resources don' t 包含资源编号包”

android.widget.ScrollView.addView 处的 java.lang.IllegalStateException

android - 对话框中的 onTouchEvent

python - Virtualenv 与 Eclipse(伽利略)

eclipse - 将 Eclipse 命令绑定(bind)/绑定(bind)到 swt 按钮