Android 12 DP1 开放下载,第一个开发者预览版详情【机器翻译】

鉴于很多人无法访问 googleblog,我来转载并机器翻译 Android Developers Blog 昨天发布的最新文章:First preview of Android 12,全文使用 DeepL 翻译。

由于链接众多,想要了解详情的同学请前往原文。


First preview of Android 12

18 February 2021,Posted by Dave Burke, VP of Engineering

每天,Android 应用程序帮助数十亿人在从手机和笔记本电脑到平板电脑、电视和汽车等各种设备上工作、娱乐、交流和创造。随着越来越多的人开始依赖你所构建的体验,他们的期望值也会同样快速上升。这也是我们尽早与您分享 Android 版本的原因之一:您的反馈有助于我们为您的应用和所有使用这些应用的人构建一个更好的平台。今天,我们将发布 Android 12 的第一个开发者预览版,Android 的下一个版本,供您测试和反馈。

每一个版本,我们都在努力使操作系统更智能、更易用、性能更好,并以隐私和安全为核心。在 Android 12 中,我们还致力于为您提供新的工具,为用户打造出色的体验。从兼容的媒体转码开始,如果你的应用还不支持最新的视频格式,它可以帮助你的应用与它们一起工作,并且更容易将丰富的内容复制/粘贴到你的应用中,比如图片和视频。我们还增加了隐私保护和优化性能,以保持您的应用程序的响应速度。

今天的第一个预览版只是 Android 12 的开始,随着版本的发布,我们将有更多的内容分享。请继续阅读,了解 Android 12 中的新内容,并访问 Android 12 开发者网站,了解 Pixel 的下载详情和发布时间表。一如既往,尽早获得您的反馈意见是至关重要的,这有助于我们将其纳入最终产品中,所以请让我们知道您的想法。

除了我们在 Android 12 中所做的工作,本月晚些时候,我们将有更多关于另一个重要工具的分享,它可以帮助你更轻松地创造出色的用户体验。Jetpack Compose,我们用于构建原生UI的现代工具箱。加入我们的 #TheAndroidShow,在太平洋时间2月24日上午9点直播 Jetpack Compose 的幕后花絮,并在 Twitter 上使用 #TheAndroidShow 推送你的 Jetpack Compose 问题,让他们在节目中得到现场回答。

信任和安全

隐私是我们一切工作的核心,在 Android 12 中,我们将继续专注于为用户提供更多的透明度和控制,同时保证他们的设备和数据安全。在今天的版本中,我们对可用于跟踪的标识符增加了新的控制,对应用组件增加了更安全的默认值,等等。这些变化可能会影响您的应用程序,因此我们建议尽快进行测试。更多的隐私和安全功能将在以后的预览版中出现。

WebView 中的现代 SameSite cookie 行为 - 与 Chrome 和其他浏览器的变化一致,WebView 包含新的 SameSite cookie 行为,以提供额外的安全性和隐私性,并为用户提供更多的透明度,并控制如何跨网站使用 cookies。

受限的 Netlink MAC - 我们将继续帮助开发人员迁移到隐私保护的可重置标识符。为了简化设备范围内 Netlink MAC 的迁移,我们在 Android 11 中限制了基于 API 等级 30 的访问,而在 Android 12 中,我们将对所有应用程序适用该限制,而不考虑目标 SDK 等级。

更安全地导出组件 - 为了防止应用程序无意中导出活动、服务和接收器,我们将 android:exported 属性的默认处理方式改为更明确。有了这个变化,声明一个或多个意图过滤器的组件现在必须明确声明一个 android:exported 属性。您应该在清单中检查您的组件,以避免与此更改相关的安装错误。

更安全地处理 Intents - 为了使处理 PendingIntents 更加安全,Android 12 要求应用程序为每个 PendingIntent 明确声明一个可变性标志,即 FLAG_MUTABLE 或新的 FLAG_IMMUTABLE。

你可以在这里阅读更多关于这些和其他隐私和安全变化的信息。

更好的用户体验工具

在 Android 12 中,我们将在关键领域进行投资,以帮助为用户提供精致的体验和更好的性能。以下是目前的一些更新。

