【发布时间】:2016-07-25 11:42:03
【问题描述】:
我正在开发我的第一个 Android 应用程序,但它存在内存泄漏。我已经用过 MAT 之类的工具,但我仍然无法找出泄漏的来源。
一些上下文和情况:我的应用中有很多活动。当我反复从 Activity A 到 Activity B 再回到 Activity A 时,使用的内存会不断增加。这发生在我尝试过的所有活动中。
通过MAT泄漏嫌疑人分析(见第一张图片链接),有大量的“android.app.ActivityThread$ActivityClientRecord”,我不知道它是什么。
我对编程很陌生,我研究这个问题好几天了,阅读了几十篇 Stack Overflow 帖子,仍然不知道泄漏来自哪里。
以下是一些 MAT 分析结果的屏幕截图:
几乎所有的活动都共享一些片段
DayTimeFragment(由所有活动共享)
StatusBarFragment(由所有活动共享)
BackButtonFragment(由某些活动共享)
ButtonFragment(由某些活动共享)
【问题讨论】:
-
我发现 LeakCanary (github.com/square/leakcanary) 更易于使用且结果更精确。
标签: java android memory-leaks