图书前言

无论你多么擅长编写代码,但若不具备集成开发环境(IDE)方面的相关知识,你将面临许多障碍。本书介绍Google用于开发Android应用的官方工具——Android Studio。每章都关注一个特定的主题,逐步从基本IDE用法扩展到高级知识,如编写插件来扩展IDE的功能。

本书读者对象

本书旨在为任何级别的开发人员提供经验。无论你是Android新手,还是经验丰富的Android开发人员(之前使用过基于Eclipse的ADT),本书都将引导你达到一个技术新高度,这样就可以利用Android Studio的工具释放你真实的开发潜能。

本书内容

本书不仅涵盖开发Android应用必备的Android Studio特性,也涉及整个开发周期的相关主题。以下是部分Android Studio的基本或扩展能力的主题示例:

● 使用Git共享代码并管理版本

● 使用Gradle管理构建

● 通过测试保持代码的可维护性和零bug

● 通过持续集成控制整个构建和测试周期

● 为Android Studio编写插件扩展其功能或添加期望的定制特性

● 使用Android Studio及第三方工具来加快开发进度

本书结构

每章都会关注某个特定的Android Studio相关话题或附带的工具,阐述它的必要性以及如何使用或配置。有些章提供代码示例来演示用例或为该章的主题提供示例。

● 第1章“新手入门”:安装和设置开发环境。创建可以运行项目的模拟器。

● 第2章“Android Studio基础知识”:首先使用Android Studio创建一个新项目,构建你的项目,将项目迁移到Android Studio上。

● 第3章“使用Android Studio开发Android应用”:Android Studio项目结构。如何使用Asset、XML文件和Android Manifest文件。创建并使用模块。

● 第4章“深入Android Studio”:深入了解Android Studio,介绍菜单、编辑器、视图和快捷方式。讨论如何使用Live模板和重构功能,如何构建项目并为APK签名。

● 第5章“使用Android Studio创建布局”:如何在Android Studio中使用布局。介绍UI预览和UI开发工具。分析如何管理外部依赖关系,如何使用和组织Asset。

● 第6章“Android构建系统”:如何有效地使用和配置Gradle,如何编写Gradle插件。

● 第7章“多模块项目”:在项目中添加模块。如何创建并使用Phone/Tablet、Library、Wear、TV、Glass、Auto和Cloud模块。

● 第8章“调试和测试”:使用ADB调试Android代码。详细了解Android设备监视器、Android虚拟设备、Lint以及如何测试代码。

● 第9章“使用版本控制系统:Git”:如何分享项目,使用Git启用版本控制。

● 第10章“持续集成”:使用持续集成服务器,使构建、测试及发布自动化。

● 第11章“在Android Studio中使用Android NDK”:安装Android NDK,通过Android NDK构建用C / C++编码的项目。

● 第12章“编写自己的插件”:编写自己的插件来扩展IntelliJ平台的功能。与UI、编辑器交互,添加你自己的操作。

● 第13章“第三方工具”:其他可以帮助和加快开发生命周期的附加工具。

为什么你需要本书

任何现代计算机,只要操作系统支持Android SDK和Android Studio,都足以运行Android Studio、构建Android应用并运行本书中的示例。你需要在操作系统上安装适当的Android SDK、Android Studio和Java虚拟机(JVM)。某些章需要安装额外的工具或框架,如Android NDK。可在第1章中找到有关所需硬件要求的更多信息。

撰写本书的原因

2007年11月,谷歌发布了Android SDK预览版,允许开发人员开始使用这个新的手机操作系统。大约两年后,2009年10月,Google向公众发布了作为Eclipse插件组的ADT(Android Developer Tools)。

作为Google I/O 2009大会的与会者之一,我(Murat)很幸运拥有了一台Android设备;我可能是最早一代的开发人员,下载ADT插件并在Eclipse上安装使用。在过去这些年里,我们怀着同样的激情下载和尝试新的ADT版本以及与之一同发布的新东西。