兼容的媒体转码 – 随着 HEVC 硬件编码器在移动设备上的普及,相机应用越来越多地以 HEVC 格式进行捕捉,与旧的编解码器相比,HEVC 在质量和压缩方面都有显著改善。大多数应用程序应该支持 HEVC,但对于不能支持 HEVC 的应用程序,我们将引入兼容的媒体转码功能。

通过这个功能,不支持 HEVC 的应用可以让平台自动将文件转码成 AVC,这是一种广泛兼容的格式。转码过程需要时间,这取决于视频和设备的硬件属性。举个例子,一个一分钟 30fps 的 1080p 视频在 Pixel 4 上转码需要9秒左右。你可以选择使用转码服务,只需声明你的应用程序不支持的媒体格式。对于开发者来说,我们强烈建议你的应用支持 HEVC,如果无法支持,请启用兼容媒体转码。该功能将在所有使用 HEVC 格式进行视频采集的设备上启用。我们很乐意听到您对该功能的反馈。

AVIF图像支持 – 为了让你的图像质量更高,压缩效率更高,Android 12 引入了对 AV1 图像文件格式(AVIF)的平台支持。AVIF 是一种使用 AV1 编码的图像和图像序列的容器格式。与其他现代图像格式一样,AVIF利用了视频压缩的帧内编码内容。与旧的图像格式(如JPEG)相比,在相同文件大小的情况下,这种格式可显著提高图像质量。

race car photo in AVIF (18.2kB) AVIF (18.2kB)

race car photo in JPEG (20.7kB)JPEG (20.7kB)

Credit: Image comparison from AVIF has landed by Jake Archibald

前台服务优化 – 前台服务是应用管理某些类型面向用户的任务的重要方式,但当过度使用时,会影响性能,甚至导致应用被杀死。为了确保用户获得更好的体验,我们将针对新平台的应用从后台屏蔽前台服务启动。为了更容易过渡到摆脱这种模式,我们将在 JobScheduler 中引入一个新的加急作业,它可以获得提升的进程优先级、网络访问权,并立即运行,而不考虑电池保护器或Doze等电源限制。为了实现后面的兼容性,我们还将加急作业内置到最新版本的 Jetpack WorkManager 库中。另外,为了减少用户的分心,我们现在将一些前台服务通知的显示延迟了10秒。这就给了短暂的任务一个机会,让它们在通知显示之前完成。

丰富的内容插入 – 用户喜欢图片、视频和其他富有表现力的内容,但在应用程序中插入和移动这些内容并不总是那么容易。为了让您的应用程序能够简单地接收丰富的内容,我们引入了新的统一 API,让您能够接受来自任何来源的内容:剪贴板、键盘或拖放。您可以将一个新的接口 OnReceiveContentListener 附加到UI组件上,并在通过任何机制插入内容时获得一个回调。这个回调成为你的代码处理所有内容插入的唯一地方,从纯文本和样式化文本到标记、图像、视频、音频文件等。为了实现回兼容,我们已经将统一的 API 添加到 AndroidX 中。

触觉耦合音频效果 – 在 Android12 中,应用程序可以通过手机的振动器提供音频耦合的触觉反馈。振动强度和频率来自于音频会话,让你能够创造出更加沉浸式的游戏和音频体验。例如,视频通话应用可以使用自定义铃声,通过触觉反馈来识别来电者,或者你可以在赛车游戏中模拟粗糙的地形。

沉浸式模式 API 改进手势导航 – 我们简化了沉浸式模式,使手势导航更简单、更一致,例如在观看视频、阅读书籍或玩游戏时。在与游戏相关的全屏体验中,我们仍然会保护应用不受意外手势的影响,但在所有其他的全屏或沉浸式体验中(如视频观看者、阅读、照片库),对于针对新平台的应用,我们将改变默认值,允许用户通过一次滑动来导航手机。

通知界面更新 – 我们正在刷新通知设计,使其更现代、更易用、更实用。在第一次预览中,你会注意到从抽屉和控件到模板本身的变化。我们还优化了整个系统的过渡和动画,使其更加流畅。作为更新的一部分,对于针对 Android 12 的应用程序,我们正在用带有图标的自定义内容装饰通知,并扩展负担能力,以匹配所有其他通知。

