零、前言

安卓 6 将主要专注于改善整体用户体验,它将带来一些功能,例如重新设计的权限模型,在该模型中,应用不再在安装时自动被授予所有指定的权限,当设备不受用户操作时,可以延长电池寿命的 Doze 电源方案,以及对指纹识别的本机支持。

如果你已经是一名安卓开发者,那么你只需几步之遥,就能利用你现有的开发经验,在用户想要或需要你的应用的任何地方、任何时间接触到他们。

作为一名专业的安卓开发者,你必须为你的用户创建生产就绪的应用。这本书将告诉你,作为一家公司的开发团队的一员、一名独立的应用开发人员,或者仅仅作为一名使用安卓开发最佳实践的程序员,如何运送经过打磨的应用。

到本书结束时,您将能够确定应用中需要改进的关键领域,并实施必要的更改和完善,以确保它在发货前符合安卓的核心应用指南。

这本书涵盖了什么

第一章安卓棉花糖权限,讨论了安卓权限系统和模型是如何庞大的,并做出了一些改变,可以帮助应用开发人员和应用获得更多的牵引力、安装,并让用户能够决定您的应用何时能够使用每个权限相关的功能。不过请记住,这只是一个起点,安卓棉花糖仍然需要获得市场份额并被原始设备制造商采用,让用户有选择的自由。作为应用开发人员,您必须提前做好准备,并确保您的应用开发面向未来,让新用户能够尽快享受最新的更新,同时保持应用的高性能。

第二章App Links,讲述了 App link 如何在安卓棉花糖中变得强大。这让你,应用开发者,帮助系统更好地决定如何行动。处理网络网址会给你更大的曝光度,更大的应用漏斗,更好的体验,你可以提供给你的用户(总结起来就是更好的评级和更多的下载,反之亦然)。

应用链接实现简单,易于理解,是当今移动/网络世界的必备功能。虽然应用链接可以为使用您的应用的用户提供更好的操作处理,但用户可以有多个设备,期望在每个设备上有相同的行为,如果他们的数据和操作处理无处不在,他们会更加投入。

第三章应用的自动备份,告知你安卓棉花糖自带了很棒的应用备份功能,减少了用户迁移到新设备的摩擦。

在一个充满如此多样的应用的世界里,最大限度地利用自动备份带来的好处会带来出色的用户体验。该功能的目标是减轻负担,缩短使用用户喜爱的应用设置新设备所需的时间。如果需要的话,允许用户在新安装后只需一个密码提示就可以进入你的应用,这可能是一个很好的体验。自己试试!

第 4 章变化展开,讲述了安卓棉花糖的一些变化。所有这些变化都很重要,将在应用开发周期中帮助您。在后面的章节中,我们会用更详细的方法来讨论一些变化。

第 5 章音频、视频和相机功能,涵盖了安卓 API 的一些变化和增加。安卓棉花糖更多的是帮助我们开发者在使用音频、视频或相机 API 时获得更好的媒体支持并展示我们的想法。

第六章安卓工作版,讲述了安卓棉花糖如何给安卓工作版世界带来了不少变化。作为开发人员,我们需要始终与组织的需求保持可行的联系。确保我们通过棉花糖的变化来了解安卓的工作世界,有助于我们构建和定位企业工作流,并获得更简单的应用编程接口的额外好处。

第 7 章Chrome 自定义标签讲述了新增加的功能,Chrome 自定义标签,允许我们开发人员将网页内容嵌入到我们的应用中,修改 UI,并根据我们应用的主题和颜色以及外观进行调整。这有助于我们将用户保留在我们的应用中,并且仍然提供良好的用户界面和整体感觉。

第八章认证,讨论安卓棉花糖如何给我们一个新的 API,用指纹 API 认证用户。我们可以使用传感器,甚至在我们的应用中对用户进行身份验证,如果我们想使用安卓棉花糖引入的凭据宽限期功能来节省用户登录的需求,我们可以将其保存起来供以后使用。我们还介绍了一种仅使用 HTTPS 使我们的应用更加安全的方法。在 usesCleartextTraffic 标志的帮助下实施的 StrictMode 策略,允许我们确保我们连接到外部世界的所有节点都被检查,以检查是否需要安全连接。

这本书你需要什么

对于这本书,你将需要安卓平台、应用接口和应用开发过程的先前知识。您还需要设置您的工作环境,以至少具备以下条件:

  • 安卓工作室,可从https://developer.android.com/sdk/index.html下载
  • 最新的安卓 SDK 工具和平台。确保您升级到最新版本,并添加安卓 6.0(棉花糖)平台(如果它缺失)
  • 安卓设备是有帮助的,但是如果你愿意,你可以使用模拟器,或者你可以在https://www.genymotion.com/使用 Genymotion 的伟大解决方案作为模拟器

这本书是给谁的

这本书是为安卓开发者准备的,他们希望轻松地将他们的应用转移到下一个安卓版本。在本书的章节中,作者曾将安卓 6 称为安卓棉花糖。你应该对 Java 和以前的 Android APIs 有很好的理解,你应该能够在棉花糖之前用 API 编写应用。

惯例

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

文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、伪 URL、用户输入和 Twitter 句柄如下所示:“增加了setTorchMode()方法来控制 flash torch 模式。”

代码块设置如下:

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
  <exclude domain="database" path="sensitive_database_name.db"/>
  <exclude domain="sharedpref" path="androidapp_shared_prefs_name"/>
  <exclude domain="file" path="some_file.file_Extension"/>
  <exclude domain="file" path="some_file.file_Extension"/>
</full-backup-content>

任何命令行输入或输出都编写如下:

$ adb shell sm set-force-adoptable true

新名词重要词语以粗体显示。您在屏幕上看到的单词,例如菜单或对话框中的单词,会出现在如下文本中:“当前往设置 | 更多 | VPN 时,您现在可以查看 VPN 应用。”

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

类型

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

读者反馈

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

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

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

客户支持

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

下载示例代码

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

下载本书的彩色图片

我们还为您提供了一个 PDF 文件,其中包含本书中使用的截图/图表的彩色图像。彩色图像将帮助您更好地理解输出中的变化。可以从https://www.packtpub.com/sites/默认/文件/下载/4412OS_ColoredImages.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)>联系我们,我们将尽最大努力解决问题。