何时使用android flavors vs单独的项目

时间:2017-07-27 08:26:52

标签: android android-flavors

我一直在阅读有关Android风格的内容,以及如何在SO和其他资源中使用它们,例如

1)Building Multiple Editions of an Android App with Gradle

2)Building multiple flavours of an Android app

基于这些示例,android flavours对于构建应用程序的多个版本非常有用。但我的问题是:

service providerconsumer角色具有单独的应用程序(如uber)的情况下使用flavor是一种好习惯,或者更好地构建单独的项目。

在使用香精之前我们需要考虑哪些主要属性?

2 个答案:

答案 0 :(得分:2)

来自Android docs

  

产品风味代表您可能的应用程序的不同版本   发布给用户,例如应用的免费版和付费版。您可以   定制产品风格以使用不同的代码和资源   共享和重用您所有版本的通用部分   应用

因此,应该使用产品风格来创建同一个应用程序的自定义版本。不同的风格可能在资源和功能的某些部分有所不同,但它们几乎是相同的应用程序。

为了构建彼此相关并共享部分代码的不同应用程序,最好使用模块。您将拥有2个应用程序模块和一个包含公共部分代码的库模块。应用程序模块将依赖于库模块。

答案 1 :(得分:1)

创建多个环境与单独的应用程序不同。

我认为,最佳做法是为每个独立的应用创建多个环境。

与实例一样,对于许多项目,他们有2个应用程序,一个用于用户,另一个用于管理员。因此,在这种情况下,我们为每个应用创建4个环境。

构建多个环境可以最大限度地提高工作效率并减少可能触及用户的错误。共有4个常用层可以提供帮助

  

<强>开发   可选的。这是个人开发人员或小团队的工作环境。与其他层隔离工作,开发人员可以尝试对代码进行彻底的更改,而不会对开发团队的其他人产生负面影响。

     

<强>集成   所有开发人员都提交代码更改的常见环境。此环境的目标是组合并验证整个项目团队的工作,以便在升级到临时环境之前对其进行测试。开发和集成可以是相同的环境(如开发人员不使用源代码的本地副本的情况)。

     

<强>分段   登台层是一个与生产环境尽可能相同的环境。 Staging环境的目的是尽可能多地模拟生产环境。 Staging环境也可以兼作演示/培训环境。

     

<强>生产   生产层可能包括一台机器或一个包含许多机器的庞大集群。

一个非常常见的用例,你可以在开发环境中删除,编辑你想要的任何内容,但你不能在 Production 中做同样的事情,只有一种方法是迁移数据。

幸运的是,Android Gradle支持productFlavors来支持我们。

但是,是的,如果您只需要一个管理应用程序的环境,它会经常发生错误,那么您只能定义一个环境。

这是一个非常大的话题,可能这个答案可以帮到你。这是多个环境的常见流程 enter image description here