android模块和风味之间的主要区别是什么?
从模块定义 https://developer.android.com/studio/projects/add-app-module.html
模块为您的应用程序的源代码、资源文件和应用程序级设置(例如模块级构建文件和 Android 清单文件)提供了一个容器。每个模块都可以独立构建、测试和调试。
但我可以对口味说同样的话。
有人能指出这两者之间的主要区别吗?
android模块和风味之间的主要区别是什么?
从模块定义 https://developer.android.com/studio/projects/add-app-module.html
模块为您的应用程序的源代码、资源文件和应用程序级设置(例如模块级构建文件和 Android 清单文件)提供了一个容器。每个模块都可以独立构建、测试和调试。
但我可以对口味说同样的话。
有人能指出这两者之间的主要区别吗?
模块是项目的一部分,而风味或多或少是配置/实现
模块的具体示例:如果您正在创建一个库,您可以拥有多个模块,例如库本身和一个演示项目。每个都是模块
注意:每个模块都有自己的代码
风味的具体示例:您正在制作具有一些在线功能的应用程序。为此,您有几个环境(在服务器环境上用于测试,一个用于实时版本)。您可以使用自己的配置为每个环境制作构建风格(如果需要,还可以使用自己的实现)
注意:风味可以共享他们的代码(使用主文件夹)
这只是一个简短的结论。模块和风味比这个简短的描述更强大,但我认为它会指出最重要的区别
编辑:关键区别在于您的项目结构,尤其是关于 gradle。
模块总是有自己的 gradle 文件,所以你得到以下结构:
projectName.gradle
module1.gradle
module2.gradle
...
口味在模块的 gradle 文件中定义:
例如 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
模块是完全不同的文件集。Flavors 可以共享大部分代码或配置,并且只有很小的差异。