1
头图

作者 / Dave Burke,工程副总裁

上个月,我们发布了 Android 12 的首个预览版,让开发者们先行体验了新一个版本的 Android。现在我们为大家带来了今年发布计划中的下一个里程碑版本: 开发者预览版 2,包含更多新功能和变更,欢迎大家通过自己的应用进行体验。我们的早期预览计划以开放协作为核心理念,旨在与开发者社区携手共进。您的宝贵意见会帮助我们为开发者和用户打造更好的 Android 平台,请大家继续向我们提供反馈!

在 Android 12 中,我们致力于让操作系统更智能、更易用、更强劲,并且始终以隐私和安全为核心。我们还会为您提供新的工具,帮助您为用户打造更出色的体验,不论用户使用的是手机、笔记本电脑、平板电脑、电视还是汽车。今天发布的内容包括全新的圆角 API、改进的画中画 API、更出色的配套设备管理、更易用的模糊和色彩滤镜等特效、应用覆盖控制等。

开发者预览版 2 中有许多内容值得体验,本文将详细介绍其中亮点!如需进一步了解本预览版详情,并获取有关下载并安装到 Pixel 设备的信息,请访问 Android 12 开发者网站。对于已经安装了开发者预览版 1 或 1.1 的用户,我们还将在今天提供无线 (OTA) 更新。

别忘了 告诉我们您的想法,再次感谢每一位用户的宝贵反馈。

信任和安全

我们依然专注于为用户提供更多的透明度和控制权,同时保证设备和数据安全。在今天的预览版中,我们增加了一些新功能,供您的应用进行测试。

应用覆盖控制 - Android 的系统警告对话框允许一个应用在其他活动应用之上覆盖显示一个图层,以帮助应用提醒用户关注重要操作。不过由于这些窗口会中断用户操作,因此应用需要 请求权限 才能显示这些内容。在 Android 12 中,您可以控制是否允许在自己的内容上显示这些覆盖图层。在 声明新权限 后,您的应用可以调用 Window#setHideOverlayWindows()),以表明在您的应用窗口可见时应隐藏所有 TYPE_APPLICATION_OVERLAY 窗口。您可以在交易确认流程等敏感界面中如此操作。请访问 官方文档 了解详细信息。

扩展锁屏通知操作的安全性 - Android 12 增加了更细粒度的隐私和安全控件来控制设备锁屏时显示的通知。现在,您可以 配置通知操作),以便在锁屏触发通知操作时始终生成身份验证质询。此功能是对通知 API 中既有的 通知可见性 控件的扩充。例如,此功能可以让即时通讯应用在删除消息或将其标记为已读之前请求身份验证。请访问 官方文档 了解详细信息。

访问应用摘要 - 对于需要确认 Android 设备上所安装的应用软件包完整性的应用,我们引入了新 API,可以让您直接向平台查询一个已安装应用的校验和 (checksum)。您可以从 SHA256、SHA512、Merkle Root 等多种摘要算法中进行选择。在请求校验和时,将应用的软件包名称、需要的 校验和类型、信任的安装程序证书以及接收校验和的监听器作为参数来调用 PackageManager.requestChecksums()) 即可。平台会根据参数返回安装程序 (例如 Google Play) 预先计算的或平台直接计算得出的校验和。返回结果会根据 软件包可见性 准则进行过滤,因此您需要在清单中声明自己想查看的软件包。这个新 API 可以让您用更简单有效的方式来获取校验和,不但具有标准公共 API 的稳定性,而且经过优化,速度更快、更安全。为了支持向后兼容,我们正在开发对应的 Jetpack 库,可为 API 15 及以上版本带来这个功能。我们会在之后为大家带来更多这方面的详细信息,敬请期待。了解更多关于 隐私与安全变更

更好的用户体验工具

我们致力于为大家提供更多工具,帮助大家打造更完善的体验以及获得更优良的性能。下面是开发者预览版 2 中的部分更新。

支持圆角 - 许多现代设备的屏幕采用圆角设计,这彰显了简洁时尚的风格,但也为应用开发者带来一些额外的问题。要在这些设备上提供出色的用户体验,开发者需要将这些圆角纳入考虑,调整圆角附近的界面元素,防止出现裁切的情况。

为了解决这个问题,我们引入了新的 API,便于您查询圆角及其详情。RoundedCorner 提供了圆角半径、中心点等信息。您可以通过 Display.getRoundedCorner()) 来获取每个圆角的详尽信息。您还可以调用 WindowInsets.getRoundedCorner()) 来获取基于您的应用边界的圆角位置等信息。如此一来,您就可以根据需要灵活调整界面元素和内容的位置。请访问 官方文档 了解详细信息。

画中画 (Picture in Picture, PIP) 改进 - 对于使用手势导航的用户,我们改进了应用在上划到主屏幕时过渡到画中画 (PIP) 模式的方式。如果某个应用启用了 自动 PIP),系统现在会在用户上划到主屏幕时直接将该应用过渡到 PIP 模式,而不是等待上划到主屏幕的动画完成。这使过渡更加平滑,并提高了感知表现。我们还针对非视频内容改进了 PIP 窗口的大小调整方式。应用现在可以 启用无缝调整大小),使系统根据需要调整 PIP Activity 的大小。Android 12 还支持隐藏 PIP 窗口,只需将 PIP 窗口拖动至屏幕左侧或右侧边缘即可。此外,为使 PIP 窗口更易于操控,我们更新了点按行为: 现在单次点按即可显示控件,点按两次即可切换 PIP 窗口大小。请访问 官方文档 了解详细信息。

