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,我们非常重视保护我们的版权。如果你从互联网上遇到任何我们产品的非法拷贝,请立即为我们提供网址或者网站名称,以便我们寻求补救。
请通过电子邮件联系我们并附带盗版资料的链接。
非常感谢你帮助保护我们的作者,而我们将为你带来有价值的内容。
问题
如果你对本书有任何方面的疑问,都可以通过电子邮件联系我们,我们将尽最大的努力解决这个问题。