零、前言

这本书是学习高级安卓应用开发的实用指南。这本书有助于掌握安卓的核心概念,并快速将知识应用到现实项目中。在整本书中,一个应用被创建,在每一章都有所发展,这样读者就可以很容易地理解和吸收这些概念。

这本书分为十二章。前三章重点介绍了应用的设计,解释了设计的基本概念和安卓系统中使用的编程模式。接下来的几章旨在改进应用,访问服务器端下载要在应用中显示的信息。一旦应用在功能上完成,就可以使用材质设计组件和其他第三方库对其进行改进。

在完成之前,额外的服务被添加到应用中,例如位置服务、分析、崩溃报告和货币化。最后,应用被导出,解释不同的构建类型和证书,并上传到 Play Store,准备分发。

这本书涵盖了什么

第 1 章入门,讲解安卓 6 棉花糖的基础知识和材质设计的重要概念。我们将设置开始开发所需的工具,并且可选地,我们将安装一个比安卓默认模拟器更快的超快模拟器,这将帮助我们测试我们的应用。

第二章设计我们的 App ,介绍了创建 App 的第一步——设计导航——以及不同的导航模式。我们将使用滑动屏幕的标签模式,解释和使用碎片,这是安卓应用开发的一个关键组成部分。

第 3 章从云中创建和访问内容,涵盖了在我们的应用中显示来自互联网的信息所需的所有内容。这些信息可以在外部服务器或应用编程接口上。我们将使用 Parse 创建我们自己的服务器,我们将使用凌空和 OKHttp 使用高级网络请求访问它,处理信息并使用 Gson 将其转换成可用的对象。

第 4 章并发和软件设计模式,讲述了安卓系统中的并发以及处理并发的不同机制,比如 AsyncTask、Services、Loaders 等等。本章的第二部分讲述了安卓系统中最常见的编程模式。

第 5 章列表和网格,从列表视图开始讨论列表和网格。它解释了这个组件是如何在 RecyclerView 中发展的,并且作为一个例子,它展示了如何创建一个包含不同类型元素的列表。

第 6 章CardView 和 Material Design ,重点从用户界面角度对 app 进行改进,介绍 Material Design,讲解并实现 CardView、工具栏、CoordinatorLayout 等功能。

第 7 章图像处理和内存管理,主要讲的是在我们的 app 中显示图片,这些图片是使用不同的机制从互联网上下载的,比如凌空或者毕加索。它还涵盖了不同类型的图像,如矢量绘图和九补丁。最后,它讨论了内存管理以及防止、检测和定位内存泄漏。

第 8 章数据库和加载器,本质上解释了数据库在 Android 中是如何工作的,什么是内容提供者,以及如何让数据库使用 CursorLoaders 直接与视图通信。

第九章推送通知和分析,讲述如何使用谷歌云消息和解析实现推送通知。本章的第二部分讨论分析,这对于了解用户如何使用我们的应用、捕获错误报告以及保持我们的应用没有 bug 至关重要。

第 10 章位置服务通过在应用中实现一个示例,从开发人员控制台中的初始设置到应用中显示位置标记的最终地图视图,介绍了 MapView。

第十一章安卓上的调试和测试,大部分都是讲测试的。它涵盖了单元测试、集成和用户界面测试。它还讨论了使用市场上不同的工具和最佳实践,通过自动化测试来开发可维护的应用。

第 12 章货币化、构建流程、发布,展示如何将 app 货币化,并讲解广告货币化的关键概念。它展示了如何导出具有不同构建类型的应用,最后,如何在谷歌 Play 商店上传和营销该应用。

这本书你需要什么

您的系统必须有以下软件来执行本书中提到的代码:

  • 安卓工作室 1.0 或更高版本
  • Java 1.7 或更高版本
  • 安卓 4.0 或更高版本

这本书是给谁的

如果你是一个有一些 Gradle 经验的 Java 或项目开发人员,想成为专家,那么这本书就是为你准备的。Gradle 的基础知识是必不可少的。

惯例

在这本书里,你会发现许多区分不同种类信息的文本样式。以下是这些风格的一些例子和对它们的意义的解释。

文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名和伪 URL 如下所示:“我们可以通过使用include指令来包含其他上下文。”

代码块设置如下:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

当我们希望将您的注意力吸引到代码块的特定部分时,相关的行或项目以粗体显示:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

新名词重要词语以粗体显示。您在屏幕上看到的单词,例如菜单或对话框中的单词,出现在文本中,如下所示:“单击下一步按钮,您将进入下一个屏幕。”

警告或重要提示会出现在这样的框中。

类型

提示和技巧是这样出现的。

读者反馈

我们随时欢迎读者的反馈。让我们知道你对这本书的看法——你喜欢或不喜欢什么。读者反馈对我们来说很重要,因为它有助于我们开发出你真正能从中获益的标题。

要给我们发送一般反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>,并在您的邮件主题中提及书名。

如果你对某个主题有专业知识,并且对写作或投稿感兴趣,请参见我们位于www.packtpub.com/authors的作者指南。

客户支持

现在,您已经自豪地拥有了一本书,我们有许多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您在http://www.packtpub.com的账户下载您购买的所有 Packt Publishing 书籍的示例代码文件。如果您在其他地方购买了这本书,您可以访问http://www.packtpub.com/support并注册,以便将文件直接通过电子邮件发送给您。

下载本书的彩色图片

我们还为您提供了一个 PDF 文件,其中包含本书中使用的截图/图表的彩色图像。彩色图像将帮助您更好地理解输出中的变化。您可以从http://www . packtpub . com/sites/default/files/downloads/4221 OS _ color images . pdf下载此文件。

勘误表

尽管我们尽了最大努力来确保我们内容的准确性,但错误还是会发生。如果你在我们的某本书里发现了错误——可能是文本或代码中的错误——如果你能向我们报告,我们将不胜感激。通过这样做,你可以让其他读者免受挫折,并帮助我们改进这本书的后续版本。如果您发现任何勘误表,请访问http://www.packtpub.com/submit-errata,选择您的书籍,点击勘误表提交表链接,并输入您的勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上传到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请前往https://www.packtpub.com/books/content/support并在搜索栏中输入图书名称。所需信息将出现在勘误表部分。

盗版

互联网上版权材质的盗版是所有媒体的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上遇到任何形式的我们作品的非法拷贝,请立即向我们提供位置地址或网站名称,以便我们寻求补救。

请通过<[copyright@packtpub.com](mailto:copyright@packtpub.com)>联系我们,获取疑似盗版资料的链接。

我们感谢您在保护我们的作者方面的帮助,以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有问题,可以在<[questions@packtpub.com](mailto:questions@packtpub.com)>联系我们,我们将尽最大努力解决问题。