八个造成 Android 应用内存泄露的原因
诸如 Java 这样的 GC (垃圾回收)语言的一个好处就是免去了开发者管理内存分配的必要。这样降低了段错误导致应用崩溃或者未释放的内存挤爆了堆的可能性,因此也能编写更安全的代码。不幸的是,Java 里仍有一些其他的方式会导致内存“合理”地泄露。最终,这意味着你的 Android 应用可能会浪费一些非必要内存,甚至出现 out-of-memory (OOM) 错误。
传统的内存泄露发生的时机是:所有的相关引用已不在域范围内,你忘记释放内存了。另一方面,逻辑内存的泄漏,是忘记去释放在应用中不再使用的对象引用的结果。如果对象仍然存在强引用(译者注:这里可以去关注下 Java 的弱引用),GC 就无法从内存中回收对象。这在 Android 开发中尤其是个大问题:如果你碰巧泄露了 Co