Android 12 正式发布 | 开发者们的全新舞台

13,179 阅读11分钟

作者 / Dave Burke, VP of Engineering

10 月 4 日,我们已经将源代码推送至 Android 开源项目 (AOSP),并正式发布最新版本的 Android。Android 12 会在接下来的几周内推送至 Pixel 设备,并在今年晚些时候覆盖三星 Galaxy、一加、OPPO、realme、TECNO、Vivo 和小米设备。

再次感谢大家在 Android 12 Beta 版期间分享的反馈!有超过 22.5 万人在 Pixel 以及合作厂商的设备上测试了 Android 12 的早期版本,并向我们提交了近 5 万条问题报告,以帮助提高版本的质量。我们也很感谢大家在许多文章、讨论、调研和面谈中给出的宝贵想法,以及确保自己的应用及时获得兼容性更新所做的工作。大家的支持和贡献使 Android 得以成为适合所有人的了不起的系统平台。

我们也将在今年 10 月 27 日至 28 日召开的 Android Dev Summit 上分享更多 Android 12 的详细信息。关于本次峰会,我们也带来了包括 Android 技术演讲概览在内的更多信息,请继续阅读本文或者 点击这里 了解详情。

Android 12 为开发者带来了什么?

这里针对开发者们列出一些不容错过的 Android 12 新特性。请务必前往 Android 12 开发者网站 查看所有新功能的详细信息。

Android 的新 UI

Material You - Android 12 带来了新的设计语言,名为 Material You,用以帮助大家构建更加个性化、更漂亮的应用。如果想将所有最新的 Material Design 3 新特性带入您的应用,请尝试 Material 设计组件 的 Alpha 版本,并关注即将到来的 Jetpack Compose 支持。

重新设计的微件 (widget) - 我们重新设计了应用微件,让它们更实用、更美观,且更易于发现。您可以体验新的交互控件、适用于任何设备的响应式布局,以及动态颜色,来创建充满个性同时依然拥有高度一致性的外观。请访问 官方文档 了解详细信息。

通知界面更新 - 我们还对通知设计进行了改版,使其更现代、更实用。Android 12 也会使用标准的元素来美化自定义通知,使其观感与其他通知保持一致。请访问 官方文档 了解详细信息。

过度滚动拉伸效果 - 为了让应用内容的滚动更加顺畅,Android 12 为所有滚动容器添加了一个新的过度滚动 "拉伸" 效果。这个自带的滚动停止效果覆盖整个系统和所有应用。请访问 官方文档 了解详细信息。

应用启动画面 - Android 12 还为所有的应用带来了新的启动画面。应用也可以通过多种方式来定制启动画面,以彰显其独有的品牌个性。请访问 官方文档 了解详细信息。

性能表现

更快、更高效的系统性能 - 我们将核心系统服务所需的 CPU 时间减少了 22%,并将对大核的使用减少了 15%。我们还改善了应用的启动时间,并优化了 I/O 以加快应用的加载速度;对于数据库查询,在使用 CursorWindow 处理大量数据的时候,我们将其性能提高了 49 倍之多。

前台服务优化 - 为了给用户提供更好的体验,Android 12 禁止应用在后台启动前台服务。应用可以使用 JobScheduler 中新引入的 加急作业 (expedited job) 来代替之前的做法。请访问 官方文档 了解详细信息。

更灵敏的通知 - Android 12 对通知 trampoline (利用广播接收器或服务间接启动目标 Activity) 的限制有助于减少从通知中启动应用的延迟。例如,Google Photos 应用在不使用通知 trampoline 后,启动速度快了 34%。请访问 官方文档 了解详细信息。

性能等级 (Performance class) - 性能等级定义了一组设备功能,它们共同支持在 Android 12 设备上运行更苛刻的用例和更高质量的内容。应用可以在运行时检查设备的性能等级,并充分利用设备的性能。请访问 官方文档 了解详细信息。

更快的机器学习 - Android 12 能帮助您充分利用 ML 加速器,并通过 Neural Networks API 始终获得最佳的性能表现。ML 加速器驱动现在也可以独立于平台版本之外,通过 Google Play 服务进行更新,因此您可以在任何兼容的设备上使用最新的驱动。

隐私

隐私信息中心 - 系统设置 (Settings) 中新增的这个信息中心让用户可以更好地了解应用何时访问麦克风、摄像头和位置数据。请访问 官方文档 了解详细信息。

大致位置 - 用户对位置数据有了更多的控制权,即使您的应用请求确切位置,他们也可以只授权访问大致位置。请访问 官方文档 了解详细信息。

麦克风和摄像头指示标志 - 状态栏中的指示标志让用户知道应用何时在使用设备摄像头或麦克风。请访问 官方文档 了解详细信息。

麦克风和摄像头切换开关 - 在支持的设备上,快捷设置 (Quick Settings) 中新增的切换开关让用户可以轻松地立即禁止所有应用对麦克风和摄像头的访问。请访问 官方文档 了解详细信息。

附近设备权限 - 您的应用可以使用新的权限来扫描附近的设备并与之配对,而不需要获取位置权限。请访问 官方文档 了解详细信息。

更好的用户体验工具

富媒体内容插入 - 新增了统一的 API 让您的用户界面可以从任何来源接收富媒体内容: 包括剪贴板、键盘、拖放等。为确保向前兼容性,我们也将这套统一的 API 添加到了 AndroidX 中。请访问 官方文档 了解详细信息。

支持圆角屏幕 - 许多现代设备的屏幕采用圆角设计。为了在这些设备上提供良好的用户体验,您可以使用新的 API 来查询圆角详情,然后根据需要管理 UI 元素。请访问 官方文档 了解详细信息。

