我leakcanery
用来查找Android中的内存泄漏。我发现并修复了所有Activity
泄漏。(惊讶地知道有这么多BTW!)。我还refWatcher
为我Fragment
的所有手表添加了手表。
问题1:还有什么我应该注意的,可能导致明显的内存泄漏?
问题2:Fragment
由于aFragment
拥有对它的引用,因此监视泄漏不是多余的Activity
吗?我仍然收到通知,对不对?:-/
问题3:当我检查android studio中的内存监视器时,它显示内存使用量随时间增长。这是一个巨大的内存泄漏的迹象,还是Android OS很好,只是给了我更多的内存?我如何确定?
还有什么我应该注意的,可能导致明显的内存泄漏?
static
几乎可以保证内存泄漏。Request
)也会产生内存泄漏,因为它们持有对父级的隐式引用Activity
,如果Activity
在请求调用完成之前将其删除,则会发生内存泄漏。
Fragment
因为aFragment
拥有对它的引用,所以不是看着泄漏是多余的Activity
吗?
AFragment
不会“持有”对的引用Activity
。参考由提供FragmentManager
。但是该框架在内部进行管理,因此您无需担心。
当我检查android studio中的内存监视器时,它显示内存使用量随时间增长。这是一个巨大的内存泄漏的迹象,还是Android OS很好,只是给了我更多的内存?我如何确定?
应用程序的内存增长是自然而然的,并且在后续垃圾回收器通过时会清除内存。在具有虚拟机和自动垃圾收集器的语言中,程序员几乎无法控制内存分配。除了造成微小的内存泄漏外,程序员几乎无法做任何事情来破坏内存管理过程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句