Android与Flavor之间的Android差异

时间:2017-12-11 09:30:54

标签: android android-productflavors android-module

android模块和flavor之间的主要区别是什么?

来自模块定义https://developer.android.com/studio/projects/add-app-module.html

  

模块为应用程序的源代码,资源文件和应用程序级别设置提供容器,例如模块级构建文件和Android清单文件。每个模块都可以独立构建,测试和调试。

但我可以对口味说同样的话。

有人可以指出这两者之间的主要区别吗?

2 个答案:

答案 0 :(得分:1)

模块是项目的一部分,而风味或多或少是配置/实现

模块的具体示例: 如果你正在建立一个图书馆,你可以有几个模块,例如图书馆本身和一个演示项目。每个都是模块

注意:每个模块都有自己的代码

香精的具体例子: 您正在使用一些在线功能制作应用程序。为此,您有几个环境(在服务器上用于测试,一个用于实时版本)。 您可以使用自己的配置(以及自己的实现,如果需要)为每个环境创建构建风格

注意:flavor可以共享其代码(使用主文件夹)

这只是一个简短的结论。模块和Flavors比这个简短的描述更强大,但我认为它将指出最重要的差异

编辑:关键区别在于您的项目结构,尤其是关于gradle。

模块总是有自己的gradle文件,所以你得到以下结构:

projectName.gradle
    module1.gradle
    module2.gradle
    ...

flavor在模块的gradle文件中定义:

e.g。 module1.gradle可能如下所示:

// some other gradle stuff before

buildTypes {
    dev {
        // your config
    }
    debug {
        // your config
    }
    release {
        // your config
    }
}

如您所见,您可以混合口味和模块。所以现在你将在module1中拥有一个包含2个模块和不同风格的项目。

在项目文件夹中,您应该在文件资源管理器中具有以下结构:

/project
  /module1
    /src
      /main
      /dev
      /debug
      /release
  /module2

答案 1 :(得分:0)

模块是完全不同的文件集。 味道可以共享大部分代码或配置,只有很小的差异。