【发布时间】:2015-01-12 15:56:25
【问题描述】:
前言:这不是关于如何在 Android 应用中使用构建类型和产品风格的问题。我了解所涉及的基本概念。这个问题更多是关于尝试了解应该在构建类型中指定哪些配置,应该在产品风格中指定哪些配置,以及是否真的需要任何区别。
本周,我一直在学习有关 Android 应用的 gradle 配置的更多信息。我最初认为我对构建类型和产品风格有很好的处理,但我越深入文档,我就越意识到两者之间的区别对我来说根本不清楚。
由于存在明确定义的层次结构(在某种意义上,构建类型中指定的属性优先于产品风格中指定的属性),我不明白为什么需要区分构建类型和产品风格全部。将所有属性和方法合并到产品风味 DSL 对象中,然后将构建类型视为(默认)风味维度不是更好吗?
一些导致我困惑的具体例子:
signingConfig属性可以在构建类型和产品风格中设置...但minifyEnabled(我假设是shrinkResources?)只能在构建类型中配置。applicationId只能在产品风味中指定...而applicationIdSuffix只能在构建类型中指定!?
实际问题:
鉴于上述示例:构建类型与产品风格的角色之间是否有明显区别?
如果是这样,最好的理解方法是什么?
如果没有,是否计划最终将构建类型和产品风格合并到一个可配置的 DSL 对象中?
【问题讨论】:
-
“应该在构建类型中指定哪些配置,应该在产品风格中指定哪些配置”——构建类型模拟您的开发生命周期(调试、“dogfood”、发布等)。产品风格为您的分销策略建模(Google IAP vs. Amazon IAP vs. BlackBerry IAP 等)。这些是独立的概念。至于其余的,我认为与实施相关的技术原因决定了他们如何设置 DSL,因此如果有合并计划,我会感到惊讶。
-
@CommonsWare 在高层次上很有意义。是的,例如,类型/风味的顺序处理可能会限制人们更改整个
applicationId的方式和时间。
标签: android android-gradle-plugin