android模块和 flavor 之间的主要区别是什么?
来自模块定义https://developer.android.com/studio/projects/add-app-module.html
Modules provide a container for your app's source code, resource files, and app level settings, such as the module-level build file and Android manifest file. Each module can be independently built, tested, and debugged.
但我可以对口味说同样的话。
有人能指出这两者之间的主要区别吗?
最佳答案
模块是项目的一部分,而 flavor 或多或少是配置/实现
模块的具体示例:
如果你正在制作一个库,你可以有几个模块,例如库本身和一个演示项目。每个都是模块
备注 : 每个模块都有自己的代码
flavor 的具体示例:
您正在制作具有一些在线功能的应用程序。为此,您有几个环境(在服务器环境上用于测试,一个用于实时版本)。
您可以使用自己的配置为每个环境制作构建风格(如果需要,还可以使用自己的实现)
备注 :口味可以共享他们的代码(使用主文件夹)
这只是一个简短的结论。模块和 flavor 比这个简短的描述更强大,但我认为它会指出最重要的区别
编辑:关键区别在于项目的结构,尤其是关于 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
}
}
如您所见,您可以混合 flavor 和模块。因此,现在您将在 module1 中有一个包含 2 个模块和不同风格的项目。
在您的项目文件夹中,您的文件资源管理器中应该具有以下结构:
/project
/module1
/src
/main
/dev
/debug
/release
/module2
关于模块与 flavor 之间的Android区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47749810/