Android 13 首个开发者预览版到来
The following article is from Android 开发者 Author Android
作者 / Dave Burke, VP of Engineering
今天,我们为大家带来 Android 的下一个版本,即 Android 13 的首个开发者预览版。在 Android 13 中,我们将继续推进一些重要的主题: 隐私和安全,以及开发者生产力。我们还将基于 12L 上最近发布的一些更新,帮助大家充分利用 2.5 亿台活跃的大屏幕 Android 设备。
对于 Android 13 来说,这只是开始。我们会在后续的发布中和大家分享更多的内容。请继续阅读本文,并访问 Android 13 开发者网站,了解如何使用 Pixel 下载和安装系统映像,以及发布时间表。和往常一样,尽早听到来自大家的反馈至关重要,这让我们有时间将其反映到最终发布的版本中。我们非常期待听到大家的想法,在这里我们预先感谢大家,是大家的助力帮助我们将 Android 打造成适合每个人的平台!
Android 13 开发者网站 https://developer.android.google.cn/about/versions/13 下载和安装 https://developer.android.google.cn/about/versions/13/download 发布时间表 https://developer.android.google.cn/about/versions/13/overview#timeline
以隐私和安全为核心
在处理自己最私密、最敏感的信息的时候,人们希望使用值得信赖的操作系统和应用。隐私是 Android 产品原则的核心,Android 13 着重于在设备上提供更安全的环境,以及为用户提供更多的控制权,从而为所有人打造一个负责任、高质量的平台。在今天的开发者预览版中,我们推出了一个照片选择器,让用户可以在应用中安全地分享照片和视频;以及一个新的 Wi-Fi 权限,以进一步减少应用对位置权限的需求。我们建议大家尝试这些新的 API,并测试这些变化可能对您的应用造成的影响。
照片选择器和 API - 为了保护用户的照片和视频隐私,Android 13 增加了一个系统照片选择器,这是一种标准和优化的方式,让用户可以安全地分享本地和云端照片。一直以来,Android 通过文档选择器让用户与应用分享任意类型的文件,且该应用不需要获得查看设备上所有媒体文件的权限。照片选择器扩展了这种能力,且针对照片和视频提供了更契合的体验。应用可以通过照片选择器 API 访问用户分享的照片和视频,且不需要拥有查看设备上所有媒体文件的权限。作为运行 Android 11 及以上系统的设备 (不包括 Go 设备) 中的 MediaProvider 模块更新的一部分,我们计划通过 Google Play 系统更新将照片选择器体验带给更多的 Android 用户。欢迎大家体验照片选择器 API,并和我们分享使用反馈!
照片选择器 API https://developer.android.google.cn/about/versions/13/features/photopicker 分享使用反馈 https://developer.android.google.cn/about/versions/13/feedback
用于 Wi-Fi 的附近设备权限 - Android 13 为管理设备与周围 Wi-Fi 热点连接的应用添加了 NEARBY_WIFI_DEVICES 运行时权限 (属于 NEARBY_DEVICES 权限组)。调用许多常用 Wi-Fi API 的应用都会需要这个权限,从而在不需要位置权限的情况下通过 Wi-Fi 发现和连接附近的设备。此前,对于仅需要连接 Wi-Fi 设备,但实际上并不需要了解设备位置的应用来说,对位置权限的需求是一个挑战。以 Android 13 为目标平台的应用现在可以通过 "neverForLocation" 属性来申请 NEARBY_WIFI_DEVICES 权限,这将有助于促进隐私友好的应用设计,同时减少开发者们面临的阻碍。请访问官方文档了解详细信息:
NEARBY_WIFI_DEVICES https://developer.android.google.cn/reference/android/Manifest.permission.html#NEARBY_WIFI_DEVICES 检查需要使用新权限的 API https://developer.android.google.cn/about/versions/13/features/nearby-wifi-devices-permission#check-for-apis-that-require-permission neverForLocation https://developer.android.google.cn/reference/android/R.attr.html#usesPermissionFlags
开发者生产力与工具
Modern Android Development https://developer.android.google.cn/modern-android-development
下面为大家介绍今天的开发者预览版中的一些新内容:
快捷设置放置 API - 通知栏中的快捷设置 (Quick Settings) 让用户可以在不离开应用的情况下更改设置或快速进行相关操作。对于提供自定义磁贴的应用,我们会让用户更容易发现您的磁贴,并将它们添加到快捷设置中。通过新的磁贴放置 API,您的应用现在可以提示用户,直接将您的自定义磁贴添加到快捷设置磁贴组中。一个新的系统对话框让用户无需离开您的应用,只需单次点击即可添加磁贴,而无需前往快捷设置中手动添加磁贴。
自定义磁贴
https://developer.android.google.cn/reference/android/service/quicksettings/TileService
磁贴放置 API
https://developer.android.google.cn/reference/android/app/StatusBarManager#requestAddTileService(android.content.ComponentName,%20java.lang.CharSequence,%20android.graphics.drawable.Icon,%20java.util.concurrent.Executor,%20java.util.function.Consumer%3Cjava.lang.Integer%3E)
主题应用图标 - 在 Android 13 中,我们将 Material You 动态颜色扩展到 Google 应用之外的所有应用图标,让用户可以基于其壁纸和其他主题偏好来选择图标色调。您的应用只需提供一个单色的应用图标 (比如您的通知 Drawable),并对自适应图标 XML 进行一些调整。我们鼓励所有开发者提供兼容的图标,从而为选择使用这一功能的用户提供一致的体验。主题应用图标最初会在 Pixel 设备上得到支持,我们正与设备制造商合作伙伴们一起将这个功能引入更多设备。请访问官方文档了解详细信息:
https://developer.android.google.cn/about/versions/13/features#themed-app-icons
主题应用图标规范 https://developer.android.google.cn/about/versions/13/features#themed-app-icon-specs
单个应用的语言偏好 - 一些应用允许用户选择与系统语言不同的语言,以满足多语言用户的需求。这样的应用现在可以调用一个新的系统 API,来设置或获取用户的首选语言,从而在设置应用的运行时语言时减少样板代码并提高兼容性。为了更广泛的兼容性,我们将在即将推出的 Jetpack 开发库中增加一个类似的 API。请访问官方文档了解详细信息:
https://developer.android.google.cn/about/versions/13/features/app-languages
LocaleManager https://developer.android.google.cn/reference/android/app/LocaleManager
更快的连字符 - 连字符使折行文本更容易阅读,也让您的界面更具适应性。在 Android 13 中,我们将连字符的性能提升了多达 200%,您现在可以在 TextView 中启用连字符,它对渲染性能几乎没有影响。如果您要启用更快的连字符,可以在 setHyphenationFrequency() 中使用新的 fullFast 或 normalFast 频率。欢迎大家体验更快的连字符,并和我们分享您的想法!
setHyphenationFrequency() https://developer.android.google.cn/reference/android/widget/TextView#setHyphenationFrequency(int) fullFast 和 normalFast https://developer.android.google.cn/reference/android/widget/TextView#attr_android:hyphenationFrequency
可编程着色器 (shader) - Android 13 添加了对可编程 RuntimeShader 对象的支持,其行为使用 Android 图形着色语言 (Android Graphics Shading Language, AGSL) 定义。AGSL 与 GLSL 共享大部分语法,但在 Android 渲染引擎内工作,用以自定义 Android 画布中的绘制及过滤 View 中的内容。Android 内部使用这些着色器来实现波纹、模糊和过度滚动拉伸效果,Android 13 使您能够为自己的应用创建类似的高级效果。
RuntimeShader https://developer.android.google.cn/reference/android/graphics/RuntimeShader 波纹效果 https://cs.android.com/android/platform/superproject/+/master:frameworks/base/graphics/java/android/graphics/drawable/RippleShader.java;l=24?q=RippleShader&sq= 模糊效果 https://cs.android.com/android/platform/superproject/+/master:frameworks/native/libs/renderengine/skia/filters/BlurFilter.cpp?q=RuntimeShader&ss=android%2Fplatform%2Fsuperproject&start=21 过度滚动拉伸效果 https://cs.android.com/android/platform/superproject/+/master:frameworks/base/tests/HwAccelerationTest/src/com/android/test/hwui/StretchShaderActivity.java?q=RuntimeShader&ss=android%2Fplatform%2Fsuperproject&start=11 GLSL 着色器 https://twitter.com/notargs/status/1250468645030858753
OpenJDK 11 更新 - 在 Android 13 中,我们已经开始更新 Android 核心库,以便与 OpenJDK 11 LTS 版本保持一致,为应用和平台开发人员提供代码库更新和 Java 11 编程语言支持。作为运行 Android 12 及以上系统的设备的 ART 模块更新的一部分,我们计划通过 Google Play 系统更新将这些核心库的变更发布至更多设备。请访问官方文档了解详细信息:
https://developer.android.google.cn/about/versions/13/features#core-libraries
应用兼容性
发布新的平台版本时,我们优先考虑应用的兼容性,让系统更新的体验更快、更顺畅。在 Android 13 中,大多数面向应用的变更都是可选的,以便您有更多的时间进行调整和适配,我们还更新了工具和流程,帮助您更快地做好准备。
更多的 Android 系统功能通过 Google Play 更新 - 在 Android 13 中,我们继续扩大对 Google Play 系统更新 (Project Mainline) 的资源投入,使应用在不同的设备上拥有更一致、更安全的环境,并向用户交付新的特性和功能。我们现在可以通过对现有模块的更新,直接向旧版 Android 的用户推送新的功能,如照片选择器和 OpenJDK 11。我们还增加了新的模块,如蓝牙和超宽频模块,以进一步扩大 Android 可更新核心功能的范围。
Google Play 系统更新 https://android-developers.googleblog.com/2019/05/fresher-os-with-projects-treble-and-mainline.html
针对平板电脑、可折叠设备和 Chromebook 进行优化 - 随着平板电脑、可折叠设备和 Chromebook 等大屏幕设备的蓬勃发展,现在是时候让您的应用为这些设备做好准备,并设计适合任何屏幕的完全自适应的应用了。您可以依据我们的平板电脑应用质量指南开始进行适配工作,然后学习如何为大屏幕和可折叠设备进行构建。
平板电脑应用质量 https://developer.android.google.cn/docs/quality-guidelines/tablet-app-quality 大屏幕使用入门 https://developer.android.google.cn/guide/topics/large-screens/get-started-with-large-screens 为可折叠设备构建应用 https://developer.android.google.cn/guide/topics/ui/foldables
https://developer.android.google.cn/about/versions/13/reference/compat-framework-changes
平台稳定性里程碑 - 和去年一样,我们会提前告知我们的平台稳定性里程碑,让您有更多的时间来规划应用兼容性工作。在抵达这个里程碑时,我们不仅会交付最终版 SDK/NDK API,而且还会锁定最终的内部 API 和面向应用的系统行为。我们预计将在 2022 年 6 月抵达平台稳定性里程碑,届时在正式版发布之前,您将有几周的时间进行最终测试。发布时间表详见:
https://developer.android.google.cn/about/versions/13/overview
即刻开始体验 Android 13
不论您是想体验 Android 13 的功能、测试应用还是提交反馈,都可以从这次的开发者预览版开始。如果您想要测试应用在平板电脑和可折叠设备上的兼容性,最简单的方法是使用 Android 模拟器的平板电脑或可折叠设备配置,请阅读官方文档了解设置说明。对于手机,只需将系统映像下载并刷入 Pixel 6 Pro / 6 / 5a 5G / 5 / 4a (5G) / 4a / 4 XL / 4 设备,即可立即开始使用。如果您没有 Pixel 设备,则可以在 Android Studio 中使用带有 64 位系统映像的 Android 模拟器。如果想进行更广泛的测试,我们也提供了 GSI 映像。
反馈与需求 https://developer.android.google.cn/about/versions/13/feedback 获取 Android 13 https://developer.android.google.cn/about/versions/13/get 获取系统映像 https://developer.android.google.cn/about/versions/13/download
设置完毕后,您可以:
体验新功能和 API - 在开发者预览版的早期阶段,您的反馈至关重要。您可以在我们的跟踪页报告问题,也可以前往反馈与需求页面,通过特定功能的调查问卷提供直接反馈。
测试现有应用的兼容性 - 这是为了测试您的应用是否受到 Android 13 默认行为变更的影响。只需将您当前发布的应用安装到运行 Android 13 的设备或模拟器上并进行测试即可。
使用可选变更项测试应用 - Android 13 提供了可选的行为变更,这些变更仅在您的应用以新平台为目标时才会造成影响。尽早了解和评估这些变更十分重要。为了更易于测试,您可以单独启用或禁用这些变更。
设置 Android 13 SDK https://developer.android.google.cn/about/versions/13/setup-sdk 反馈与需求 https://developer.android.google.cn/about/versions/13/feedback 兼容框架变更 https://developer.android.google.cn/about/versions/13/reference/compat-framework-changes
我们将在整个 Android 13 的发布周期内定期更新预览版系统映像和 SDK。这次发布的初始预览版仅供开发者使用,不面向日常或消费者使用,因此我们仅提供手动下载。在手动安装预览版本后,您将通过 OTA 方式自动获得后续预览版和 Beta 版更新。请访问官方文档了解详细信息:
https://developer.android.google.cn/about/versions/13/get
随着我们接近 Beta 版的发布,我们也会邀请消费者来体验 Android 13,届时将开放 Android Beta 注册。但请注意,目前 Android 13 尚未提供 Beta 版本。
了解本次发布的完整信息,请访问 Android 13 开发者网站:
https://developer.android.google.cn/about/versions/13
* Java 和 OpenJDK 是 Oracle 和/或其附属公司的商标或注册商标。
推荐阅读