泄漏的内存,并在应用程序终止后释放所有内存资源



一旦Android应用程序终止(由用户或操作系统关闭),泄漏的内存和所有其他内存资源是否会被释放?还是我们需要手动完成?在 android 中跟踪和处理内存问题的最佳方法是什么?

应用程序不再使用某些对象的情况下发生内存泄漏,但 GC 无法将它们识别为未使用。

GC 由 JVM 定期自动完成。

安卓应用程序只能由操作系统终止。 (至少是安全的)

如果应用程序被用户关闭,它仍然在后台运行,一旦操作系统决定需要关闭应用程序,无论是释放一些内存还是应用程序堆栈已满,它将终止应用程序并释放内存。

如果应用程序终止,则会释放应用程序使用的所有资源。

99.9%的时间你不需要在Android上调用垃圾回收。操作系统会自行处理。手动调用 GC 可能会造成更大的危害

在某些情况下,内存会泄漏,但在这些情况下有一些解决方法可以处理内容。

如果进程终止,则为"是",但这并不经常发生。Android 旨在将进程保持在后台,以便在用户想要返回您的应用时快速启动它们。

不应依赖终止应用来修复某些内存泄漏。有一些工具可以修复它们,例如转储HPROF文件和使用内存分析器,也使用弱引用,并使用良好的编程实践 - 大多数不会泄漏活动。

[编辑] - 有些资源并不总是在进程端释放,在使用 android TTS API 时,我发现在几次应用程序崩溃后,我必须重置设备才能使用 svox 语音。

最新更新