在我当前的应用程序中,我有 2 个构建,我们称它们为 build 1
和 build 2
。我知道两种风格可以共享公共(public)代码/资源,但也可以有单独的代码和资源,如下所示:
我想做的是扩展 build 2
以便它与另一个构建共享一些代码(例如 build 3
)。要么共享一些代码,例如:
这将是 build2 和 build 3 共享一些代码/资源,同时还能够拥有自己独特的代码集。 或者:
此处,build 3
正在扩展 build 2
,以便 build 2
中的所有代码和资源在两个构建中都可用,但 build 3
也可以拥有自己独特的代码/资源。
我认为扩展 build 2
是最好的方法(如果可能的话),但是任何建议或为我指明正确的方向将不胜感激。我已经花了 6 个多小时在互联网上搜索,但无济于事。
最佳答案
对此没有很好的支持。如果你真的想这样做,你可以探索一些带有符号链接(symbolic link)的 hackery 来尝试使不同的风格有效地共享文件夹,但这会使源代码管理变得有点奇怪,我不能确定它不会引起微妙的问题在构建中。
我鼓励您不要尝试在构建系统中做很多诡计,因为从长远来看,这会使您的应用程序更难编写和维护,尤其是目前 IDE 没有很好的设施处理跨产品风格的代码(例如,如果您重构代码,则无法将重构应用于非 Activity 产品风格;您一次只能处理一个)。
更好的方法是采用Build 2 和Build 3 的通用内容,并将其提取到一个 Android 库模块中,该模块是这些风格的依赖项,但是不适用于 Build 1 风格。不同的产品风格可以有不同的依赖关系,并且该机制得到支持并且运行良好。
关于Android Studio - flavor 可以与其他 flavor 共享代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27904557/