面向开发人员的 Android 7.0:新功能、性能升级和其他您不会关心的东西
已发表: 2022-03-11谷歌几周前正式宣布了 Android 7.0 Nougat,但像往常一样,你必须等待。 大多数用户要到明年年初才能获得无线 (OTA) 更新。 许多其他人将在一周内收到它们,因为一些设备供应商根本不打扰。
这听起来像是我的一个恶作剧,但 Android 碎片化可不是开玩笑的。 多年来,这一直是用户和开发人员非常头疼的问题。 Android 7.0 无法解决这个问题,这很可惜,因为它启用了许多用户肯定会喜欢的新功能和性能改进。
但是,开发人员不应该抱有希望。 这里没有任何改变游戏规则的人。 让我们看看 Android 引擎盖下的关键调整以及它们带来的新机会,从影响最大到影响最小。
- 新的 JIT 编译器,补充了 ART 现有的 AOT 编译器
- 多窗口支持
- 支持 Vulkan API
- 直接启动
- 直接回复和捆绑通知
- 白日梦虚拟现实 (VR) 模式
- UI、可访问性调整和背景优化
这显然不是所有新功能的完整列表; 我进入了前七名。 如果您前往 Google 的开发者天堂,您可以深入了解 Android 7.0。 我将为您省去不必要的绒毛,并以简明易懂的形式为您提供有用的信息。
1.新的JIT编译器,Profile-Guided Compiler
JIT 编译又回来了,虽然听起来像是回到了 Dalvik 时代,但事实并非如此。 这一次,谷歌在 ART 中添加了一个带有代码分析的 JIT 编译器,以补充 ART 现有的 AOT 编译器。 以个人资料为指导的编译是当时的流行语。
ART 为每个应用程序的热门方法和各种设备条件创建配置文件。 它可以预编译热方法以提供最佳性能、减少 RAM 使用、降低功耗等。
另一个好处是安装和更新的绝对速度。 由于分析意味着没有优化步骤,谷歌甚至声称在 Android 6.0 上需要几分钟才能安装的大型应用程序现在可以在几秒钟内安装或更新。 就个人而言,我希望这也适用于《坦克世界闪电战》,因为它是唯一值得我花时间的安卓游戏。
在过去的几年里,移动存储取得了很大的进步。 许多当代设备使用快速 UFS 2.0 存储,与过去的 eMMC 存储相比,它提供了显着的性能提升。 Android 7.0 应该使软件工程师能够充分利用这一新的存储标准并解锁更高的性能。
查看我之前的一篇博文,更详细地了解 Google 的编译器计划对 Android 开发人员的意义。
开发人员影响:配置文件引导的编译应该能够实现卓越的性能和效率提升。 安装和更新速度会更快,并且由于 Google 的大量文档,实施应该相对容易。 少等大家。 这是一件好事。
2.多窗口支持
等一下——我们不是已经在 Android 上看到了多窗口功能吗? 是与否; 一些分叉提供了多窗口支持,但现在它是原生的。 有两种分屏实现:并排和一个在另一个之上。 这在移动设备方面或多或少是标准的,但不幸的是,我还没有机会尝试一下。
而且,老实说,我从来都不喜欢移动设备上的多窗口功能,因为大多数用户根本不需要它。
然而,这不仅仅是智能手机。 谷歌也在悄悄地开发智能电视产品,因此多窗口支持也将扩展到这些设备,但会有所不同。 随着更多的显示空间可供使用,应用程序构建者将能够在电视上使用画中画模式,并且某些功能将是特定于供应商的。 供应商将能够决定是否启用自由格式模式。 这意味着超大平板手机、平板电脑和其他具有大显示屏的设备的供应商可能允许用户随意调整窗口大小和位置,这听起来类似于微软的方法,最初是在 Windows 8.x 上实现的。
对开发者的影响:多窗口支持不会改变游戏规则,但它将立即为 Android 平板电脑和智能电视提供机会,后者还将获得画中画和录制视频的能力。 问题? Android TV 不是很常见,Android 平板电脑也不是很流行,尤其是在生产力应用程序方面,这些应用程序可以从多窗口支持中获得最大收益。
谁知道呢? 也许一个非常聪明的开发人员会创建一个利用它的杀手级智能手机应用程序。 我不会屏住呼吸。
3.Vulkan API
这是另一个潜在的强大更新。 当然,它不会像花哨的功能那样引起媒体和消费者的兴趣,但请不要误会:Vulkan API 很重要。
如果您错过了它,Vulkan API 是一种用于图形处理单元 (GPU) 的新的、低开销、接近金属的 API。 不仅适用于 3D 游戏,也适用于 GPU 计算。 基本上,它是 OpenGL 的后续版本,应该能够在多线程处理器上实现卓越的性能以及跨平台兼容性。 它还应该在驱动程序开发中节省数千个工时。
那么为什么它没有得到更多的嗡嗡声? 嗯,这是一个新标准,引入一个全新的图形 API 通常需要几年时间。 这就是消费者不关心的原因,也是 Android 开发人员应该关心的原因。
要了解有关 Android 7.0 中 Vulkan 实现的更多信息,请阅读我今年早些时候编写的完整 Vulkan API 概述或查看 Google 的开发资源。
开发者影响: Vulkan API 的时代即将到来。 它将减少 CPU 开销,从而提高 GPU 性能并降低 3D 游戏的功耗。 然而,采用势必会很慢,因为我们谈论的是一个极其强大和复杂的图形 API,而不仅仅是一个装饰性的调整。
4.直接启动
锁定的 Android 7.0 设备会怎样? 它以安全的直接启动模式运行,直到用户解锁设备。
为了实现这一点,Android 7.0 有两个数据存储位置,以及两种不同的加密解决方案:
- 设备加密存储在直接启动时可用,无论设备是锁定还是解锁都可以访问。
- 凭证加密存储仍然是默认位置,只有在用户解锁设备后才可用。
大多数含义是显而易见的:在设备解锁之前,需要在直接启动模式下运行的应用程序必须启用才能这样做。 默认情况下,应用程序不能直接启动运行,但开发者可以注册不同的应用程序组件,需要在这种状态下运行。
这应该包括传递重要或预定通知的应用程序,例如消息传递和日历应用程序。 需要访问存储的应用程序必须依赖设备加密存储,该存储受设备执行验证启动后可用的密钥保护。 访问权限不会扩展到与用户凭据相关的数据,即 PIN 和密码。 凭据加密存储在设备启动并由用户解锁之前不可用,但一旦被访问,它就会一直可用,直到设备断电。
对开发人员的影响:直接启动应该可以在不影响用户体验和响应能力的情况下提高安全性。 实施应该很简单,但在某些情况下会涉及大量繁琐的工作。 尽管如此,这听起来像是增加安全性的一个小折衷。
5. 直接回复和捆绑通知
听起来它与直接启动有关,但直接回复是另一种野兽,允许用户响应来自通知屏幕的消息和通知。 内联回复操作可通过通知中的新按钮获得。 在实践中,用户应该能够在不访问应用程序的情况下回复通知,系统会处理其他所有事情。

