首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LeakCanary 2:手动监视对象吗?

LeakCanary 2:手动监视对象吗?
EN

Stack Overflow用户
提问于 2020-03-22 17:24:36
回答 2查看 1K关注 0票数 2

我刚刚将泄漏金丝雀2添加到我的应用程序build.gradle中,如官方文件中所描述的

代码语言:javascript
复制
dependencies {
  // debugImplementation because LeakCanary should only run in debug builds.
  debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.2'
}

现在,当我运行我的应用程序并检查logcat时,我可以找到

代码语言:javascript
复制
2020-03-22 18:20:31.858 2401-2401/? D/LeakCanary: Installing AppWatcher

所以安装成功了。

但这就是我所需要的一切吗?或者,我还必须使用AppWatcher.objectWatcher.watch手动监视对象吗?对我来说还不清楚。目前没有问题是由LeakCanary向我报告,但我怀疑我所做的一切都是完美的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-22 17:54:20

是也不是。

是的,它将自动检测泄漏的ActivityFragmentFragment视图(从片段的onCreateView方法返回的View )和ViewModel实例( 文档 for Config来源 for AndroidXFragmentDestroyWatcher),而不需要手动监视这些对象。

不,它不会自动检测到任何其他对象的泄漏实例。对于这些,你需要手动观察它们。例如,文档中的这个食谱描述了如何让LeakCanary监视泄漏的Service实例。

还请注意,如果应用程序是可见的,它将不会触发堆转储,直到它检测到5个保留的对象。将应用程序放在后台将触发转储立即发生,但同时它将显示一个通知(博士)

票数 3
EN

Stack Overflow用户

发布于 2020-03-22 17:35:14

的确,就是这样!或者根据医生的说法就是这样!

就是这样,根本不需要修改代码!您可以通过对Logcat中的LeakCanary标记进行筛选来确认LeakCanary在启动时运行: D LeakCanary: Installing AppWatcher

我在生产项目中使用了LeakCanary (在开发期间)。在与LC一起使用应用程序一段时间之后,您将得到一个显示使用结果的通知。如果您错过了该通知,那么您可以从应用快捷菜单中打开泄漏活动。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60802584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档