【问题标题】:Import library only for debugging导入库仅用于调试
【发布时间】:2017-07-13 09:14:37
【问题描述】:

我正在使用 stetho 库来调试我的应用程序。

分级:

debugCompile 'com.facebook.stetho:stetho:1.4.1'
debugCompile 'com.uphyca:stetho_realm:2.0.0'

应用类:

if (BuildConfig.DEBUG) {
    Stetho.initialize(..);
}

但如果我需要创建一个发布版本,我必须每次评论:

import com.facebook.stetho.Stetho; 
import com.uphyca.stetho_realm.RealmInspectorModulesProvider;

如何向编译器显示这些库仅用于调试? 我们可以在不创建额外类、使用注释或类似的东西的情况下评论两行吗?

【问题讨论】:

  • 我会使用this 方法。
  • 是的,我看到了这个帖子,但我想了解是否有其他可能的方法,例如注释。
  • 创建一个额外的类来评论两行。我认为这不是最好的方法
  • 创建一个额外的类没有什么不好。只需将它隐藏在一些 /utils 垃圾箱中就可以了。

标签: android stetho


【解决方案1】:

让未使用的导入保持原样。您的if (BuildConfig.DEBUG) 方法是完全有效的。坦率地说,这是实现它的最佳方式。

未使用的导入对性能没有影响:reference。编译时间可能会略有增加,但运行时不会增加。

导入语句不会变成字节码。

你需要改变 摇篮:

debugCompile 'com.facebook.stetho:stetho:1.4.1'
debugCompile 'com.uphyca:stetho_realm:2.0.0'

compile 'com.facebook.stetho:stetho:1.4.1'
compile 'com.uphyca:stetho_realm:2.0.0'

【讨论】:

  • 谢谢,这就是我要找的!
  • 即使它没有创建额外的类,它仍然随 release .apk 提供
  • 这样,未使用的导入仍然会影响 apk 大小...如果您不关心它可以,但如果您针对低端设备,它会产生巨大的差异
  • 这不是正确的做法。代码仍将随构建一起提供。也不推荐使用 compile 并且应该将其用作实现
猜你喜欢
  • 2021-05-11
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 2018-12-25
  • 2015-10-09
  • 2017-07-07
  • 2015-04-29
  • 1970-01-01
相关资源
最近更新 更多