前言:这不是关于如何在Android应用程序中使用构建类型和产品风格的问题。我了解所涉及的基本概念。这个问题更多的是关于尝试了解在构建类型中应该指定哪个配置,在产品类型中应该指定哪个配置以及是否真的需要区分的问题。
本周,我一直在学习有关Android应用程序的gradle配置的更多信息。最初,我认为我对构建类型和产品风格有很好的了解,但是我对文档的了解越深,我就越发意识到两者之间的区别对我来说根本不清楚。
由于存在一个定义明确的层次结构(从某种意义上来说,在构建类型中指定的属性优先于在产品风味中指定的属性),我不明白为什么根本不需要区分构建类型和产品风味。将所有属性和方法合并到产品风味DSL对象中,然后将构建类型视为(默认)风味维,这会更好吗?
一些引起我困惑的具体例子:
signingConfig
可以在构建类型和产品风格中设置该属性...但是minifyEnabled
(我假设,shrinkResources
?)只能在构建类型中进行配置。applicationId
只能在产品口味中指定...并且applicationIdSuffix
只能在构建类型中指定!
实际问题:
在上述示例的基础上:构建类型与产品风味的作用之间是否有明显的区别?
如果是这样,了解它的最佳方法是什么?
如果不是,是否计划最终将构建类型和产品类型合并到一个可配置的DSL对象中?