30万 读者的选择 一本关于Android Gradle的权V指南 基于新的Android Gradle 一本由浅入深讲解Android Gradle开发的书 对Gradle基础、Groovy基础、Gradle插件、Android Gradle构建、基于Android Gradle的单元测试和持续集成等做循序渐进的讲解 在讲解的过程中融入作者在项目中遇到的问题、解决问题的思路以及方法。 通过本书,读者可以入门,并且深入了解Gradle以及Android Gradle构建,并以此为基础,深入Android Gradle相关知识点和使用技巧,让读者在工作中事半功倍。
这书全方位讲解了Android下Gradle的详尽用法,并融合案例,让阅读者做到融会贯通的目地。这书具体内容以下:第1章Gradle新手入门,讲解了配备Gradle自然环境、GradleWrapper、Gradle命令;第二章Groovy基本,讲解了字符串数组、闭包等;第三章讲解了Gradle构建脚本制作基本;第四章为Gradle每日任务;第五章Gradle插件;第六章JavaGradle插件;第7章AndroidGradle插件;第八章自定AndroidGradle工程项目;第9章AndroidGradle高級自定;第10章AndroidGradle多新项目构建;第11章AndroidGradle多种渠道构建;第12章AndroidGradle检测;第13章AndroidGradleNDK适用;第14章AndroidGradle持续集成等关键开发设计专业知识。这书讲解浅显易懂,合适Android程序猿阅读文章,也合适做为大专学校有关技术专业老师学生的学习培训教材和培训机构的教材内容。
目录
- 第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 自定义Wrapper Task 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 Gradle工程示例 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