30万+读者的选择
一本关于AndroidGradle的权V指南
基于新的AndroidGradle
一本由浅入深讲解AndroidGradle开发的书
对Gradle基础、Groovy基础、Gradle插件、AndroidGradle构建、基于AndroidGradle的单元测试和持续集成等做循序渐进的讲解
在讲解的过程中融入作者在项目中遇到的问题、解决问题的思路以及方法。
通过本书,读者可以入门,并且深入了解Gradle以及AndroidGradle构建,并以此为基础,深入AndroidGradle相关知识点和使用技巧,让读者在工作中事半功倍。
本书全面讲解了Android下Gradle的详细用法,并结合实例,让读者达到学以致用的目的。本书主要内容如下:
第1章Gradle入门,讲解了配置Gradle环境、GradleWrapper、Gradle命令行;第2章Groovy基础,讲解了字符串、闭包等;第3章讲解了Gradle构建脚本基础;第4章为Gradle任务;第5章Gradle插件;第6章JavaGradle插件;第7章AndroidGradle插件;第8章自定义AndroidGradle工程;第9章AndroidGradle高级自定义;第10章AndroidGradle多项目构建;第11章AndroidGradle多渠道构建;第12章AndroidGradle测试;第13章AndroidGradleNDK支持;第14章AndroidGradle持续集成等核心开发知识。
本书讲解通俗易懂,适合Android程序员阅读,也适合作为大专院校相关专业师生的学习用书和培训学校的教材。
李帅,网名为飞雪无情,“随手记”研发部经理,现在随手记负责Java、Android、iOS、PHP和前端的研发管理。主持翻译Android官方技术文档。 个人博客:www.flysnow.org。
第1章 Gradle入门 11.1 配置Gradle环境 11.1.1 Linux下搭建Gradle构建环境 21.1.2 Windows下搭建Gradle构建环境 31.2 Gradle版Hello World 31.3 Gradle Wrapper 51.3.1 生成Wrapper 51.3.2 Wrapper配置 61.3.3 gradle-wrapper.properties 61.3.4 自定义Wrapper Task 71.4 Gradle日志 81.4.1 日志级别 81.4.2 输出错误堆栈信息 91.4.3 自己使用日志信息调试 91.5 Gradle命令行 101.5.1 记得使用帮助 101.5.2 查看所有可执行的Tasks 101.5.3 Gradle Help任务 111.5.4 强制刷新依赖 121.5.5 多任务调用 131.5.6 通过任务名字缩写执行 13第2章 Groovy基础 142.1 字符串 142.2 集合 152.2.1 List 162.2.2 Map 172.3 方法 182.3.1 括号是可以省略的 182.3.2 return是可以不写的 182.3.3 代码块是可以作为参数传递的 192.4 JavaBean 202.5 闭包 212.5.1 初识闭包 212.5.2 向闭包传递参数 222.5.3 闭包委托 222.6 DSL 24第3章 Gradle构建脚本基础 253.1 Settings文件 253.2 Build文件 263.3 Projects以及tasks 273.4 创建一个任务 283.5 任务依赖 293.6 任务间通过API控制、交互 303.7 自定义属性 313.8 脚本即代码,代码也是脚本 33第4章 Gradle任务 344.1 多种方式创建任务 344.2 多种方式访问任务 364.3 任务分组和描述 384.4 <<操作符 394.5 任务的执行分析 414.6 任务排序 434.7 任务的启用和禁用 444.8 任务的onlyIf断言 454.9 任务规则 484.10 小结 49第5章 Gradle插件 505.1 插件的作用 505.2 如何应用一个插件 515.2.1 应用二进制插件 515.2.2 应用脚本插件 515.2.3 apply方法的其他用法 525.2.4 应用第三方发布的插件 535.2.5 使用plugins DSL应用插件 535.2.6 更多好用的插件 545.3 自定义插件 545.4 小结 56第6章 Java Gradle插件 576.1 如何应用 576.2 Java插件约定的项目结构 586.3 如何配置第三方依赖 596.4 如何构建一个Java项目 626.5 源码集合(SourceSet)概念 636.6 Java插件添加的任务 656.7 Java插件添加的属性 666.8 多项目构建 666.9 如何发布构件 696.10 生成Idea和Eclipse配置 716.11 小结 72第7章 Android Gradle插件 737.1 Android Gradle插件简介 737.2 Android Gradle插件分类 747.3 应用Android Gradle插件 747.4 Android Gradle工程示例 757.4.1 compileSdkVersion 777.4.2 buildToolsVersion 787.4.3 defaultConfig 797.4.4 buildTypes 797.5 Android Gradle任务 807.6 从Eclipse迁移到Android Gradle工程 817.6.1 使用Android Studio导入 817.6.2 从Eclipse+ADT中导出 827.7 小结 85第8章 自定义Android Gradle工程 868.1 defaultConfig默认配置 868.1.1 applicationId 878.1.2 minSdkVersion 878.1.3 targetSdkVersion 888.1.4 versionCode 898.1.5 versionName 898.1.6 testApplicationId 908.1.7 testInstrumentationRunner 918.1.8 signingConfig 918.1.9 proguardFile 928.1.10 proguardFiles 938.2 配置签名信息 938.3 构建的应用类型 978.3.1 applicationIdSuffix 978.3.2 debuggable 988.3.3 jniDebuggable 988.3.4 minifyEnabled 998.3.5 multiDexEnabled 998.3.6 proguardFile 1008.3.7 proguardFiles 1008.3.8 shrinkResources 1018.3.9 signingConfig 1018.4 使用混淆 1028.5 启用zipalign优化 1048.6 小结 105第9章 Android Gradle高级自定义 1069.1 使用共享库 1069.2 批量修改生成的apk文件名 1089.3 动态生成版本信息 1119.3.1 最原始的方式 1119.3.2 分模块的方式 1129.3.3 从git的tag中获取 1139.3.4 从属性文件中动态获取和递增 1179.4 隐藏签名文件信息 1189.5 动态配置AndroidManifest文件 1209.6 自定义你的BuildConfig 1239.7 动态添加自定义的资源 1269.8 Java编译选项 1289.9 adb操作选项配置 1309.10 DEX选项配置 1339.11 突破65535方法限制 1389.12 自动清理未使用的资源 142第10章 Android Gradle多项目构建 14710.1 Android项目区别 14710.2 Android多项目设置 14810.3 库项目引用和配置 14910.4 库项目单独发布 15110.5 小结 154第11章 Android Gradle多渠道构建 15611.1 多渠道构建的基本原理 15611.2 Flurry多渠道和友盟多渠道构建 15711.3 多渠道构建定制 15911.3.1 applicationId 15911.3.2 consumerProguardFiles 16011.3.3 manifestPlaceholders 16111.3.4 multiDexEnabled 16111.3.5 proguardFiles 16111.3.6 signingConfig 16211.3.7 testApplicationId 16211.3.8 testFunctionalTest和testHandleProfiling 16311.3.9 testInstrumentationRunner 16411.3.10 testInstrumentationRunnerArguments 16411.3.11 versionCode和versionName 16511.3.12 useJack 16511.3.13 dimension 16611.4 提高多渠道构建的效率 16911.5 小结 170第12章 Android Gradle测试 17212.1 基本概念 17212.2 本地单元测试 17512.3 Instrument测试 17912.4 测试选项配置 18112.5 代码覆盖率 18412.6 Lint支持 18712.6.1 abortOnError 18812.6.2 absolutePaths 18912.6.3 check 18912.6.4 checkAllWarnings 19612.6.5 checkReleaseBuilds 19612.6.6 disable 19712.6.7 enable 19812.6.8 explainIssues 19812.6.9 htmlOutput 19812.6.10 htmlReport 19912.6.11 ignoreWarnings 19912.6.12 lintConfig 19912.6.13 noLines 19912.6.14 quiet 20012.6.15 severityOverrides 20012.6.16 showAll 20112.6.17 textOutput 20212.6.18 textReport 20212.6.19 warningsAsErrors 20212.6.20 xmlOutput 20312.6.21 xmlReport 20312.6.22 error、fatal、ignore、warning、informational 203第13章 Android Gradle NDK支持 20613.1 环境配置 20613.2 编译C/C++源代码 20813.3 多平台编译 21213.4 使用第三方的so库 21413.5 使用NDK提供的库 21413.6 C++库支持 216第14章 Android Gradle持续集成 21914.1 什么是持续集成 21914.2 持续集成的价值 21914.3 Android Gradle持续集成 22014.4 怎样更好地做持续集成 22214.5 人才是关键 223