Gradle for Android 中文版
  • 推荐0
  • 收藏1
  • 浏览1.8K

Gradle for Android 中文版

Kevin Pelgrims (作者)  余小乐 (译者)

  • 书  号:978-7-121-30015-8
  • 出版日期:2016-10-20
  • 页  数:148
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: Gradle for Android
  • 原书号:9781783986828
  • 维护人:安娜
Gradle是Android 开发小组于2013年推出的作为Android 应用的首选的构建系统。Gradle可以很容易地扩展构建,并插入到现有的构建过程中来。它提供了一套类Groovy 的DSL 语言,用于申明构建和创建任务,让依赖管理变得更加简单。此外,它是完全免费和开源的。
本书共分9章,依次介绍了Gradle的基础知识、基本自定义构建、依赖管理、创建构建Variants、管理多模块构建、运行测试、创建tasks和插件、设置持续集成,以及高级自定义构建。
本书将教会你如何使用Android Studio和Gradle来构建新的Android应用和依赖。
前言
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 很有用、如何利用Android
Studio 开始工作,以及Gradle Wrapper 是什么。
第2 章,基本自定义构建,深入到Gradle 构建文件和任务,展示如何做简单的自定义构
建过程。
第3 章,依赖管理,展示如何使用依赖,包括本地和远程依赖,并解释了依赖相关的概念。
前言
【VII】
第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 Studio
Project”开始一个新的项目。
警告或重要注释将会像这样在一个框中显示。
提示和技巧会像这样显示。
用户反馈
非常欢迎读者的反馈。这可以让我们了解你对本书的看法—哪些你喜欢,哪些你不喜欢。
读者的反馈可以帮助我们调整内容,从而使读者能够获得更多收益。
准备发送给我们的一般的反馈,只需发送电子邮件到feedback@packtpub.com,并在
邮件内容中指出书名即可。
如果你在某个方面有所专长,并且你有兴趣写书或者为一本书贡献内容,请阅读我们的作
者向导:www.packtpub.com/authors。
客户支持
现在,你可以自豪地说你是一本Packt 发行的书的主人了,并且,我们还有很多东西可以
前言
【IX】
帮助你充分利用它。
下载源码
你可以在http://www.packtpub.com 站点上使用你的账号下载所有你购买过的书籍
的示例代码。如果你是在其他地方购买的本书,那么你可以访问http://www.packtpub.
com/support,注册后,我们会把代码发送给你。
勘误
尽管我们已经尽力确保我们内容的准确性,但错误在所难免。如果你发现我们书中的错
误—可能是文字错误或者代码错误—如果你将它报告给我们,我们将不胜感激。这样做,
不仅可以让其他读者免于受挫,还能帮助我们改进本书的后续版本。如果你发现任何错误,请
访问http://www.packtpub.com/submit-errata 进行报告,在以上链接的网站中,选
择书名,然后单击Errata Submission 表单链接,填写你所发现的错误细节。一旦你发现的错误
被确认,你提交的内容将会被接受,勘误信息将被上传到我们的网站或者添加到对应标题相关
的勘误小节列表中。
如果想查询以前提交的勘误信息,请访问https://www.packtpub.com/books/
content/support,并在搜索区域填写书名。需要的信息将会出现在勘误列表中。
侵权
互联网上的盗版问题是所有媒体一直存在的问题。对于Packt,我们非常重视保护我们的
版权。如果你从互联网上遇到任何我们产品的非法拷贝,请立即为我们提供网址或者网站名称,
以便我们寻求补救。
请通过电子邮件copyright@packtpub.com 联系我们并附带盗版资料的链接。
非常感谢你帮助保护我们的作者,而我们将为你带来有价值的内容。
问题
如果你对本书有任何方面的疑问,都可以通过电子邮件questions@packtpub.com 联
系我们,我们将尽最大的努力解决这个问题。

目录

目录
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

读者评论

  • 上市没
    erdawang发表于 2016/10/31 16:55:32
    • 已经上市,天猫店估计已经到货了

      陈晓猛发表于 2016/10/31 20:13:23

图书类别

相关博文

  • 通过Gradle为APK瘦身

    管理员账号 2017-01-05

    小编说:在过去几年中,APK 文件的大小曾急剧增长态势。一般来说,其原因如下:Android 开发者获取了更多的依赖库,添加了更多的密度,Apps 增加了更多的功能。但实际上我们应该让APKs 尽可能的小,更小的APK 意味着用户可以更...

    管理员账号 2017-01-05
    993 1 0 0

相关图书

Android进阶之光(第2版)

刘望舒 (作者)

本书是一本Android进阶类图书,书中各知识点由浅入深、环环相扣,最终这些知识点形成了一个体系结构。本书共分为11章。第1章介绍从Android 5.0到An...

 

Android音视频开发

何俊林 (作者)

近年来,直播、短视频行业的相关业务发展迅猛,本书主要介绍其中涉及的Android音视频开发相关技术。本书一共有11章,分别介绍了音视频基础知识、MediaPla...

¥69.00

Android进阶解密

刘望舒 (作者)

本书是一本Android进阶书籍,主要针对Android 8.0系统源码并结合应用开发相关知识进行介绍。本书共分为17章,从3个方面来组织内容。<br>第一方面...

¥69.00

Android自定义控件开发入门与实战

启舰 (作者)

在Android中,官方提供的控件是非常有限的,而我们所面临的需求却是多样的。大家在工作中难免会接触到自定义控件的需求,但系统讲解自定义控件知识的书籍却少之又少...

¥99.00

深入剖析Android新特性

强波 (作者)

本书对最近几个版本(5.0 ~ 8.0)的主要新增功能进行整理和解析,本书的重点不仅仅是讲解这些新增功能特性的外部行为,而是在结合AOSP的源码基础上,解析这些...

¥79.00

Android应用开发进阶

范磊 (作者)

本书为Android应用开发进阶的参考用书,旨在帮助Android开发者能够快速有效地掌握Andriod应用开发进阶相关的知识点。本书内容为Android应用开...

¥89.00