# 產品定制
Product flavor 可定義應用的不同定制版本,一個項目可以同時定義多個不同的 flavor 來改變應用的輸出。
不同定制版本之間的差異非常小的情況,可以考慮使用 Product flavor。雖然項目最終會生成多個定制版本,但是它們本質上都是同一個應用。這種做法可能是比使用 Library 項目更好的實現方式。
Product flavor 需要在 **productFlavors** 這個 DSL 容器中聲明:
~~~
android {
....
productFlavors {
flavor1 {
...
}
flavor2 {
...
}
}
}
~~~
這里創建了兩個flavor,名為 **flavor1** 和 **flavor2**。
> 注意:flavor 的命名不能與已存在的 *Build Type* 或者與 **androidTest** 的 *sourceSet* 有沖突。
- 譯者序
- 簡介
- 新構建系統的目標
- 為什么使用 Gradle?
- 配置要求
- 基礎項目
- 構建文件示例
- 項目結構
- 配置項目結構
- 構建任務
- 通用任務
- Java 項目的 Task
- Android Tasks
- 基本的構建定制
- Manifest 屬性
- 構建類型
- 簽名配置
- 運行 ProGuard
- 清理資源
- 依賴、Library 和多項目
- 包依賴
- 本地包依賴
- 遠程包依賴
- 多項目設置
- Library 項目
- 創建 Library 項目
- 普通項目和 Library 項目的區別
- 引用 Library 項目
- Library 項目發布
- 測試
- 單元測試
- 基本知識和配置
- 運行測試
- 測試 Android Library 項目
- 測試報告
- 獨立項目
- 多項目報告
- Lint 支持
- 構建 Variants(變種)版本
- 產品定制
- 構建類型+產品定制=構建變種版本
- 產品定制的配置
- 源組件和依賴
- 構建和任務
- 測試
- 多定制的變種版本
- 高級構建的自定義
- 構建選項
- Java 編譯選項
- aapt 選項
- dex 選項
- 操作 task
- 構建類型和產物定制的屬性引用
- 使用sourceCompatibility 1.7
- 附錄
- ApplicationId 與 packageName