区分Android应用程序的调试和生产版本

Bar*_*Rho 9 java debugging android maven

我最近开始学习Android应用开发.这也是我第一次使用Java语言.

我希望以Java包依赖的形式将一些调试工具合并到我的应用程序开发中.出于显而易见的原因,我想仅将其包含在调试版本中.

在iOS中,我们可以使用构建配置仅与调试版本链接调试库,并使用宏来删除处理调试的部分代码.这使得在调试和生产版本之间切换变得非常容易.无论如何为Android实现同样的目标?

到目前为止,我得到的最接近的是使用Maven配置文件覆盖应用程序加载的属性文件,但这需要仍然导入调试库.


为了澄清我的问题,这就是我想要做的:我构建了一个库,可以让你在浏览器上浏览SQLite数据库.它对于调试非常有用,但我不想将我的应用程序与库一起发送.

另一个目的是使用HockeyApp.HockeyApp提供两个功能:更新通知和崩溃报告.我需要三个不同的构建才能工作:

  • 生产:崩溃报告开,更新通知关闭
  • Beta:两者都在
  • 调试:两者都关闭

Ste*_*zyk 1

除了 Maven 之外,一种方法是使用像Dagger这样的依赖注入器

通过构建标准 javax.inject 注释 (JSR-330),每个类都易于测试。您不需要一堆样板文件来将 RpcCreditCardService 替换为 FakeCreditCardService。

依赖注入不仅仅用于测试。它还可以轻松创建可重复使用、可互换的模块。您可以在所有应用程序之间共享相同的 AuthenticationModule。您可以在开发期间运行 DevLoggingModule,在生产中运行 ProdLoggingModule,以便在每种情况下获得正确的行为。