通过本书你能学到
1.使用Android Studio和Gradle来构建新的Android应用和依赖。
2.将项目从Eclipse迁移到Android Studio和Gradle。
3.管理本地和远程依赖。
4.创建多个构建变种版本。
5.在单个项目中包含多个模块.。
6.将测试整合到构建过程。
7.为Android项目创建自定义的任务和插件。
Gradle是Android 开发小组于2013年推出的作为Android 应用的**的构建系统。Gradle可以很容易地扩展构建,并插入到现有的构建过程中来。它提供了一套类Groovy 的DSL 语言,用于申明构建和创建任务,让依赖管理变得更加简单。此外,它是完全免费和开源的。本书共分9章,依次介绍了Gradle的基础知识、基本自定义构建、依赖管理、创建构建Variants、管理多模块构建、运行测试、创建tasks和插件、设置持续集成,以及高级自定义构建。
1 Gradle和Android Studio入门 1
1.1 Android Studio 1
1.2 理解Gradle基础 3
1.2.1 项目和任务 3
1.2.2 构建生命周期 4
1.2.3 构建配置文件 4
1.2.4 项目结构 5
1.3 创建新项目 6
1.4 Gradle Wrapper入门 10
1.4.1 获取Gradle Wrapper 10
1.4.2 运行基本构建任务 12
1.5 迁移出Eclipse 13
1.5.1 导入向导 13
1.5.2 手动迁移 15
1.6 总结 17
2 基本自定义构建 19
2.1 理解Gradle文件 19
2.1.1 settings 文件 20
Gradle for Android 中文版
【XII】
2.1.2 顶层构建文件 20
2.1.3 模块的构建文件 21
2.2 任务入门 23
2.2.1 基础任务 24
2.2.2 Android 任务 24
2.2.3 Android Studio 25
2.3 自定义构建 27
2.3.1 操控manifest 条目 28
2.3.2 BuildConfig 和资源 29
2.3.3 项目范围的设置 30
2.3.4 项目属性 30
2.3.5 默认的任务 32
2.4 总结 32
3 依赖管理 33
3.1 依赖仓库 33
3.1.1 预定义依赖仓库 34
3.1.2 远程仓库 35
3.1.3 本地仓库 36
3.2 本地依赖 37
3.2.1 文件依赖 37
3.2.2 原生依赖库 37
3.2.3 依赖项目 38
3.3 依赖概念 39
3.3.1 配置 39
3.3.2 语义化版本 40
3.3.3 动态化版本 40
3.4 Android Studio 41
3.5 总结 43
目录
【XIII】
4 创建构建Variant 44
4.1 构建类型 45
4.1.1 创建构建类型 45
4.1.2 源集 47
4.1.3 依赖 49
4.2 product flavor 49
4.2.1 创建product flavor 49
4.2.2 源集 50
4.2.3 多种定制的版本 50
4.3 构建variant 51
4.3.1 任务 52
4.3.2 源集 52
4.3.3 源集合并资源和manifest 52
4.3.4 创建构建variant 53
4.3.5 variant 过滤器 55
4.4 签名配置 56
4.5 总结 58
5 管理多模块构建 59
5.1 解剖多模块构建 59
5.1.1 重访构建生命周期 61
5.1.2 模块任务 62
5.2 将模块添加到项目 62
5.2.1 添加一个Java 依赖库 63
5.2.2 添加一个Android 依赖库 64
5.2.3 融合Android Wear 64
5.2.4 使用Google App Engine 65
5.3 提示和最佳实践 69
5.3.1 在Android Studio 中运行模块任务 69
5.3.2 加速多模块构建 70
Gradle for Android 中文版
【XIV】
5.3.3 模块耦合 70
5.4 总结 71
6 运行测试 72
6.1 单元测试 72
6.1.1 JUnit 72
6.1.2 Robolectric 76
6.2 功能测试 77
6.3 测试覆盖率 81
6.4 总结 82
7 创建任务和插件 83
7.1 理解Groovy 83
7.1.1 简介 84
7.1.2 类和成员变量 85
7.1.3 方法 85
7.1.4 Closures 86
7.1.5 集合 87
7.1.6 Gradle 中的Groovy 88
7.2 任务入门 89
7.2.1 定义任务 89
7.2.2 任务剖析 91
7.2.3 使用任务来简化release 过程 94
7.3 Hook到Android插件 97
7.3.1 自动重命名APK 97
7.3.2 动态创建新的任务 98
7.4 创建自己的插件 100
7.4.1 创建一个简单的插件 100
7.4.2 分发插件 101
目录
【XV】
7.4.3 使用自定义插件 103
7.5 总结 104
8 设置持续集成 105
8.1 Jenkins 105
8.1.1 设置Jenkins 106
8.1.2 配置构建 107
8.2 TeamCity 109
8.2.1 设置TeamCity 110
8.2.2 配置构建 110
8.3 Travis CI 111
8.4 自动化进阶 113
8.4.1 SDK mananger 插件 114
8.4.2 运行测试 114
8.4.3 持续部署 115
8.4.4 Beta 分发包 116
8.5 总结 117
9 高级自定义构建 118
9.1 减少APK文件大小 118
9.1.1 ProGuard 119
9.1.2 缩减资源 120
9.2 加速构建 121
9.2.1 Gradle 参数 122
9.2.2 Android Studio 123
9.2.3 Profiling 124
9.2.4 Jack 和Jill 125
9.3 忽略Lint 126
9.4 在Gradle中使用Ant 126
9.4.1 在Gradle 中运行Ant 任务 126
Gradle for Android 中文版
【XVI】
9.4.2 导入整个Ant 脚本 127
9.4.3 属性 129
9.5 高级应用部署 129
9.6 总结 131
Android 应用的构建过程是一个非常复杂的过程,涉及很多工具。首先,所有的资源文件都会被编译,并且在一个R 文件中引用。然后Java 代码被编译,之后通过dex 工具转换成dalvik 字节码。最后这些文件会被打包成一个APK 文件,这个应用被最终安装在设备中之前,APK 文件会被一个 debug 或者release 的key 文件签名。
这些步骤如果由人工去完成,不仅烦琐,而且费时。幸运的是,Android 开发小组致力于提供关注这一打包过程的开发者工具,2013 年他们推出了Gradle,作为Android 应用新的首选构建系统。Gradle 设计的方式使得它可以很容易地扩展构建和插入到现有的构建过程中。它提供了一套类Groovy 的DSL 语言,用于申明构建和创建任务,让依赖管理变得更加简单。此外,它还是完全免费和开源的。
现在,许多Android 开发者已经切换到Gradle,但是仍有大部分人不知道如何很好地利用它,不清楚为什么几行代码就可以实现。本书旨在帮助那些开发人员,将他们变成Gradle 的使用者。本书从Gradle 基础知识开始,然后介绍依赖、构建variants、测试、创建任务等。
本书涵盖内容
第1 章,Gradle 和Android Studio 入门,解释为什么Gradle 很有用、如何利用AndroidStudio 开始工作,以及Gradle Wrapper 是什么。
第2 章,基本自定义构建,深入到Gradle 构建文件和任务,展示如何做简单的自定义构建过程。
第3 章,依赖管理,展示如何使用依赖,包括本地和远程依赖,并解释了依赖相关的概念。
第4 章,创建构建Variants,介绍构建类型和product flavors,解释其不同之处,并展示如何使用签名参数。
第5 章,管理多模块构建,解释如何管理应用、依赖库、测试模块,以及如何集成它们。
第6 章,运行测试,介绍了一些用于单元测试和功能测试的测试框架,以及如何进行自动化测试并获得测试覆盖率报告。
第7 章,创建任务和插件,解释Groovy 的基础知识,并展示了如何创建自定义任务,以及如何将其hook 到Android 构建进程。本章还介绍了如何创建一个可重用的插件。
第8 章,设置持续集成,使用最常用的CI 系统,提供自动化构建指导。
第9 章,高级自定义构建,展示一些提示和技巧来缩小APK 的大小,加快构建进程,基于密集度或平台来分割APK。
你还需要什么
为了演示所有的例子,你需要一台装有Windows、Mac OS X 或者Linux 的电脑。你还需要安装Java 开发组件,建议你安装Android Studio,因为其在大部分章节都有提及。
这本书是为谁而写的
这本书是为了那些想更好地理解构建系统、成为构建进程能手的Android 开发者而编写的。我们将从Gradle 的基础知识讲起,然后是创建自定义任务和插件,再到自动生成构建进程。我们假设你熟悉Android 平台的开发。
约定
在本书中,你会发现很多文本样式用于区分不同的信息。下面是这些样式的一些例子和它们的含义。
文本中的代码词汇、数据库表名、文件夹名、文件名、文件扩展、路径名称、假设的URL 地址、用户输入以及Twitter 用户定位如下所示。(每个build.gradle 文件代表着一个项目。)
Gradle for Android中文版
【VIII】
代码块的样式如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:1.2.3’
}
}
每个命令行输入或输出命令如下所示:
$ gradlew tasks
新的术语和重要的单词将会是黑体。例如,你在屏幕上看到的单词,例如菜单或弹窗,将会这样显示:“在Android Studio 中,你可以通过在屏幕上点击Start a new Android StudioProject”开始一个新的项目。
警告或重要注释将会像这样在一个框中显示。
提示和技巧会像这样显示。
用户反馈
非常欢迎读者的反馈。这可以让我们了解你对本书的看法—哪些你喜欢,哪些你不喜欢。读者的反馈可以帮助我们调整内容,从而使读者能够获得更多收益。
准备发送给我们的一般的反馈,只需发送电子邮件到feedback@packtpub.com,并在邮件内容中指出书名即可。
如果你在某个方面有所专长,并且你有兴趣写书或者为一本书贡献内容,请阅读我们的作者向导。
客户支持
现在,你可以自豪地说你是一本Packt 发行的书的主人了,并且,我们还有很多东西可以帮助你充分利用它。
下载源码
你可以在站点上使用你的账号下载所有你购买过的书籍的示例代码。如果你是在其他地方购买的本书,那么你可以访问,注册后,我们会把代码发送给你。
勘误
尽管我们已经尽力确保我们内容的准确性,但错误在所难免。如果你发现我们书中的错误—可能是文字错误或者代码错误—如果你将它报告给我们,我们将不胜感激。这样做,不仅可以让其他读者免于受挫,还能帮助我们改进本书的后续版本。如果你发现任何错误,请进行报告,在以上链接的网站中,选择书名,然后单击Errata Submission 表单链接,填写你所发现的错误细节。一旦你发现的错误被确认,你提交的内容将会被接受,勘误信息将被上传到我们的网站或者添加到对应标题相关的勘误小节列表中。
如果想查询以前提交的勘误信息,并在搜索区域填写书名。需要的信息将会出现在勘误列表中。
侵权
互联网上的盗版问题是所有媒体一直存在的问题。对于Packt,我们非常重视保护我们的版权。如果你从互联网上遇到任何我们产品的非法拷贝,请立即为我们提供网址或者网站名称,以便我们寻求补救。
请通过电子邮件联系我们并附带盗版资料的链接。
非常感谢你帮助保护我们的作者,而我们将为你带来有价值的内容。
问题
如果你对本书有任何方面的疑问,都可以通过电子邮件联系我们,我们将尽最大的努力解决这个问题。
我是一名有着多年Android开发经验的开发者,平时主要负责项目的技术选型和架构设计。在日常开发中,我一直希望能更深入地理解Gradle的构建过程,以便更好地优化构建速度、管理复杂的项目依赖,甚至开发自定义的Gradle插件。 《Gradle for Android 中文版》这本书恰好满足了我的需求。《Gradle for Android 中文版》的书籍内容,我觉得它的切入点非常棒,不仅仅停留在基础语法的介绍,而是深入探讨了Gradle的构建生命周期、Task的执行机制、以及如何利用Gradle脚本进行精细化的构建配置。书中对于多模块项目的构建策略、依赖传递的管理、以及如何通过Gradle脚本实现代码生成、资源处理等高级定制化功能,都有非常详尽的阐述。我尤其对书中关于“性能优化”的部分印象深刻,作者分析了常见的构建瓶颈,并提供了多种行之有效的优化方法,比如增量构建、缓存利用、并行执行等,这些技巧对于我们这种大型项目来说,无疑能带来巨大的效率提升。此外,书中对Gradle插件的讲解也让我眼前一亮,无论是第三方插件的使用,还是自定义插件的开发思路,都得到了清晰的剖析,这为我未来开发内部工具或自动化流程提供了宝贵的参考。读完这本书,我感觉自己对Gradle的掌控力有了质的飞跃,能够更从容地应对各种复杂的构建场景,并为团队提供更专业的构建解决方案。
评分我是一名Android开发者,平日里接触Gradle的机会不算少,但总感觉知其然不知其所以然。这次拿到《Gradle for Android 中文版》,真是抱着极大的期望。翻开第一章,它就以一种非常接地气的方式,从Gradle是什么、为什么选用Gradle入手,循序渐进地讲解了Gradle的核心概念,比如Task、Project、Build Script等。我尤其喜欢作者在讲解Task时,不仅仅是罗列API,而是通过一些实际的开发场景来阐述Task的生命周期、依赖关系以及如何自定义Task。这让我不再觉得Gradle的配置晦涩难懂,而是能理解它背后逻辑。而且,书中对Android项目结构与Gradle的结合也讲得十分透彻,例如如何配置`build.gradle`文件来管理依赖、如何定义不同构建类型(build types)和产品风味(product flavors),以及如何处理多模块项目。这些都是日常开发中经常会遇到的问题,书中提供了非常详细且可操作的解决方案。更令人惊喜的是,书中还涉及了一些Gradle的高级特性,比如插件开发、性能优化等,虽然这些内容可能不是每个开发者都需要深入掌握,但了解这些能够帮助我们更好地理解Gradle的工作原理,并在遇到复杂问题时有更深的洞察力。总的来说,这本书的讲解方式非常适合我这种想要深入理解Gradle的开发者,它既有理论深度,又不乏实践指导,让我对Gradle的学习进入了一个新的境界。
评分作为一名Android初学者,我之前对Gradle的认识仅仅停留在“它就是一个用来构建项目的工具”这个层面。每次遇到`build.gradle`文件里那些密密麻麻的配置,感觉就像是在看天书,只能照搬网上的例子,却不知道为什么这么写。拿到《Gradle for Android 中文版》这本书,我抱着试试看的心态,没想到它完全颠覆了我之前的认知。书里的讲解非常系统,从最基础的Gradle安装、环境配置开始,一步一步地引导我理解Gradle的构建模型。作者用了大量生动的比喻来解释Gradle的Task、依赖管理等概念,让我这个新手也能轻松理解。特别是书中关于“依赖管理”的部分,讲解得非常细致,从如何添加本地库、远程库,到如何处理传递依赖、排除依赖,再到利用的版本控制(versioning)来管理不同模块的依赖版本,这些内容对我来说简直是及时雨。我还学到了如何利用`buildSrc`目录来集中管理项目中的公共配置和自定义任务,这让我的项目结构更加清晰,维护起来也更方便。书中还提供了大量的代码示例,并且这些示例都非常贴合实际的Android开发场景,我可以直接复制粘贴到我的项目中进行尝试,这极大地提高了我的学习效率。读完这本书,我感觉自己不再是那个只懂复制粘贴代码的新手,而是对Gradle有了更深层次的理解,能够更自信地处理项目构建中的各种问题了。
评分我是一名专注于Android开发的技术负责人,在团队中,Gradle构建是我们日常工作的重要组成部分。最近我们团队在面临一些构建效率和项目管理上的挑战,我希望通过深入学习Gradle来找到解决方案。《Gradle for Android 中文版》这本书,从我的专业角度来看,它的内容涵盖了Gradle在Android开发中的各个层面,从基础概念到高级应用,都做了非常详尽的讲解。书中对于Gradle的构建脚本的讲解非常到位,不仅仅是语法的罗列,而是深入剖析了Groovy或Kotlin DSL在Gradle中的应用,以及如何利用这些语言特性来编写更简洁、更强大的构建逻辑。我尤其欣赏书中对“依赖管理”的深入探讨,它不仅涵盖了如何管理第三方库,还详细讲解了如何处理多模块项目之间的内部依赖,以及如何通过版本管理策略来确保项目的一致性。此外,书中关于“构建性能优化”的部分,提供了非常实用的策略和工具,能够帮助我们识别并解决构建瓶颈,从而显著提升团队的开发效率。书中还涉及了Gradle插件的开发和使用,这对于我们开发定制化的构建工具、自动化部署流程非常有启发。总而言之,《Gradle for Android 中文版》这本书为我提供了一个全面而深入的Gradle学习平台,让我能够更好地理解和运用Gradle,解决团队在构建过程中遇到的实际问题,并推动项目朝着更高效、更规范的方向发展。
评分在翻阅《Gradle for Android 中文版》之前,我对Gradle的理解非常有限,仅限于能够运行它,但对于其内部运作机制却知之甚少。这本书的学习体验真的非常棒,它循序渐进地引导读者理解Gradle的强大之处。从一开始的Gradle概念介绍,到如何组织一个Android项目,再到深入讲解Gradle的各个核心组件,作者都处理得非常恰当。我特别喜欢书中对于“Task”的讲解,它不仅仅是列举了各种预定义的Task,更重要的是阐述了Task之间的依赖关系,以及如何编写自定义Task来满足特定的构建需求。这种讲解方式让我能够真正理解Gradle是如何驱动整个构建过程的。书中的代码示例也非常实用,很多都是直接针对Android开发中的常见问题,例如如何配置`build.gradle`文件来管理依赖、如何实现不同构建环境的配置、以及如何处理多模块项目中的依赖关系。这些内容对我来说非常有价值,让我能够快速将学到的知识应用到实际项目中。更令我惊喜的是,书中还涵盖了一些Gradle的进阶话题,例如Gradle的插件系统、性能优化策略等,这让我对Gradle的理解更加全面和深入。通过阅读这本书,我感觉自己对Gradle的掌握程度有了显著提升,能够更加自信地处理项目构建中的各种问题,并能够更有效地利用Gradle来提高开发效率。
评分这本书的确解决了一些棘手问题,给了,一些思路,挺好的,只是内容有点少
评分书不错,100块钱买了5本!划算
评分好的!~…!……!
评分物流非常慢,快递员派送派了三天,我催促之后,换了一个快递员才派到!
评分看着还不错
评分不错
评分可以
评分物流实在是快
评分好薄,不过也还行
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有