本书讲解了Android 下Gradle的详细用法,并结合实例,让读者达到学以致用的目的。本书主要内容如下: 第1章Gradle入门,讲解了配置Gradle环境、Gradle Wrapper、Gradle命令行;第2章Groovy基础,讲解了字符串、闭包等;第3章讲解了Gradle构建脚本基础;第4章为Gradle任务;第5章Gradle插件;第6章Java Gradle插件;第7章Android Gradle插件;第8章自定义Android Gradle工程;第9章Android Gradle高级自定义;第10章Android Gradle多项目构建;第11章Android Gradle多渠道构建;第12章Android Gradle测试;第13章Android Gradle NDK支持;第14章Android Gradle持续集成等核心开发知识。 本书讲解通俗易懂,适合Android程序员阅读,也适合作为大专院校相关专业师生的学习用书和培训学校的教材。
30万 读者的选择 一本关于Android Gradle的权V指南 基于新的Android Gradle 一本由浅入深讲解Android Gradle开发的书 对Gradle基础、Groovy基础、Gradle插件、Android Gradle构建、基于Android Gradle的单元测试和持续集成等做循序渐进的讲解 在讲解的过程中融入作者在项目中遇到的问题、解决问题的思路以及方法。 通过本书,读者可以入门,并且深入了解Gradle以及Android Gradle构建,并以此为基础,深入Android Gradle相关知识点和使用技巧,让读者在工作中事半功倍。
李帅,网名为飞雪无情,“随手记”研发部经理,现在随手记负责Java、Android、iOS、PHP和前端的研发管理。主持翻译Android官方技术文档。 个人博客:www.flysnow.org。
目录
第1章Gradle入门1
1.1配置Gradle环境1
1.1.1Linux下搭建Gradle构建环境2
1.1.2Windows下搭建Gradle构建环境3
1.2Gradle版Hello World3
1.3Gradle Wrapper5
1.3.1生成Wrapper5
1.3.2Wrapper配置6
1.3.3gradle-wrapper.properties6
1.3.4自定义Wrapper Task7
1.4Gradle日志8
1.4.1日志级别8
1.4.2输出错误堆栈信息9
1.4.3自己使用日志信息调试9
1.5Gradle命令行10
1.5.1记得使用帮助10
1.5.2查看所有可执行的Tasks10
1.5.3Gradle 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.1List16
2.2.2Map17
2.3方法18
2.3.1括号是可以省略的18
2.3.2return是可以不写的18
2.3.3代码块是可以作为参数传递的19
2.4JavaBean20
2.5闭包21
2.5.1初识闭包21
2.5.2向闭包传递参数22
2.5.3闭包委托22
2.6DSL24
第3章Gradle构建脚本基础25
3.1Settings文件25
3.2Build文件26
3.3Projects以及tasks27
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
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.3apply方法的其他用法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.2Java插件约定的项目结构58
6.3如何配置第三方依赖59
6.4如何构建一个Java项目62
6.5源码集合(SourceSet)概念63
6.6Java插件添加的任务65
6.7Java插件添加的属性66
6.8多项目构建66
6.9如何构件69
6.10生成Idea和Eclipse配置71
6.11小结72
第7章Android Gradle插件73
7.1Android Gradle插件简介73
7.2Android Gradle插件分类74
7.3应用Android Gradle插件74
7.4Android Gradle工程示例75
7.4.1compileSdkVersion77
7.4.2buildToolsVersion78
7.4.3defaultConfig79
7.4.4buildTypes79
7.5Android 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.1defaultConfig默认配置86
8.1.1applicationId87
8.1.2minSdkVersion87
8.1.3targetSdkVersion88
8.1.4versionCode89
8.1.5versionName89
8.1.6testApplicationId90
8.1.7testInstrumentationRunner91
8.1.8signingConfig91
8.1.9proguardFile92
8.1.10proguardFiles93
8.2配置签名信息93
8.3构建的应用类型97
8.3.1applicationIdSuffix97
8.3.2debuggable98
8.3.3jniDebuggable98
8.3.4minifyEnabled99
8.3.5multiDexEnabled99
8.3.6proguardFile100
8.3.7proguardFiles100
8.3.8shrinkResources101
8.3.9signingConfig101
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自定义你的BuildConfig123
9.7动态添加自定义的资源126
9.8Java编译选项128
9.9adb操作选项配置130
9.10DEX选项配置133
9.11突破65535方法限制138
9.12自动清理未使用的资源142
第10章Android Gradle多项目构建147
10.1Android项目区别147
10.2Android多项目设置148
10.3库项目引用和配置149
10.4库项目单独151
10.5小结154
第11章Android Gradle多渠道构建156
11.1多渠道构建的基本原理156
11.2Flurry多渠道和友盟多渠道构建157
11.3多渠道构建定制159
11.3.1applicationId159
11.3.2consumerProguardFiles160
11.3.3manifestPlaceholders161
11.3.4multiDexEnabled161
11.3.5proguardFiles161
11.3.6signingConfig162
11.3.7testApplicationId162
11.3.8testFunctionalTest和testHandleProfiling163
11.3.9testInstrumentationRunner164
11.3.10testInstrumentationRunnerArguments164
11.3.11versionCode和versionName165
11.3.12useJack165
11.3.13dimension166
11.4提高多渠道构建的效率169
11.5小结170
第12章Android Gradle测试172
12.1基本概念172
12.2本地单元测试175
12.3Instrument测试179
12.4测试选项配置181
12.5代码覆盖率184
12.6Lint支持187
12.6.1abortOnError188
12.6.2absolutePaths189
12.6.3check189
12.6.4checkAllWarnings196
12.6.5checkReleaseBuilds196
12.6.6disable197
12.6.7enable198
12.6.8explainIssues198
12.6.9htmlOutput198
12.6.10htmlReport199
12.6.11ignoreWarnings199
12.6.12lintConfig199
12.6.13noLines199
12.6.14quiet200
12.6.15severityOverrides200
12.6.16showAll201
12.6.17textOutput202
12.6.18textReport202
12.6.19warningsAsErrors202
12.6.20xmlOutput203
12.6.21xmlReport203
12.6.22error、fatal、ignore、warning、informational203
第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.6C 库支持216
第14章Android Gradle持续集成219
14.1什么是持续集成219
14.2持续集成的价值219
14.3Android Gradle持续集成220
14.4怎样更好地做持续集成222
14.5人才是关键223