前 言
对于大多数人而言,智能手机已经成为它们自身的一种扩展。现在允许运行的设备已经超过20亿月活,而Android已然成为世界上最常用的智能手机操作系统之一,由于每位用户平均会安装50个应用,致使仅2017年就有超过940亿的应用下载量。
无处不在且不可或缺的智能手机如此先进且个性化,经研究表明,把手机放错地方、手机失去网络连接或手机电池电量不足,都会让人们备感焦虑。
自2008年推出以来,Android系统已经扩展到手机之外,成为各种硬件的开发平台,拥有来自1300多个品牌的24 000台设备,其中包括平板电脑、电视、手表、汽车、物联网设备等所有产品。与此同时,物联网设备已有28个平台和SDK发布。
这些创新与生态系统的规模相结合,为开发人员提供了巨大的机会——可以为全球用户创建新的应用。
Android为移动应用开发提供了一个开放的平台。没有人工障碍,Android开发人员可以自由编写充分利用各种设备的应用,并可以使用Google Play进行分发,开发人员可将免费和付费应用分发到全球兼容的Android设备上。
《Android高级编程(第4版)》是为所有Android设备构建Android应用的实战指南,是使用Android Studio 3.5基于Android SDK 10.0编写的。 《Android高级编程(第4版)》介绍了一系列示例项目,每个项目都介绍了新的功能和技术,以最大限度地利用Android系统特性。《Android高级编程(第4版)》既涵盖入门的所有基本功能点,也为有经验的移动开发人员提供了可充分利用的Android功能及特性,还提供了增强现有产品或创建创新性产品的信息。
Android团队每年都会发布一个新的主要平台版本,每隔几个月发布一个新版本的Android Studio,以及每年多次对Jetpack进行增量更改,例如支持库和Android架构组件。有了这样快速的发布周期,就可以定期更改、添加和改进你将使用的工具、平台API和开发库,还有《Android高级编程(第4版)》中介绍到的工具、平台API和开发库。为了最大限度地减少这些变化的影响,Android工程团队努力确保向后兼容性。
但是,未来的版本将与《Android高级编程(第4版)》中提供的一些信息相关,并非所有活动的Android设备都将运行最新的平台版本。为了缓解这种情况,我们尽可能使用向后兼容的支持库,并提供有关哪些平台版本支持所述功能的详细信息,以及可能存在哪些替代方案以便为运行早期平台设备的用户提供支持。
此外,《Android高级编程(第4版)》中包含的讲解和示例将为你提供使用当前SDK编写引人注目的移动应用所需的基础知识,以及可以快速适应未来增强功能的灵活性。
《Android高级编程(第4版)》读者对象
《Android高级编程(第4版)》面向有兴趣在Android平台上创建应用的任何人。无论是其他平台上已经拥有丰富经验的移动开发人员,还是第一次尝试编写移动应用的新手,《Android高级编程(第4版)》包含的内容对你而言都是有价值的。
如果使用过智能手机(尤其是Android手机),那么这对你学习Android开发会有所帮助,但这并不是必需的。我们希望你具备软件开发经验,熟悉基本的面向对象范例。虽然不严格要求,但最好了解一些Java语法。
第1章和第2章介绍移动开发和Android开发平台,并包含帮助你入门的说明。除此之外,《Android高级编程(第4版)》没有必要按顺序阅读每一章,尽管在进入其余章节之前,对第3~7章中描述的核心组件的理解很重要。第11章介绍有关如何确保应用响应性和高效性的重要细节,而第12~14章介绍如何为应用提供丰富而一致的用户体验。其余章节涵盖了各种功能特性,它们的相关性将根据应用的不同而有所不同,可以根据自己的兴趣或需要按任何顺序进行阅读。
《Android高级编程(第4版)》内容
第1章介绍Android,包括它是什么以及它如何融入移动开发生态系统。首先,介绍Android作为一个开发平台提供了什么,以及为什么它是创建手机应用的一个令人兴奋的机会。然后,我们将进行更详细的研究。
第2章首先介绍一些移动开发的最佳实践并解释如何下载和安装Android Studio、Android SDK,然后介绍Android Studio中包含的一些工具和功能,并演示如何使用它们来创建和调试新的应用。
第3~7章深入介绍基本的Android应用组件——首先讲述组成Android应用的组件,然后继续讨论Activity和Fragment以及相关的生存期和生命周期。
第8~11章介绍应用的配置清单和Gradle构建系统,并学习更多关于外部资源框架的知识,这些资源框架可用于支持不同国家、不同语言、不同形状和大小的设备。
在介绍用于执行操作和支持应用组件间通信的Intent与Broadcast Receiver机制之前,首先介绍如何使用Layout、View和Fragment创建最基本的用户界面,接着介绍如何访问网络资源,带你详细了解数据的存储、检索和共享。接下来,你将从偏好保存机制开始,转到文件处理、数据库和Content Provider——包括从原生数据库访问数据。最后介绍如何确保应用始终保持良好的响应性,以及如何在执行后台操作时更高效地使用电池。你将了解支持异步执行的线程API和支持高效调度的后台工作机制,你还将学习到如何创建和显示交互式通知。
第12~14章建立在第5章介绍的UI框架之上。你将学习通过材料设计的原则增强用户体验,并针对各种大小和分辨率的屏幕进行优化以提高应用的可访问性。通过了解各种可用的导航选项,学习使用Animation添加动画、使用Toolbar和Menu等控件,最终能够进一步提升用户体验。
第15~19章着眼于介绍更高级的主题。你将学习如何使用Google Play服务添加交互式地图、查找用户的位置以及如何创建地理位置和感知限制。通过使用运动和环境传感器——包括指南针、加速度计和气压计——你将使自己的应用对所处的环境做出反应。
在了解如何播放和录制多媒体以及如何使用相机拍照和录制视频之后,你将了解到Android的通信功能,包括蓝牙、NFC和Wi-Fi直连。接下来,你将了解应用如何使用动态窗口小部件、动态壁纸和应用快捷方式直接让用户与主屏幕交互。
第20章讨论几个高级开发主题,包括安全性、使用指纹传感器和严格模式,以及电话API、用于发送和接收SMS消息的API。
最后,第21章研究构建、发布、监控和货币化应用的过程,特别包含了在Google Play中发布及分发应用的详细信息。
《Android高级编程(第4版)》结构
《Android高级编程(第4版)》按逻辑顺序构建,以帮助不同开发背景的读者学习如何编写高级Android应用。不要求按顺序阅读每个章节,但是有几个示例项目跨越多章进行开发,在每个阶段添加了新功能和其他增强功能。
已经安装了Android Studio的经验丰富的移动开发人员以及具备Android开发工作相关知识的移动开发人员可以概览前两章——介绍移动开发和搭建开发环境——然后深入研究第3~7章。这些章涵盖了Android开发的基础知识,因此深入了解其中描述的概念是极其重要的。
学习了这些内容后,你可以继续阅读其余章节,其中介绍了材料设计、地图、基于位置的服务、后台应用以及更高级的主题,例如硬件交互和网络。
使用《Android高级编程(第4版)》的要求
要使用《Android高级编程(第4版)》中的代码示例,需要通过下载Android Studio和Android SDK来创建Android开发环境,也可以使用其他IDE,甚至可以使用命令行构建应用。但是,我们假设使用的是Android Studio。
Android开发同时支持在Windows、macOS、Linux操作系统上使用Android Studio以及Android网站提供的SDK。
在使用《Android高级编程(第4版)》和进行Android应用开发的过程中,一台物理的Android设备不是必需的,但有了之后,可能会更方便一些。
注意:
第2章更详细地描述了这些要求,并描述了下载地址以及如何安装这些组件。
源代码
读者在学习《Android高级编程(第4版)》中的示例时,可以手动输入所有代码,也可使用《Android高级编程(第4版)》附带的源代码文件。《Android高级编程(第4版)》使用的所有源代码都可以从《Android高级编程(第4版)》合作站点www.wrox.com下载。
另外,也可进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看《Android高级编程(第4版)》和其他Wrox图书的所有代码。
还可扫描《Android高级编程(第4版)》封底的二维码来下载源代码。
提示:
由于许多图书的书名都十分类似,因此按ISBN搜索是最简单的,《Android高级编程(第4版)》英文版的ISBN是978-1-118-94952-8。
下载代码后,只需要用自己喜欢的解压缩软件进行解压缩即可。
勘误表
尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但错误总是难免的。如果在《Android高级编程(第4版)》中找到错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。
请给wkservice@vip.163.com发电子邮件,我们会检查你提供的信息,如果是正确的,我们将在《Android高级编程(第4版)》的后续版本中采用。
要在网站上找到《Android高级编程(第4版)》的勘误表,可登录http://www.wrox.com,通过Search工具或书名列表查找《Android高级编程(第4版)》,然后在《Android高级编程(第4版)》的细目页面上,单击Book Errata链接。在这个页面上可查看Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每《Android高级编程(第4版)》的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。