当时,我是一名Eclipse贡献者,知道如何编写自己的插件,扩展IDE的功能,实现我需要的行为和功能。所以每当ADT发布时,我就会越发兴奋地要去看工具能完成什么。

2013年5月,大约是在我们与ADT爱恨交织了四年后,同样是在Google I/O大会上,Google发布了Android Studio,并很快成为支持Android开发的官方IDE。ADT虽然并不完美,但我们非常熟悉它。像其他许多开发人员一样,我们知道所有的快捷键,知道它是如何工作的,知道当某些功能不工作时该如何解决,以及如何让项目结构化。更重要的是,我们可以编写自己的插件,或者检查ADT插件找到出错的原因。随着Android Studio的发布,我们突然有了一个新的平台,但对其所知甚少。

在一段时间里我们拒绝切换到Android Studio,但最后还是做了一次尝试。突然间,Android这个我们熟悉的平台,仿佛变成了陌生人。因为IntelliJ和Gradle带来的变化,新的项目结构也大相径庭。采用IntelliJ后,我们决定遵循IntelliJ快捷键,而不是使用IntelliJ的Eclipse快捷键映射,这使得情况变得更糟。我们几乎不能搜索到一个文件或一段代码,无法通过菜单导航,通过右击创建文件,甚至生成一些基本的getter和setter方法。我们从ADT专家变成了Android Studio初学者。

终于,我们受够了!我们都是经验丰富的开发人员,但与Android Studio的斗争并不能彰显我们的技能。所以我们开始关注IntelliJ话题,把IntelliJ快捷键小抄钉在我们的小隔间里,阅读IntelliJ插件代码,并强迫自己在日常工作中使用Android Studio。

本书是我们自己在这条艰难的道路上学会走路的经验总结。当我们从Eclipse的ADT切换到基于IntelliJ的Android Studio时,我们自己所需要的正是本书。我们相信,任何开发人员,无论是Android新手,还是曾经使用ADT的经验丰富的老手,都会发现本书有助于拓展他(或她)的工具知识,这些工具能切实地支持编码技巧。

下面引用我前一本书的合著者Alex Theedom的一句话,“我们写的每一章都有这样一个目标:写我们自己想读的内容。”我们带着Onur(荣誉)追寻相同目标的结果,就是此时你手里的书。

我们希望你在阅读本书时,能够感受到我们撰写时的快乐。

源代码

在读者学习本书中的示例时,可以手工输入所有代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作网站www.wiley.com/go/expertandroid下载。打开网页,接着单击本书详细页面上的Download Code链接,就可以获得本书所有源代码。

此外,可以访问www.tupwk.com.cn/downpage,输入中文书名或ISBN下载源代码,也可心直接扫描封底的二维码下载。

在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载页,查看本书和其他Wrox图书的所有代码。

勘误表

尽管我们已经尽了各种努力来保证文章或代码中不出现错误。但是错误总是难免的,如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感谢。通过勘误表,可以让其他读者避免挫折,当然,这还有助于提供更高质量的信息。

要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search或书名列表查找本书。然后在本书的详细页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和张贴的所有勘误项。完整的图书列表包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。

如果你没在Book Errata网页找到你发现的错误,请访问www.wrox.com/contact/ techsupport.shtml,在那里完成表单将你发现的错误发送给我们。我们将会检查该信息,一旦确实就会发布到本书的勘误表页面,并在本书的后续版本中修复该问题。

p2p.wrox.com

要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于你张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给你发送感兴趣的论题。Wrox作者、编辑和其他业界专家都会到这个论坛上来讨论问题。

在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:

(1) 进入p2p.wrox.com,单击Register链接。

(2) 阅读使用协议,并单击Agree按钮。

(3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按钮。

(4) 你会收到一封电子邮件,其中的信息表述了如何验证账户,完成加入过程。

加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。

关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。