最佳答案
引言:这不是一个关于如何在Android应用程序中使用构建类型和产品风格的问题。我了解其中的基本概念。这个问题更多的是试图理解应该在构建类型中指定哪个配置,应该在产品类型中指定哪个配置,以及是否确实有必要进行任何区分。
本周,我学习了更多关于Android应用的gradle配置。我最初认为我已经很好地处理了构建类型和产品风格,但随着文档的深入,我意识到两者之间的区别对我来说根本不清楚。
由于存在定义良好的层次结构(在构建类型中指定的属性优先于产品类型中指定的属性),我不理解为什么需要区分构建类型和产品类型。将所有属性和方法合并到产品风格DSL对象中,然后仅仅将构建类型作为(默认的)风格维度不是更好吗?
以下是一些让我困惑的具体例子:
signingConfig
属性可以在构建类型和产品风格中设置…但是minifyEnabled
(和,我假设,shrinkResources
?)只能在构建类型中配置。
applicationId
只能在产品风味中指定…和applicationIdSuffix
只能在构建类型中指定!?
实际问题:
对于上面的例子:构建类型和产品风格之间的角色是否有明确的区别?
如果是,最好的理解方式是什么?
如果不是,是否计划最终将构建类型和产品风格合并到一个可配置的DSL对象中?