保持配套设备应用唤醒 - 对于管理智能手表和健身跟踪器等配套设备的应用,如何确保关联的配套设备位于附近时保持运行和连接状态是个难题。为了更轻松地解决这个问题,我们为 扩展设备管理器 (Companion Device Manager) 带来了新的 CompanionDeviceService API。管理配套设备的应用可以通过这个服务,让系统在关联配套设备位于附近时唤醒应用。当设备在附近时,系统会确保服务处于唤醒状态,并且当设备进入和离开连接范围或关机时,系统会向服务发出通知,以便应用根据需要清理状态。在连接至手表时,应用还可以使用新的 配套设备配置),通过绑定相关权限至单次授权来简化注册过程。请访问 官方文档 了解详细信息。

改进带宽估测 - 有些开发者需要了解用户的可用带宽,以便定制体验,我们现在改进了带宽估测功能,增强了现有的 带宽估测 API,可以针对设备上的所有用户给出各运营商或 Wi-Fi SSID、网络类型、信号强度的数据吞吐量预估。新的估测方法相较于其他大多数方法更为简单准确,欢迎大家试用并反馈使用效果。

更易用的模糊、色彩滤镜等特效 - 在 Android 12 中,您可以更轻松地将常用图形效果应用于视图和渲染结构上。您可以使用 RenderEffect 将模糊、色彩滤镜等特效应用于任何 RenderNode。您可以将这些特效组合为连锁特效 (即组成内部和外部特效),也可以混用这些特效。您还可以通过调用 View.setRenderEffect(RenderEffect)) 将特效直接应用于视图 (View,因为其基于 RenderNode)。

view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
△ 使用 RenderEffect 为视图设置模糊效果

有了这个功能,您在模糊 ImageView 时,就不必进行获取位图数据、处理图像、创建新 Bitmap,再将其设置回 ImageView 这些操作了。RenderEffect 利用了现有的渲染流水线,最大限度地减少了额外的计算量。

请大家试用以上功能,并与我们分享您的使用感受!请访问 官方文档 了解渲染效果方面的详细信息。

您还可以使用新的 Window.setBackgroundBlurRadius()) API 为窗口背景创建雾面玻璃效果。这个 API 可以设置模糊半径,以调整雾面密度和范围,平台只会对您的应用窗口边框内的背景内容应用模糊效果。您还可以使用 blurBehindRadius 来模糊窗口后面的所有内容,从而为浮动窗口营造出深度效果。

△ 窗口背景及窗口后面的内容均模糊化处理的对话框窗口

应用兼容性

在推出新的平台版本时,我们会优先考虑应用的兼容性,让系统更新的体验更快速、更顺畅。在 Android 12 中,大多数面向应用的变更都是可选的,让您有更多时间调整适应。我们还更新了工具和流程,帮助您更快做好准备。

开发者预览版 2 的推出,意味着我们已经在发布阶段进行了大量工作,并在持续提升整体的稳定性。现在大家可以体验新功能和变更,并向我们提供反馈。我们期待您向我们反馈 API 的使用意见,以及 平台变更 对应用造成的影响。请访问 反馈页面,与我们分享您的想法或报告问题。

现在您也可以开始进 行兼容性测试,并确定接下来需要完成的工作。我们建议开发者提早完成此工作,以便在 Android 12 Beta 1 推出时发布与之兼容的更新。目前暂时不需要更改应用的 targetSdkVersion,但我们建议使用 行为变更切换开关 来初步了解 Android 12 的可选变更对应用的影响。

我们将于 2021 年 8 月抵达 平台稳定性里程碑,届时所有面向应用的系统行为、SDK/NDK API 和非 SDK 清单都将最后确定。届时您就可以完成最终兼容性测试,发布完全兼容的应用、SDK 或开发库。发布时间表详见: https://developer.android.google.cn/preview/overview

△ 开发者选项中的应用兼容性切换开关

即刻开始体验 Android 12

不论您是想体验 Android 12 的功能、测试应用还是 提交反馈,都可以从这次的开发者预览版开始。只需将设备系统映像 下载并刷入 Pixel 3 / 3 XLPixel 3a / 3a XLPixel 4 / 4 XLPixel 4a / 4a 5GPixel 5 设备,或使用 Android 模拟器,即可立即开始使用。如果您已在自己的 Pixel 设备中安装了预览版,您将通过无线 (OTA) 方式自动获取所有后续预览版和 Beta 版更新。请访问 官方文档 了解详细信息。

您还可以使用开发者预览版 2 在 Android TV 上测试自己的应用,并尝试全新的 Google TV 体验。请前往 Android TV 开发者网站 了解更多信息并使用 ADT-3 开发者工具包 上手开发。

了解本次发布的完整信息,请访问 Android 12 开发者网站


Android开发者
404 声望2k 粉丝

Android 最新开发技术更新,包括 Kotlin、Android Studio、Jetpack 和 Android 最新系统技术特性分享。更多内容,请关注 官方 Android 开发者文档。