如何在Android Gradle中编译时禁用模块?

时间:2016-01-18 08:16:03

标签: android gradle android-gradle build.gradle

我的单模块应用程序变得非常繁重,调试变得很麻烦。由于我一次只处理app的一小部分,因此大多数功能在调试期间都没用,我决定将我的应用程序拆分为模块。

目标是拥有一个轻量级的“应用”模块和多个“功能-N”模块。在我的'settings.gradle'中,我想只启用我正在处理的'app'和功能模块,忽略其余部分,直到我去发布版本。

所以我为每个功能想出了一个界面。问题是在哪里放置它们。

  1. 如果我将接口放在单独的模块中,那么'app'模块将引用所有'feature'模块;因此禁用'settings.gradle'中的任何模块都会破坏编译。只有解决方法似乎是为未使用的接口注释掉代码,这在大型项目中是不可行的,因为代码是分散的。
  2. 如果我将接口放在'app'模块中,那么实现将在'feature'模块中,我可以添加运行时检查以防止崩溃。这就是我要的。但现在依赖关系被颠倒了 - 'feature'模块依赖于'app'模块;并且gradle不允许这样做。
  3. 另一种解决方案是强制禁用所有未使用的功能模块的组装任务,这有​​助于我加快构建速度;但由于我的APK大小很大,上传到设备仍需要20秒。
  4. 我已经尝试了几乎所有的gradle技巧来加速我的构建而没有重大改进,所以我希望得到我原始查询的答案。

0 个答案:

没有答案