Android 泄漏的金丝雀2:一个人必须手动观察物体吗?

Android 泄漏的金丝雀2:一个人必须手动观察物体吗?,android,memory-leaks,leakcanary,Android,Memory Leaks,Leakcanary,我刚刚在我的应用程序build.gradle中添加了泄漏金丝雀2,如中所述: 现在,当我运行我的应用程序并检查日志时,我可以找到 2020-03-22 18:20:31.858 2401-2401/? D/LeakCanary: Installing AppWatcher 所以安装成功了 但这就是我需要的一切吗?或者我还必须使用AppWatcher.objectWatcher.watch手动监视对象吗?我不清楚。目前没有任何问题是由LeakCanary向我报告的,但我怀疑我做的每件事都那么完美

我刚刚在我的应用程序
build.gradle
中添加了泄漏金丝雀2,如中所述:

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

2020-03-22 18:20:31.858 2401-2401/? D/LeakCanary: Installing AppWatcher
所以安装成功了


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

事实上,就是这样!或者根据文件,就是这样

就是这样,不需要更改代码!你可以证实 LeakCanary在启动时通过过滤中的LeakCanary标记运行 日志:

D LeakCanary:安装AppWatcher


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

确实如此!或者根据文件,就是这样

就是这样,不需要更改代码!你可以证实 LeakCanary在启动时通过过滤中的LeakCanary标记运行 日志:

D LeakCanary:安装AppWatcher

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

是和否

是的,它将自动检测泄漏的
活动
片段
片段
视图(从片段的
onCreateView方法返回的
视图
)和
视图模型
实例(根据for
配置
和for
androidxFragmentDestroytWatcher
),无需手动观察这些对象

不,它不会自动检测任何其他对象的泄漏实例。对于这些,您需要手动监视它们。例如,文档中的这一部分描述了如何让LeakCanary监视泄漏的
服务
实例

还请注意,如果应用程序可见,则在检测到5个保留对象之前,它不会触发堆转储。将应用程序置于后台会立即触发转储,但同时会显示通知。

是和否

是的,它将自动检测泄漏的
活动
片段
片段
视图(从片段的
onCreateView方法返回的
视图
)和
视图模型
实例(根据for
配置
和for
androidxFragmentDestroytWatcher
),无需手动观察这些对象

不,它不会自动检测任何其他对象的泄漏实例。对于这些,您需要手动监视它们。例如,文档中的这一部分描述了如何让LeakCanary监视泄漏的
服务
实例


还请注意,如果应用程序可见,则在检测到5个保留对象之前,它不会触发堆转储。将应用程序置于后台会立即触发转储,但同时会显示通知。

谢谢!您能否解释如何访问泄漏活动?你所说的应用程序快捷菜单是什么意思?它将显示为一个通知,或者如果你按住应用程序快捷键(启动程序图标)打开快捷菜单,你可以用这种方式打开泄漏金丝雀。谢谢!您能否解释如何访问泄漏活动?你所说的应用程序快捷菜单是什么意思?它将显示为一个通知,或者如果你按住应用程序快捷键(启动程序图标)打开快捷菜单,你可以用这种方式打开“泄漏金丝雀”。很好的问题(和很好的回答)。我正在更新文档以使这一点更加清楚:好问题(和好回答)。我正在更新文档,以便更清楚地说明这一点:
2020-03-22 18:20:31.858 2401-2401/? D/LeakCanary: Installing AppWatcher