Gradle作为项目构建工具,正在成为Java项目的首选,更是被Google官方推荐为Android项目的构建工具。本书以提出问题和解决方案的方式讲解了Gradle在Android项目开发过程中的使用场景,以及对应场景的技巧。
本书开篇结合Gradle和Android项目的基础知识,包括如何配置Android项目的基本配置,如SDK的版本等,举例讲解了Android项目初期时Gradle的一些使用场景。然后详细地讲解了Gradle在参与Android项目交付过程中的用途,如对APK的数字签名、方便地生成多种构建类型等。最后关于一些高级用法做了详细的介绍,比如自定义任务和Gradle在测试中的用途,以及提高构建的性能等。可以说涵盖了Android项目中关于Gradle的大部分使用场景。
本书内容丰富,结合示例介绍了很多实用的技巧,可以作为一本参考书。本书在涉及到具体的Groovy或者Android知识的时候也会做讲解,所以如果对于Groovy和Android不是专家也可以无障碍地阅读本书。虽然本书对于Groovy和Android的知识有一定的涵盖,但是本书并不适合用于深入学习Groovy或者Android,本书侧重于讲解对Gradle的理解以及Gradle在Android项目的应用, 如果你是Android开发人员或者你想要学习Android开发,那么本书就非常适合你。
一本让你真正学会|用好Gradle构建移动项目的实践指南
序
本书正是我们所需要的。当 Google 更换 IDE 的时候,Head First Android Development正好写到一半。那时候,几乎所有人都在使用安装了 Android 开发工具集的 Eclipse。但是现在,Google 迫使开发者切换到基于 Idea 的 Android Studio。
我们已经习惯了类似这样的事——大多数的技术作者。一些制造商从使用新奇的事物切换到甚至更新奇的事物,类似这样的事情几乎随时都在发生。你重写所有的示例代码,更新所有的图片,删掉现在无关的功能,引入新技术中最有用的功能。但是从 Eclipse切换到 Android Studio 非常特殊,因为新的 IDE 拥有一个更强大的引擎。
Android Studio 使用 Gradle 做构建、打包和部署。除了知道这些名词以外,我们没有人有直接使用 Gradle 的经历。其很像 Maven,但是没有用冗长的 XML 作为配置文件,而是采用更健全和简洁的脚本语言 :Groovy。
我们替换掉了所有的截图,并更新我们已经写好的大约 7 个章节的文字,然后才继续写剩下的部分。但是不久我们很清楚地感觉到使用 Gradle 创建应用程序是如此精妙,但是又是如此不同。几乎所有你能够在 IDE 中做的事情现在都可以在命令行做了,意味着我们可以自动化我们的构建过程了。只需要几个关键的步骤就能尝试不同的类库版本,或者不同风格的构建。并且因为所有的东西都是代码,我们可以像写应用程序的其他部分一样来写构建了。
现在学习 Gralde 对于每一个 Android 开发者来说是一个非常重要的任务。跟学习 Java,或者理解一个 Activity 的声明周期一样。但是通过尝试错误来学习 Gradle 是一个非常痛苦的过程,这时本书就派上用场了。在本书中,你会看到大量实用的技巧来避免最常见的构建问题。无论你是在搭建一个测试系统,自动发布 APK 到产品环境,还是尝试加速你的构建流程或管道,这本书刚好适合你。Ken 的生动的写作风格,以及很多实际的例子,会让你忍不住回来查阅本书。以前 Ken 是一个 Groovy 专家,任何 Groovy 的问题都可以找他咨询,现在他也是一名 Gradle 专家了。
——Dawn和David Griffiths, Head Frist Android Development作者于 2016 年 4 月 20 日
前言
关于本书
本书包含 Gradle 作为 Android 项目的构建系统时相关的实用技巧。Gradle 是 Java 世界中最著名的构建工具之一,并正在逐渐扩展到其他语言,如 C++。Google 的 Android 团队在2013年春天正式将Gradle作为首选的构建系统,之后其使用人群也在逐渐稳固增长。
因为 Gradle 来自 Groovy 生态系统,很多 Android 开发者可能不熟悉。然而对于 Java 开发人员来说学习 Groovy 是非常容易的。本书的目的是通过示例帮你使用 Gradle 完成Android 应用程序中最常见的一些构建任务。
所有的示例使用的 Android SDK 的版本都是 23,模拟器使用的是 Marsh-mallow (Android 6) 或 Lollipop (Android 5.*)。使用 Android Studio 2.0 或者 2.1(beta)作为主要的 IDE,其中集成了 Gradle 2.10 或者更高版本作为构建工具。
预备知识
Android 的 Gradle 插件至少需要一些 Java、Groovy、Gradle 和 Android 的知识。学习这些中的每一个主题,都能找到一整本书,所以本书中不会详细讲解每一个主题。
本书主要针对那些熟悉 Android 开发的人。本书没有提供很多 Android 背景,但是所有示例代码都能够在本书的 Github Repo 中找到。理解 Android 意味着理解 Java,所以本书假设读者也熟悉 Java。
然而本书假设读者对 Groovy 和 Gradle 的了解有限。附录 A 包含对 Groovy 语法和技巧的快速总结。在介绍具体事例的时候也会复习一些遇到的 Groovy 概念。附录 B 有一些基本的 Gradle 信息,但是本书本身就会详细地讨论 Gradle。除了这些局限以外,本书尽可能地被设计得很独立,在合适的地方提供了外部参考(特别是文档)的链接。
本书广泛应用了 Android Studio, 因为它是目前 Android 开发时官方唯一支持的 IDE。Android Studio 提供了关于 Gradle 的视图和工具,我们在描述很多技巧的时候会展示。虽然本书并不是一本 Android Studio 的教程,但是其相关功能还是在可能的时候被提及到,而且如果因此而帮助读者学习了 IDE, 那就更好了。