构建类型(build type)是开发过程中的一部分,通常产品从开发到发布的过程中。从默认的构建类型debug
和release
的名字也能反应这一点。
Flavors允许你针对同一个应用构建出不同的版本。通常来说,对于同一个应用,如果你需要针对不同的客户定制不同的界面和体验,或者同时推出付费和免费版本,那Flavors就很管用。
每个产品配方(product flavors)相对于defaultConfig
的属性都可以有以下几个自定义的值:
- applicationId
- minSdkVersion
- targetSdkVersion
- versionCode
- signingConfig
每个产品配方定义自己的源码(source)和资源(resource),他们都跟主要的源码(main source set)同时存在。如下例子就说明相对于app/src/main/java
,你还可以在如下的文件夹中增加代码:
- app/src/paid/java
- app/src/lite/java
- app/src/oversea/java
同时你也可以在以下目录下增加资源文件:
- app/src/paid/res
- app/src/lite/res/layout
- app/src/oversea/res/values
对于res
下的其他子目录也是同样的用法。相同的资源架构同时也会应用到所有的配方上(Flavor)。
构建类型(Build Type)也支持跟配方(Flavor)一样的目录结构。一个构建类型和配方的组合叫一个变种(Variant)。