AVIF 图像支持 - Android 12 增加了对 AV1 图像文件格式 (AVIF) 的平台支持。AVIF 利用了视频压缩的帧内编码内容,与旧的图像格式 (如 JPEG) 相比,在相同的文件大小下可以大幅提高图像质量。

兼容媒体转码 - 对于视频内容,HEVC 格式在质量和压缩方面都有明显的提升,我们建议所有的应用都支持该格式。不能支持 HEVC 的应用可以使用兼容媒体转码功能,应用只需请求 AVC 格式的文件,并由系统来进行转码。请访问 官方文档 了解详细信息。

更易用的模糊、彩色滤镜等特效 - 新的 API 让您能更轻松地将常见图形效果应用到视图和渲染结构上。您可以使用 RenderEffect 将模糊、色彩滤镜等效果应用于 RenderNode 或 View。您还可以使用新的 Window.setBackgroundBlurRadius() API 为窗口背景创建雾面玻璃效果,或者使用 blurBehindRadius 来模糊窗口后面的所有内容。

增强的触觉体验 - Android 12 提供了更多工具来为 UI 事件创建丰富的触觉反馈,以及为游戏营造出更沉浸和愉悦的体验,更能打造出有助于提升生产力的触觉效果。请访问 官方文档 了解详细信息。

新的摄像头效果和传感器功能 - 新的 设备厂商扩展 让应用可以利用设备厂商打造的自定义摄像头效果,比如散景 (bokeh)、HDR、夜间模式等。您还可以使用新的 API 来充分利用配备了四/九 (Quad/Nona) 拜耳模式的超高分辨率摄像头。请访问 官方文档 了解详细信息。

更好地调试原生代码崩溃 - Android 12 提供了更多可操作的诊断信息,让您可以更轻松地调试 NDK 相关的崩溃。应用现在可以通过 App Exit Reasons API 来访问详细的崩溃转储文件 (称为 tombstone)。

Android 12 的游戏支持 - 通过 游戏模式 (Game Mode) API,您可以在玩家为游戏选择不同的性能配置时做出反应: 比如在漫长的通勤途中节省电池消耗,或者通过性能模式获得更高的帧率。边玩边下 (play as you download) 功能将允许游戏在安装过程中从后台下载游戏资源,从而让玩家更快地进入游戏。

让您的应用为 Android 12 做好准备

随着 Android 12 的正式发布,我们要求所有的 Android 开发者完成兼容性测试并尽快发布更新,以便用户顺利过渡到 Android 12。

要测试应用的兼容性,只需在 运行 Android 12 的设备 上安装应用,并测试应用的所有流程,找出功能或 UI 上暴露的问题。请通过 Android 12 行为变更清单 (针对所有应用) 来找出可能影响应用的变更。

这里列出一些需要注意的变更:

  • 隐私信息中心 - 通过系统设置 (Settings) 中新增的这个信息中心来查看应用对麦克风、位置信息和其他敏感数据的访问,您也可考虑向用户提供访问原因的详细信息。请访问 官方文档 了解详细信息。

  • 麦克风和摄像头指示标志 - 当应用正在使用摄像头或麦克风时,Android 12 会在状态栏显示指示标志。请确保该标志不会影响应用的用户界面。请访问 官方文档 了解详细信息。

  • 麦克风和摄像头切换开关 - 使用快捷设置 (Quick Settings) 中新增的切换开关来禁止应用对麦克风和摄像头的访问,请确保您的应用能正确处理这一变化。请访问 官方文档 了解详细信息。

  • 剪贴板访问通知 - 当应用从剪贴板中读取数据时,请注意出现的消息框消息。请避免出现意外访问的情形。请访问 官方文档 了解详细信息。

  • 过度滚动拉伸效果 - 请通过您的滚动内容来体验新的 "拉伸" 过度滚动效果,并确保内容如预期显示。请访问 官方文档 了解详细信息。

  • 应用启动画面 - 通过各种流程启动您的应用,以测试新的启动动画。如果有必要,您可以对其进行自定义。请访问 官方文档 了解详细信息。

  • Keygen 变更 - 我们移除了一些被废弃的 BouncyCastle 加密算法,转而使用 Conscrypt 实现。如果您的应用使用 512 位的 AES 密钥,您需要将其改为 Conscrypt 支持的标准长度。请访问 官方文档 了解详细信息。

别忘了测试应用中的开发库和 SDK 的兼容性。如果您发现 SDK 的问题,请尝试更新 SDK 到最新版本,或向其开发者寻求帮助。 一旦您发布了当前应用的兼容版本,就可以开始 着手升级 应用的 targetSdkVersion。请查阅 行为变更清单 (针对面向 Android 12 的应用),并使用 兼容性框架工具 来快速检测问题。

相聚 Android Dev Summit 2021,尽览 Android 12 等众多精彩!

#AndroidDevSummit 回来了!10 月 27 日至 28 日,和我们一起了解包括 Android 12 在内的 Android 开发最新进展。今年的主题是杰出的应用和跨设备,您还将了解有助于提高工作效率的开发工具、API 和技术,从而打造出更棒的应用,并在数十亿台设备上运行,包括平板电脑、可折叠设备、可穿戴设备等。

我们也带来了关于本次峰会的更多消息,包括 30 余场 Android 技术演讲的概览,您可以在 官方网站 查看并规划自己应该关注哪些场次。在接下来的几周内我们也会邀请大家提交 #AskAndroid 问题,我们的团队成员会在峰会现场进行解答。

本次峰会将于美国太平洋时间 10 月 27 日上午 10 点 (北京时间 10 月 28 日凌晨 1 点) 开幕,第一场大戏就是 The Android Show,这是一场 50 分钟的技术主题演讲,您将听到所有和 Android 开发者有关的最新消息和进展。别忘了 注册 并获取最新动态。

欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!