只有当开发人员花时间通过调用getResultsFromIntent()来启用内联回复检索时,系统才能发挥它的魔力,它会返回一个包含所需文本响应的包。 在 Android 7.0 中,Google 为开发人员提供了一种表示排队通知的新方法:捆绑通知。 该解决方案类似于 Android Wear 上的通知堆栈。
捆绑通知就是这样:类似的邮件呈现在一个组中,具有干净的层次结构,并且父通知位于顶部。 然后,用户可以展开捆绑包以访问更多信息并采取适当的措施,或者如果他们不感兴趣,可以轻松地忽略所有内容。
但是,捆绑通知并不适用于所有类型的通知。 谷歌在 Android 通知最佳实践中明确了这一点。 理想情况下,该方法应该用于生成大量类似或相关通知的应用程序,例如消息传递应用程序。
从 Android 7.0(API 级别 24)开始,用户可以在通知对话框中直接回复短信或更新任务列表。 在手持设备上,内联回复操作显示为通知中显示的附加按钮。 当用户通过键盘回复时,系统会将文本响应附加到您指定的意图(用于通知操作)并将其发送到您的手持应用程序。
开发者影响:直接回复和捆绑通知应该可以改善许多场景中的用户体验。 从谷歌的文档来看,它们也应该不难实现。 显然,电子邮件、消息传递和社交应用程序将从内联回复中获得最大收益,尽管该方法可以在其他地方实施。
6. 白日梦虚拟现实
谷歌最近对 VR 的关注证明这家搜索巨头也不能幸免于炒作。 我们都记得 Google Cardboard 和 Google Glass,它们在增强现实领域是一个命运多舛的裂缝。
与 Glass 不同,Cardboard 并没有简单地枯萎和死亡,但它更像是一种实验,而不是真正的产品。 谷歌改进了这个概念,它即将在几周内重新推出,并使用一个新名称:谷歌白日梦。 Daydream 或多或少是一个进化步骤。 它看起来像一个经过调整的 Cardboard 耳机,但很难发现实质性的变化。
下一代 Android 手机即将提供支持,但设计人员和开发人员可以在当前唯一符合Daydream的设备上测试他们的概念。
谷歌将Daydream描述为下一代移动 VR 解决方案,与 Cardboard 相比,它具有更好的交互性和更好的响应能力。 该公司表示,它对 Android 堆栈的各个级别进行了改进,以提高响应能力。 这应该允许 Android 7.0 更快地访问传感器数据,并在正确的时间渲染适当的 VR 场景,从而大大减少延迟。 Daydream还配备了带有APP和HOME按钮的新无线控制器。
不幸的是,这些调整都无法解决 VR 面临的最大问题:缺乏内容。 好消息是情况正在好转,谷歌承诺通过一系列合作伙伴关系在Daydream上提供更多内容,涵盖从情景喜剧到游戏的方方面面。
正如我在 Google Cardboard 概述中概述的那样,我对移动 VR 的立场仍然有些保守。 最近的市场研究部分证实了我的观点,这似乎表明对 VR 的需求仍然疲软。 谷歌无法解决当今移动 VR 面临的所有初期问题。 这不是自满的问题。 谷歌必须等待更好的硬件。
甚至在我尝试 Cardboard 之前,我就知道电池寿命和散热会是一个问题,谷歌也是如此。 展望未来,这仍将是一个挥之不去的问题。 事实上,谷歌明确表示 Nexus 6P 的散热性能“不代表”即将推出的支持Daydream的手机:
预计 6P 会在短时间使用后对 CPU 和 GPU 性能进行热调节,具体取决于工作负载。
我们将不得不等待芯片制造商和智能手机供应商推出新一代产品,才能真正利用Daydream 。
开发者影响: Daydream VR 可能会提供一些新的可能性,但这并不像看起来那么简单。 虽然许多科技公司正在登上 VR 列车,但消费者却没有。 现在,这是一次孤独而昂贵的旅程。
7. UI、可访问性调整和背景优化
谷歌优化了用户界面,添加了一些功能,并微调了性能,以提供更流畅的用户体验。 以下是新功能的味道:
- 部分支持大约 100 种新语言,以及改进的语言包和主要语言(如西班牙语和英语)的新本地变体。
- 设置中的多个语言环境,这将大大改善多本地和双语用户的体验。
- 改进的 WebView,应用内浏览器。 它将依赖 Chrome APK(从 51 版开始)来呈现页面,从而减少内存使用和带宽需求。 只要启用 Chrome 渲染,独立的 WebView APK 将不再更新。
- Android for Work 更新以提高安全性并允许始终在线的 VPN 支持。 快速切换功能将允许用户在工作和个人模式之间切换。
- Project Svelte,这是 Google 对一系列后台优化的名称,这些优化改变了应用程序的运行方式以减少 RAM 使用量。 谷歌表示将继续扩展和更新
JobScheduler和GCMNetworkManager,但与此同时,它删除了三个广泛使用的广播:CONNECTIVITY_ACTION、ACTION_NEW_PICTURE和ACTION_NEW_VIDEO。 如果您的应用程序依赖于其中任何一个,则您必须迁移到JobScheduler。 您可以在 Google 上查看令人讨厌的详细信息。 - 对欢迎屏幕和快速设置磁贴的 UI 进行了调整,其中现在包含一个可在第三方应用程序中使用的新 API。 通知增强功能包括两个新的自定义视图 API。
- 谷歌助手、谷歌 Allo、谷歌 Duo。
对开发者的影响:这些新功能和调整是对 Android 的欢迎补充,但它们不太可能产生很多新机会。
Android 7.0:底线是什么?
公平地说,Android 7.0 对开发人员来说并不是什么大不了的事。 这是一个增量改进,主要是关于优化。 它不会促进以前无法实现的惊天动地的应用程序和服务的创建。
但我不认为这有什么问题。 智能手机已经功能丰富,人们已经厌倦了噱头,因此谷歌选择专注于提高性能、电源效率、安全性和整体用户体验是可以理解的。 而且,与 iOS 一样,Android 现在已经成熟。 如果您对缺乏新功能感到失望,我建议您习惯它,因为这是新常态。
想一想,围绕 Android 7.0 的最大新闻并不是操作系统本身。 谷歌决定推出新的 Pixel 手机,旨在利用操作系统所提供的一切。 从硬件的角度来看,它们并不是特别特别——它们基于现成的技术,就像它们的 Nexus 系列前身一样。 但谷歌对 Pixel 的商业模式却截然不同,其重点是控制端到端的用户体验,并以类似苹果的方式增加价值。
现在推测 Pixel 将对 Android 生态系统的其他部分产生什么影响还为时过早,但可以肯定的是:这将是一个微妙的平衡行为。 谷歌可以选择为其内部的 Pixel 手机保留一些功能,但同时也不能过分夸大其词。 它不能通过添加太多 Pixel 专有功能而疏远 Android 供应商并降低其产品的竞争力。
这一切如何发挥还有待观察,但与此同时,我们应该专注于充分利用 Android 7.0。 实际上,制作 7.1,它是 Beta 版,可能很快就会发布。
