構(gòu)建類型(build type)是開發(fā)過程中的一部分,通常產(chǎn)品從開發(fā)到發(fā)布的過程中。從默認(rèn)的構(gòu)建類型debug和release的名字也能反應(yīng)這一點。
Flavors允許你針對同一個應(yīng)用構(gòu)建出不同的版本。通常來說,對于同一個應(yīng)用,如果你需要針對不同的客戶定制不同的界面和體驗,或者同時推出付費和免費版本,那Flavors就很管用。
每個產(chǎn)品配方(product flavors)相對于defaultConfig的屬性都可以有以下幾個自定義的值:
- applicationId
- minSdkVersion
- targetSdkVersion
- versionCode
- signingConfig
每個產(chǎn)品配方定義自己的源碼(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下的其他子目錄也是同樣的用法。相同的資源架構(gòu)同時也會應(yīng)用到所有的配方上(Flavor)。
構(gòu)建類型(Build Type)也支持跟配方(Flavor)一樣的目錄結(jié)構(gòu)。一個構(gòu)建類型和配方的組合叫一個變種(Variant)。