Android Studio - 风味可以与其他风味共享代码吗?

Android Studio - Can flavours share code with other flavours?

在我当前的应用程序中,我有 2 个构建,我们称它们为 build 1build 2。我知道两种风格可以共享公共 code/resources 但也可以有单独的代码和资源,如下所示:

我想做的是扩展 build 2 以便它与另一个构建共享一些代码(例如 build 3)。要么共享一些代码,例如:

这将是 build2 和 build 3 共享一些 code/resources,同时还能够拥有自己独特的代码集。 或者:

在这里,build 3 正在扩展 build 2,以便来自 build 2 的所有代码和资源在两个构建中都可用,但 build 3 也可以有自己独特的 code/resources.

我认为扩展 build 2 是最好的方法(如果可能的话),但如果有任何建议或为我指明正确的方向,我将不胜感激。我已经花了 6 个多小时在互联网上搜索,但无济于事。

对此没有很好的支持。如果你真的想这样做,你可以探索一些带有符号链接的 hackery 来尝试使不同的风格有效地共享文件夹,但这会使源代码管理变得有点奇怪,我不能确定它不会引起微妙的问题在构建中。

我鼓励您不要尝试在构建系统中做很多诡计,因为从长远来看 运行 这会使您的应用程序更难编写和维护,尤其是目前 IDE 没有很好的工具来处理跨产品风格的代码(例如,如果您重构代码,则无法将重构应用于非活动产品风格;您一次只能处理一个)。

更好的方法是采用 Build 2Build 3 的共同内容并将其提取到 Android 库模块是那些风格的依赖项,但不是 Build 1 风格的依赖项。不同的产品风格可以有不同的依赖关系,并且支持该机制并且运行良好。