# 构建和任务
我们前面提到每一个 *Build Type* 会创建自己的 `assemble<name>` task,但是 *Build Variant* 是 *Build Type* 和 *Product Flavor* 的组合。
当使用 *Product Flavor* 的时候,将会创建更多的 assemble-type task。分别是:
1. `assemble<Variant Name>`允许直接构建一个 variant 版本,例如 **assembleFlavor1Debug**。
1. `assemble<Build Type Name>`允许构建指定 Build Type 的所有 APK,例如 **assembleDebug** 将会构建 `Flavor1Debug` 和 `Flavor2Debug` 两个 variant 版本。
1. `assemble<Product Flavor Name>`允许构建指定 flavor 的所有 APK,例如 **assembleFlavor1** 将会构建 `Flavor1Debug` 和 `Flavor1Release` 两个 variant 版本。
另外 **assemble** task 会构建所有的 variant 版本。
- 译者序
- 简介
- 新构建系统的目标
- 为什么使用 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