本書全面講解了Android 下Gradle的詳細用法,并結(jié)合實例,讓讀者達到學以致用的目的。本書主要內(nèi)容如下:
第1章Gradle入門,講解了配置Gradle環(huán)境、Gradle Wrapper、Gradle命令行;第2章Groovy基礎(chǔ),講解了字符串、閉包等;第3章講解了Gradle構(gòu)建腳本基礎(chǔ);第4章為Gradle任務(wù);第5章Gradle插件;第6章Java Gradle插件;第7章Android Gradle插件;第8章自定義Android Gradle工程;第9章Android Gradle高級自定義;第10章Android Gradle多項目構(gòu)建;第11章Android Gradle多渠道構(gòu)建;第12章Android Gradle測試;第13章Android Gradle NDK支持;第14章Android Gradle持續(xù)集成等核心開發(fā)知識。
本書講解通俗易懂,適合Android程序員閱讀,也適合作為大專院校相關(guān)專業(yè)師生的學習用書和培訓學校的教材。
30萬 讀者的選擇
一本關(guān)于Android Gradle的權(quán)V指南
基于新的Android Gradle
一本由淺入深講解Android Gradle開發(fā)的書
對Gradle基礎(chǔ)、Groovy基礎(chǔ)、Gradle插件、Android Gradle構(gòu)建、基于Android Gradle的單元測試和持續(xù)集成等做循序漸進的講解
在講解的過程中融入作者在項目中遇到的問題、解決問題的思路以及方法。
通過本書,讀者可以入門,并且深入了解Gradle以及Android Gradle構(gòu)建,并以此為基礎(chǔ),深入Android Gradle相關(guān)知識點和使用技巧,讓讀者在工作中事半功倍。
李帥,網(wǎng)名為飛雪無情,隨手記研發(fā)部經(jīng)理,現(xiàn)在隨手記負責Java、Android、iOS、PHP和前端的研發(fā)管理。主持翻譯Android官方技術(shù)文檔。 個人博客:www.flysnow.org。
目 錄
第1章 Gradle入門 1
1.1 配置Gradle環(huán)境 1
1.1.1 Linux下搭建Gradle構(gòu)建環(huán)境 2
1.1.2 Windows下搭建Gradle構(gòu)建環(huán)境 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 自己使用日志信息調(diào)試 9
1.5 Gradle命令行 10
1.5.1 記得使用幫助 10
1.5.2 查看所有可執(zhí)行的Tasks 10
1.5.3 Gradle Help任務(wù) 11
1.5.4 強制刷新依賴 12
1.5.5 多任務(wù)調(diào)用 13
1.5.6 通過任務(wù)名字縮寫執(zhí)行 13
第2章 Groovy基礎(chǔ) 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 代碼塊是可以作為參數(shù)傳遞的 19
2.4 JavaBean 20
2.5 閉包 21
2.5.1 初識閉包 21
2.5.2 向閉包傳遞參數(shù) 22
2.5.3 閉包委托 22
2.6 DSL 24
第3章 Gradle構(gòu)建腳本基礎(chǔ) 25
3.1 Settings文件 25
3.2 Build文件 26
3.3 Projects以及tasks 27
3.4 創(chuàng)建一個任務(wù) 28
3.5 任務(wù)依賴 29
3.6 任務(wù)間通過API控制、交互 30
3.7 自定義屬性 31
3.8 腳本即代碼,代碼也是腳本 33
第4章 Gradle任務(wù) 34
4.1 多種方式創(chuàng)建任務(wù) 34
4.2 多種方式訪問任務(wù) 36
4.3 任務(wù)分組和描述 38
4.4 <<操作符 39
4.5 任務(wù)的執(zhí)行分析 41
4.6 任務(wù)排序 43
4.7 任務(wù)的啟用和禁用 44
4.8 任務(wù)的onlyIf斷言 45
4.9 任務(wù)規(guī)則 48
4.10 小結(jié) 49
第5章 Gradle插件 50
5.1 插件的作用 50
5.2 如何應(yīng)用一個插件 51
5.2.1 應(yīng)用二進制插件 51
5.2.2 應(yīng)用腳本插件 51
5.2.3 apply方法的其他用法 52
5.2.4 應(yīng)用第三方發(fā)布的插件 53
5.2.5 使用plugins DSL應(yīng)用插件 53
5.2.6 更多好用的插件 54
5.3 自定義插件 54
5.4 小結(jié) 56
第6章 Java Gradle插件 57
6.1 如何應(yīng)用 57
6.2 Java插件約定的項目結(jié)構(gòu) 58
6.3 如何配置第三方依賴 59
6.4 如何構(gòu)建一個Java項目 62
6.5 源碼集合(SourceSet)概念 63
6.6 Java插件添加的任務(wù) 65
6.7 Java插件添加的屬性 66
6.8 多項目構(gòu)建 66
6.9 如何發(fā)布構(gòu)件 69
6.10 生成Idea和Eclipse配置 71
6.11 小結(jié) 72
第7章 Android Gradle插件 73
7.1 Android Gradle插件簡介 73
7.2 Android Gradle插件分類 74
7.3 應(yīng)用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任務(wù) 80
7.6 從Eclipse遷移到Android Gradle工程 81
7.6.1 使用Android Studio導入 81
7.6.2 從Eclipse ADT中導出 82
7.7 小結(jié) 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 構(gòu)建的應(yīng)用類型 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優(yōu)化 104
8.6 小結(jié) 105
第9章 Android Gradle高級自定義 106
9.1 使用共享庫 106
9.2 批量修改生成的apk文件名 108
9.3 動態(tài)生成版本信息 111
9.3.1 最原始的方式 111
9.3.2 分模塊的方式 112
9.3.3 從git的tag中獲取 113
9.3.4 從屬性文件中動態(tài)獲取和遞增 117
9.4 隱藏簽名文件信息 118
9.5 動態(tài)配置AndroidManifest文件 120
9.6 自定義你的BuildConfig 123
9.7 動態(tài)添加自定義的資源 126
9.8 Java編譯選項 128
9.9 adb操作選項配置 130
9.10 DEX選項配置 133
9.11 突破65535方法限制 138
9.12 自動清理未使用的資源 142
第10章 Android Gradle多項目構(gòu)建 147
10.1 Android項目區(qū)別 147
10.2 Android多項目設(shè)置 148
10.3 庫項目引用和配置 149
10.4 庫項目單獨發(fā)布 151
10.5 小結(jié) 154
第11章 Android Gradle多渠道構(gòu)建 156
11.1 多渠道構(gòu)建的基本原理 156
11.2 Flurry多渠道和友盟多渠道構(gòu)建 157
11.3 多渠道構(gòu)建定制 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 提高多渠道構(gòu)建的效率 169
11.5 小結(jié) 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 環(huán)境配置 206
13.2 編譯C/C 源代碼 208
13.3 多平臺編譯 212
13.4 使用第三方的so庫 214
13.5 使用NDK提供的庫 214
13.6 C 庫支持 216
第14章 Android Gradle持續(xù)集成 219
14.1 什么是持續(xù)集成 219
14.2 持續(xù)集成的價值 219
14.3 Android Gradle持續(xù)集成 220
14.4 怎樣更好地做持續(xù)集成 222
14.5 人才是關(guān)鍵 223