更快、更灵敏的通知 – 当用户点击通知时,他们希望能立即跳转到应用中–越快越好。为了满足这种期望,开发者应该确保通知点击直接触发 Activity 启动,而不是使用 “蹦床”–中间广播接收器或服务–来启动 Activity。通知蹦床会造成明显的延迟,影响用户体验。为了保持通知的响应性,Android 12 将通过阻止通知蹦床启动其目标 Activity 来阻止通知蹦床,我们要求开发者从这种模式中迁移出来。该变化仅适用于针对新平台的应用程序,但对于所有应用程序,我们将显示一个祝酒词,让你和用户看到蹦床。

改进的 Binder IPC 调用 - 作为我们在性能方面的工作的一部分,我们将重点放在减少系统的可变性上。我们研究了延迟和工作负载分布,并进行了优化,以减少尾端或99%百分位数用例的中值体验。在这样做的过程中,我们有针对性地改进了系统绑定调用,增加了轻量级缓存策略,并专注于消除锁争夺,以改善延迟分布。这样一来,整体上 Binder 调用的性能大概提升了2倍,具体调用的性能提升显著,比如 refContentProvider() 提升了47倍,releaseWakeLock() 提升了15倍,JobScheduler.schedule() 提升了7.9倍。

应用程序兼容性

我们在推出新的平台版本时,优先考虑应用的兼容性,努力让更新更快、更顺畅。在 Android 12 中,我们已经使大多数面向应用的更改成为可选择的,以便为您提供更多的时间,并且我们已经更新了我们的工具和流程,以帮助您更快地做好准备。我们还为 Google Play 系统更新添加了新功能,让你的应用在 Android 12 设备上有更好的环境。

更多的 Android 系统通过 Google Play 更新 – 我们将继续扩大对 Google Play 系统更新的投资(Project Mainline),为各设备上的应用提供更一致、更安全的环境。在 Android 12 中,我们增加了Android Runtime(ART)模块,让我们可以在运行 Android 12 的设备上推送核心运行时和库的更新。我们可以提高运行时的性能和正确性,更有效地管理内存,并使Kotlin操作更快–所有这些都不需要完整的系统更新。我们还扩展了现有模块的功能,例如,我们在一个可更新的模块中提供了兼容的媒体转码功能。

针对平板电脑、折叠式设备和电视进行优化 – 随着越来越多的人在折叠式设备、平板电脑和电视等大屏幕设备上使用应用程序,现在是确保您的应用程序或游戏做好准备的大好时机。通过为平板电脑优化和为可折叠式设备构建应用开始吧。而且,针对家庭中最大的屏幕,Android TV 的首个 Android 12 预览版也已经推出。除了通过该预览版将最新的 Android 功能带到电视上,您还可以在全新的Google TV 体验上测试您的应用。在 Android TV 开发者网站上了解更多信息,并开始使用 ADT-3 开发者工具包。

更新的非 SDK 接口列表 – 我们已经限制了更多的非 SDK 接口,并一如既往地欢迎您的反馈和对公共 API 等价物的请求。

更容易测试和调试更改 – 为了让您更容易测试可能影响您的应用程序的选择进入更改,我们已经使许多更改可以切换。通过切换,您可以从开发者选项或广告中分别强制启用或禁用这些更改。

Easier testing and debugging of changes - To make it easier for you to test the opt-in changes that can affect your app, we’ve made many of them toggleable. WIth the toggles you can force-enable or disable the changes individually from Developer options or adb. Check out the details here.

mobile display of App Compatibility Changes with toggles

移动显示应用程序兼容性变化与切换器
开发者选项中的应用兼容性切换。

平台稳定性里程碑 – 和去年一样,我们会提前让你知道我们的平台稳定性里程碑,让你有更多的时间来规划应用兼容性工作。在这个里程碑上,我们不仅会交付最终的 SDK/NDK API,还会交付最终的内部API和面向应用的系统行为。我们预计在2021年8月达到平台稳定性,在正式发布前,你将有几周的时间来做最后的测试。

原文: https://android-developers.googleblog.com/2021/02/android-12-dp1.html

1 Like