gpt4 book ai didi

java - Android内存泄漏的潜在原因

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:58:56 24 4
gpt4 key购买 nike

我正在使用 leakcanery 来查找 Android 中的内存泄漏。我发现并修复了所有 Activity 漏洞。 (很惊讶知道有这么多顺便说一句!)。我还为我所有的 Fragment 添加了 watch refWatcher

问题 1:还有什么我应该注意的,可能会导致明显的内存泄漏吗?

问题 2: 是不是观察 Fragment 泄漏是多余的,因为 Fragment 持有对其 Activity 的引用?无论如何我都会收到通知,对吗? :-/

问题 3: 当我在 android studio 中检查内存监视器时,它显示内存使用量随时间增长。这是一个巨大的内存泄漏的迹象,还是 Android 操作系统很好,它只是给我更多的内存?我怎样才能确定?

最佳答案

Is there anything else that I should watch that may cause a noticeable memory leak?

  • 声明成员字段 static 几乎可以保证内存泄漏。
  • 超出父类生命周期的匿名类,例如 Volley Request,也会产生内存泄漏,因为它们持有对父类 Activity 的隐式引用,并且如果 Activity 在请求调用完成之前消失,则会发生内存泄漏。

Isn't watching Fragment leaks redundant since a Fragment holds a reference to its Activity?

Fragment 不“持有”对Activity 的引用。该引用由 FragmentManager 提供。但框架会在内部对此进行管理,因此您无需担心。

When I check the memory monitor in android studio it shows the memory usage growth over time. Is it a sign of a giant memory leak or Android OS is kind and it is just giving me more memory? How can I find for sure?

应用程序的内存增长是自然的,内存会在垃圾收集器的后续传递中被清理。在具有虚拟机和自动垃圾收集器的语言中,程序员几乎无法控制内存分配。除了造成微小的内存泄漏外,程序员几乎无法搞砸内存管理过程。

关于java - Android内存泄漏的潜在原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30431718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com