第1章 Gradle入门 1
1.1 配置Gradle环境 1
1.1.1 Linux下搭建Gradle构建环境 2
1.1.2 Windows下搭建Gradle构建环境 3
1.2 Gradle版Hello World 3
1.3 Gradle Wrapper 5
1.3.1 生成Wrapper 5
1.3.2 Wrapper配置 6
1.3.3 gradle-wrapper.properties 6
1.3.4 自定义WrapperTask 7
1.4 Gradle日志 8
1.4.1 日志级别 8
1.4.2 输出错误堆栈信息 9
1.4.3 自己使用日志信息调试 9
1.5 Gradle命令行 10
1.5.1 记得使用帮助 10
1.5.2 查看所有可执行的Tasks 10
1.5.3 Gradle Help任务 11
1.5.4 强制刷新依赖 12
1.5.5 多任务调用 13
1.5.6 通过任务名字缩写执行 13
第2章 Groovy基础 14
2.1 字符串 14
2.2 集合 15
2.2.1 List 16
2.2.2 Map 17
2.3 方法 18
2.3.1 括号是可以省略的 18
2.3.2 return是可以不写的 18
2.3.3 代码块是可以作为参数传递的 19
2 4 JavaBean 20
2.5 闭包 21
2.5.1 初识闭包 21
2.5.2 向闭包传递参数 22
2.5.3 闭包委托 22
2.6 DSL 24
第3章 Gradle构建脚本基础 25
3.1 Settings文件 25
3.2 Build文件 26
3.3 Projects以及tasks 27
3.4 创建一个任务 28
3.5 任务依赖 29
3.6 任务间通过API控制、交互 30
3.7 自定义属性 31
3.8 脚本即代码,代码也是脚本 33
第4章 Gradle任务 34
4.1 多种方式创建任务 34
4.2 多种方式访问任务 36
4.3 任务分组和描述 38
4.4 <<操作符 39
4.5 任务的执行分析 41
4.6 任务排序 43
4.7 任务的启用和禁用 44
4.8 任务的onlyIf断言 45
4.9 任务规则 48
4.10 小结 49
第5章 Gradle插件 50
5.1 插件的作用 50
5.2 如何应用一个插件 51
5.2.1 应用二进制插件 51
5.2.2 应用脚本插件 51
5.2.3 apply方法的其他用法 52
5.2.4 应用第三方发布的插件 53
5.2.5 使用plugins DSL应用插件 53
5.2.6 更多好用的插件 54
5.3 自定义插件 54
5.4 小结 56
第6章 Java Gradle插件 57
6.1 如何应用 57
6.2 Java插件约定的项目结构 58
6.3 如何配置第三方依赖 59
6.4 如何构建一个Java项目 62
6.5 源码集合(SourceSet)概念 63
6.6 Java插件添加的任务 65
6.7 Java插件添加的属性 66
6.8 多项目构建 66
6.9 如何发布构件 69
6.10 生成Idea和Eclipse配置 71
6.11 小结 72
第7章 Android Gradle插件 73
7.1 Android Gradle插件简介 73
7.2 Android Gradle插件分类 74
7.3 应用Android Gradle插件 74
7.4 Android Grade工程示例 75
7.4.1 compileSdkVersion 77
7.4.2 buildToolsVersion 78
7.4.3 defaultConfig 79
7.4.4 buildTypes 79
7.5 Android Gradle任务 80
7.6 从Eclipse迁移到Android Gradle工程 81
7.6.1 使用Android Studio导入 81
7.6.2 从Eclipse+ADT中导出 82
7.7 小结 85
第8章 自定义Android Gradle工程 86
8.1 defaultConfig默认配置 86
8.1.1 applicationId 87
8.1.2 minSdkVersion 87
8.1.3 targetSdkVersion 88
8.1.4 versionCode 89
8.1.5 versionName 89
8.1.6 testApplicationId 90
8.1.7 testInstrumentationRunner 91
8.1.8 signingConfig 91
8.1.9 proguardFile 92
8.1.10 proguardFiles 93
8.2 配置签名信息 93
8.3 构建的应用类型 97
8.3.1 applicationIdSuffix 97
8.3.2 debuggable 98
8.3.3 jniDebuggable 98
8.3.4 minifyEnabled 99
8.3.5 multiDexEnabled 99
8.3.6 proguardFile 100
8.3.7 proguardFiles 100
8.3.8 shrinkResources 101
8.3.9 signingConfig 101
8.4 使用混淆 102
8.5 启用zipalign优化 104
8.6 小结 105
第9章 Android Gradle高级自定义 106
9.1 使用共享库 106
9.2 批量修改生成的apk文件名 108
9.3 动态生成版本信息 111
9.3.1 最原始的方式 111
9.3.2 分模块的方式 112
9.3.3 从git的tag中获取 113
9.3.4 从属性文件中动态获取和递增 117
9.4 隐藏签名文件信息 118
9.5 动态配置AndroidManifest文件 120
9.6 自定义你的BuildConfig 123
9.7 动态添加自定义的资源 126
9.8 Java编译选项 128
9.9 adb操作选项配置 130
9.10 DEX选项配置 133
9.11 突破65535方法限制 138
9.12 自动清理未使用的资源 142
第10章 Android Gradle多项目构建 147
10.1 Android项目区别 147
10.2 Android多项目设置 148
10.3 库项目引用和配置 149
10.4 库项目单独发布 151
10.5 小结 154
第11章 Android Gradle多渠道构建 156
11.1 多渠道构建的基本原理 156
11.2 Flurry多渠道和友盟多渠道构建 157
11.3 多渠道构建定制 159
11.3.1 applicationId 159
11.3.2 consumerProguardFiles 160
11.3.3 manifestPlaceholders 161
11.3.4 multiDexEnabled 161
11.3.5 proguardFiles 161
11.3.6 signingConfig 162
11.3.7 testApplicationId 162
11.3.8 testFunctionalTest和testHandleProfiling 163
11.3.9 testInstrumentationRunner 164
11.3.10 testInstrumentationRunnerArguments 164
11.3.11 versionCode和versionName 165
11.3.12 useJack 165
11.3.13 dimension 166
11.4 提高多渠道构建的效率 169
11.5 小结 170
第12章 Android Gradle测试 172
12.1 基本概念 172
12.2 本地单元测试 175
12.3 Instrument测试 179
12.4 测试选项配置 181
12.5 代码覆盖率 184
12.6 Lint支持 187
12.6.1 abortOnError 188
12.6.2 absolutePaths 189
12.6.3 check 189
12.6.4 checkAllWarnings 196
12.6.5 checkReleaseBuilds 196
12.6.6 disable 197
12.6.7 enable 198
12.6.8 explainIssues 198
12.6.9 htmlOutput 198
12.6.10 htmlReport 199
12.6.11 ignoreWarnings 199
12.6.12 lintConfig 199
12.6.13 noLines 199
12.6.14 quiet 200
12.6.15 severityOverrides 200
12.6.16 showAll 201
12.6.17 textOutput 202
12.6.18 textReport 202
12.6.19 warningsAsErrors 202
12.6.20 xmlOutput 203
12.6.21 xmlReport 203
12.6.22 error、fatal、ignore、warning、informational 203
第13章 Android Gradle NDK支持 206
13.1 环境配置 206
13.2 编译C/C++源代码 208
13.3 多平台编译 212
13.4 使用第三方的so库 214
13.5 使用NDK提供的库 214
13.6 C++库支持 216
第14章 Android Gradle持续集成 219
14.1 什么是持续集成 219
14.2 持续集成的价值 219
14.3 Android Gradle持续集成 220
14.4 怎样更好地做持续集成 222
14.5 人才是关键 223