前言:这不是一个关于如何在一个Android应用中使用构建类型和产品口味的问题。我理解其中涉及的基本概念。这个问题更多的是试图理解在构建类型中应该指定哪个配置,在产品风味中应该指定哪个配置,以及实际上是否有必要进行任何区分。
本周,我学习了更多关于Android应用程序的分级配置。我最初认为自己对构建类型和产品风格有很好的把握,但我对文档越深入,就越意识到这两者之间的区别对我来说根本不清楚。
既然有一个定义良好的层次结构(在构建类型中指定的属性优先于产品口味中指定的属性的意义上),我就不明白为什么根本就需要区分构建类型和产品口味。将所有属性和方法合并到产品风味DSL对象中,然后仅仅将构建类型作为(默认)风味维度来处理,这不是更好吗?
一些导致我困惑的具体例子:
>
SigningConfig
属性可以在生成类型和产品风味中设置...但是minifyenabled
(我假设是shrinkresources
?)只能在生成类型中配置。
applicationid
只能在产品风味中指定...和applicationidsuffix
只能在生成类型中指定!?
实际问题:
给出了上面的例子:构建类型与产品风格之间的角色有明确的区别吗?
如果是的话,最好的理解方法是什么?
如果不是,是否计划最终将构建类型和产品风格合并到单个可配置的DSL对象中?
扩展@CommonSware在评论中所说的内容,其基本思想是构建类型用于应用程序的不同构建,而这些构建在功能上并不不同--如果您有应用程序的调试和发布版本,它们是同一个应用程序,但其中一个包含调试代码,可能更多的日志记录等,而另一个是精简和优化的,可能通过ProGuard进行混淆。在口味方面,我们的目的是让应用程序在某些方面有明显的不同。最明显的例子是应用程序的免费版本和付费版本,但开发人员也可能会根据应用程序的分发地点进行区分(这可能会影响应用程序内计费API的使用)。
开发人员会为不同的客户制作很多很多不同版本的类似应用程序--一个例子可能是一个简单的应用程序,它在web视图中打开一个网页,每个版本都有不同的URL和品牌--这是一个很好的使用口味的方法。
重申一下,如果它是“同一个应用程序”,取一些对最终用户不重要的差异,特别是如果除了一个外所有的变体都是供您自己测试和开发使用的,并且只有一个变体将部署给最终用户,那么它是构建类型的一个很好的候选者。如果它是一个“不同的”应用程序,并且会向用户部署多个变体,那么它可能是一个产品风格的候选。
您已经看到了构建类型和风格之间存在一些功能上的差异,其中一种支持某些选项,而另一种则不支持。但是这些概念是不同的,尽管它们是相似的,而且没有计划将它们合并在一起。
我通过选择构建变体到来运行代码。然而,运行结果显示,分级程序仍然从中选择类(和),而不是在中使用更改后的版本。 我是不是漏掉了什么?
6.2 构建类型+产品定制=构建变种版本 正如我们前面看到的,每一个 Build Type 都会生成一个新的APK。 Product Flavors 也是这么做的:工程的输出将会尽可能的组合 Build Types 和 Product Flavors 的输出。 每一种组合(Build Type, Product Flavor)就是 构建变种 比如,以默认的 debug 和 release Buil
正如前面章节所提到的,每一个 Build Type 都会生成新的 APK。Product Flavors 同样也会做这些事情:项目的输出将会组合所有的 Build Types 和 Product Flavors(如果有定义 Flavor)。每一种组合(包含 Build Type 和 Product Flavor)就是一个 Build Variant(构建变种版本)。例如,在之前的 Flavor 声
允许您执行以下操作: 但不是这个: 可能是因为返回类型不是函数签名的一部分。但是是一个类类型,它被赋予一个返回类型,并且知道构造它的函数对象的返回类型。所以这里可能有编译器错误。 为什么没有编译器错误?
更新:不推荐使用GCM,请使用FCM 我正在按照Google Developers页面中的指南实现新的Google云消息 我已经成功地运行并测试了它。但我现在的问题是,我有不同的产品风格,有不同的applicationID/packageName和不同的Google Cloud Messaging Project ID。必须放在而不是flavors文件夹中。 有什么方法可以使配置针对多种口味不同吗
我们有一个使用新的Gradle build系统的Android项目,我们使用Android Studio作为开发工具。当中指定了几种产品口味时,我们注意到Android Studio构建了按字母顺序指定的第一种产品口味。有没有办法告诉Android Studio在开发过程中只构建和测试一种特定的产品风味?