发布APK前,我需要禁用debugImplementation和releaseImplementation吗?

3

我使用一个名为LeakCanary的库,它允许我查找导致内存泄漏的任何问题。我在gradle中添加了以下引用:

debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.2'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.2'
debugImplementation 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.2'

使用这个库。现在,在为商店创建完整的APK发布之前,我需要注释上述行吗?还是只注释主活动中使用库的那一行就可以了?

谢谢。

1个回答

1

发布版本只包含leakcanary-android-no-op...其中no op表示“无操作”,因此可以假设没有任何副作用,除了将该虚拟包的大小添加到发布版本的包大小之外。这个no op虚拟包只是必需的,否则代码中任何出现LeakCanary的地方都会是未知的。


那么,如果我保留它们,APK 的大小会增加吗? - user9887144
你必须保留 no-op 包,否则你的代码会出问题。这也是为什么该包存在的原因。显然,发布版本的构建通常比调试版本稍小一些。可能只有几千字节,不会太过惊人。或者,你可以完全删除它...包括代码中所有 LeakCanary 类的出现,而删除 releaseImplementation 将导致代码出错。 - Martin Zeitler
如果你真的讨厌构建文件中未使用的依赖关系,那么可以将其删除。实际上,LeakCanary所需的代码不多,只需要一行初始化代码LeakCanary.install(this)和一个refWatcher。所以这取决于你。我建议保留releaseImplementation,这样在开发新版本时会更轻松。 - Kirill Karmazin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接