Android 13为开发者带来了什么

描述

作者 / Seang Chau, VP of Engineering

今天,我们将 Android 13 的源代码推送至 Android 开源项目 (AOSP),并正式发布最新版本的 Android。对于开发者来说,Android 13 聚焦于我们的核心主题,即隐私和安全,以及开发者生产力,帮助您更轻松地为用户构建优良的体验。我们还继续使 Android 成为更适合平板电脑和大屏幕设备的操作系统,为您提供更好的工具,让您得以充分利用世界各地正在广泛使用的 2.7 亿多台此类设备。

Android 13 自即日起会推送至 Pixel 设备。今年晚些时候,Android 13 也会推送至其他您喜爱的设备,包括三星 Galaxy、华硕、HMD (诺基亚手机)、iQOO、摩托罗拉、一加、OPPO、真我、夏普、索尼、TECNO、vivo、小米等。

再次感谢大家分享的测试反馈,以及您为确保应用与今天的版本兼容所做的工作。是大家的支持和贡献让 Android 成为了属于每一个人的伟大平台!

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

Android 13 带来的更新内容众多,下文只是精选的一部分。

开发者生产力和工具

主题应用图标- Android 13 将 Material You 的动态颜色扩展到了所有应用图标,让用户可以基于其壁纸和其他主题偏好来选择图标色调。您的应用仅需提供一个单色的应用图标,并对自适应图标 XML 进行一些调整即可。

按应用设定语言偏好- Android 13 可以让应用使用不同于系统语言的其他语言,以更好地满足多语言用户的需求。Android 现在为应用提供了一个标准的 "应用语言" 设置面板 (如果应用选择支持此功能),您还可以调用一个新的平台 API,在运行时获取或设置用户的首选语言区域,从而减少模板代码并提高兼容性。

改进的文本支持 - Android 13 针对文本和语言提供了多项改进,帮助您打造更加完美的体验。更快的断字将断字性能优化了多达 200%,因此您现在可以在 TextView 中启用此功能,这几乎不影响渲染性能。通过使用文本转换 API,能让中文、日文等需要使用拼音输入的语言在执行搜索和自动完成等功能时的速度更快。Android 13 还改善了非拉丁文字 (如泰米尔语、缅甸语、泰卢固语和藏语等) 的行高,让字符免于被裁切且更加易于阅读。

彩色矢量字体 - Android 13 增加了对 COLR 版本 1 (请参考详细规格和介绍视频) 字体的渲染支持,并将系统表情符号更新为 COLRv1 格式。COLRv1 是一种新的、高度紧凑的字体格式,在任何尺寸下都能快速清晰地渲染。对于大多数应用,这项修改完全无法被感知到,系统会自动处理好一切。

快捷设置放置 API - 对于提供自定义快捷设置 (Quick Settings) 图块的应用,Android 13 能让用户更容易发现和添加您的图块。借助新的图块放置 API,您的应用现在可以让用户通过对话框直接添加您的自定义快捷设置图块,而且只需一步即可完成操作,不需要离开您的应用。

可编程着色器 (shader) - Android 13 引入了可编程 RuntimeShader 对象,其行为使用 Android 图形着色语言 (Android Graphics Shading Language, AGSL) 定义。您可以使用这些着色器在自己的应用中实现波纹、模糊和过度滚动拉伸,以及类似的高级效果。

基于 PlaybackState 的媒体控件 - 对于以 Android 13 为目标平台的应用,系统基于 PlaybackState 操作清单实现了更丰富的媒体控件,从而在手机和平板电脑等设备类型上获得更佳的一致性,并和 Android Auto 和 Android TV 等其他 Android 平台保持一致。

蓝牙低功耗 (LE) 音频 - 低功耗 (Low Energy, LE) 音频是用于实现新的用例的下一代无线音频。用户可以通过它与朋友和家人分享和广播自己的音频,或订阅公共广播以获得信息、娱乐或无障碍辅助信息。它旨在确保用户能够在不牺牲电池寿命的情况下接收高保真音频,并在不同用例之间无缝切换。Android 13 增加了对低功耗音频的内置支持,开发者们可在兼容的设备上使用这项新功能。、

MIDI 2.0 - Android 13 增加了对新的 MIDI 2.0 标准的支持,包括通过 USB 连接 MIDI 2.0 硬件的能力。这个更新的标准提供了一些新功能,如更高的控制器分辨率,更好地支持非西方音调,以及通过单一音符控制器提供更佳的表现力。

OpenJDK 11 更新 - Android 13 核心库已经与 OpenJDK 11 LTS 版本保持一致,为应用和平台开发者提供库更新和 Java 11 编程语言支持。作为对 Android 12 及以上设备的 ART 模块更新的一部分,我们计划通过 Google Play 系统更新将这些核心库的变更发布至更多设备。请访问官方文档了解详细信息:

https://developer.android.google.cn/about/versions/13/features#core-libraries

预测性返回手势 - Android 13 引入了新的 API,可让您的应用告诉系统它将提前处理返回事件,我们称之为 "提前" 模型。这个新方案会需要若干年来完善,以帮助您的应用程序支持预测性返回手势,该功能现在可通过开发者选项在当前版本中进行测试。

为平板电脑而生

Android 13 进一步拓展了我们今年早些时候发布的 Android 12L 功能更新,在平板电脑上提供了更好的体验。我们强化了一些功能,包括针对多任务操作改进过的任务栏,更多针对大屏幕的布局,以及针对系统界面和应用进行了许多优化,应用兼容模式也得到了改进,等等。我们将继续投入资源为您打造工具,帮助您为平板电脑、Chromebook 和可折叠设备构建优良的体验。

照片选择器和 API - 全新的系统照片选择器为用户分享本地和云端照片提供了标准且私密的方式。照片选择器针对 Android 上长期使用的文档选择器进行了扩展,使用户可以很容易地与应用分享特定的照片和视频,而无需授权应用查看设备上的所有媒体文件。照片选择器为照片和视频提供了专门的体验,并提供了供应用访问共享媒体文件的 API。Android 11 及以上系统设备 (Go 设备除外) 的用户会通过 Google Play 系统更新获得照片选择器功能。

通知权限 - 为了帮助用户专注于对他们最重要的通知,Android 13 引入了一个新的通知运行时权限。现在应用需要在发送通知之前向用户申请通知权限。对于以 Android 12 或更低版本为目标平台的应用,系统将代您处理升级流程。

针对附近 Wi-Fi 设备的权限 - Android 13 为管理设备与周围 Wi-Fi 热点连接的应用引入了新的 NEARBY_WIFI_DEVICES 运行时权限。许多常用的 Wi-Fi API 都需要这个新权限,从而让应用在不需要获得定位权限的情况下即可通过 Wi-Fi 发现并连接到附近的设备。

细化的媒体权限 - 在分享照片和视频时,照片选择器现在是我们推荐的解决方案,它更加用户友好,且无需请求权限。但对于尚未使用照片选择器的应用,或者需要访问音频文件的场景,Android 13 也增加了新的更细化的媒体权限。这些媒体权限用以取代 READ_EXTERNAL_STORAGE 权限,让应用得以访问特定的媒体文件类型,包括图片、视频和音频。我们强烈建议您在条件允许时使用照片选择器方案,当应用以 Android 13 为目标平台且不适合使用该方案时,则推荐使用细化的媒体权限。

开发者可降级权限 - 从 Android 13 开始,如果应用不再需要某些之前由用户授予过的权限,可以通过新的 API 来降级权限。通过移除不再使用的权限,您的应用可以向用户表明其只使用了必需的最少权限,从而提高用户信任度。

更安全的导出 Intent 过滤器 - 在向以 Android 13 为目标平台的其他应用的导出 intent 过滤器发送显式 intent 时,Android 13 给出了更严格的规则。如果 intent 指定了动作,则系统只在该 intent 与接收应用中声明的 元素匹配时才会向导出组件传递 intent。

应用性能

Android 13 通过对 ART 运行时的更新,提高了所有应用的性能和效率。我们正在为 Android 12 及以上设备更新 ART 模块,作为此项更新的一环,我们也会通过 Google Play 系统更新将这些性能改进带给更多的 Android 用户。

垃圾回收改进 - 一个基于 Linux 内核功能 userfaultfd 的新垃圾回收器会随着即将到来的 Google Play 系统更新加入 Android 13 设备的 ART。新的垃圾回收器消除了读取障碍,降低了每个对象加载的开销,减少了内存压力,使得编译后的代码体积能减少约 10%。它在 GC 时间也更高效,因为分页会随着压缩的进行而被释放。总而言之,新的垃圾回收器有助于节省电量,避免在 GC 过程中出现卡顿,以及让应用免于在低内存时被强行终止。

遍及整个 ART 的优化 - 在 Android 13 中,ART 让切换到本地代码的速度更快,反之亦然,现在 JNI 调用的速度可达之前的 2.5 倍。我们还重新设计了运行时的引用处理,使其基本处于非阻塞状态,这进一步减少了卡顿。我们公开了一个新的公共 API,Reference.refersTo(),让您可以尽快回收无法抵达的对象,我们还优化了类/方法的查找,从而让解释器的运行更快。最后,ART 现在在安装时会执行更多的字节码验证,避免了在运行时验证的损耗,从而让应用能快速启动。

让您的应用做好准备!

随着今天 Android 13 正式发布至 AOSP,我们要求所有的 Android 开发者完成兼容性测试,并尽快发布更新,从而让您的用户能顺利过渡至 Android 13。

只需在运行 Android 13 的设备上安装您的应用,即可开始测试其兼容性。请测试应用的所有流程,找出功能或用户界面中暴露的问题。

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

通知的运行时权限 - 请您务必了解新的权限在您的应用发送通知时的工作机制,并尽快开始规划针对 Android 13 (API 33) 的相关工作,以让用户获得良好的体验。

剪贴板预览 - 请确保您的应用在 Android 13 全新的剪贴板预览中隐藏敏感数据,比如密码或信用卡信息。

JobScheduler 预提取 - JobScheduler 现在会预测您下次启动应用的时机,并提前运行关联的预提取作业。如果您有使用预提取作业,请通过测试确保它们工作正常。

别忘了测试应用中的开发库和 SDK 的兼容性。如果您在测试中发现 SDK 存在问题,请尝试更新 SDK 到最新版本,或向其开发者寻求帮助。

一旦您发布了当前应用的兼容版本,就可以开始更新应用的 targetSdkVersion。请查阅行为变更清单 (针对面向 Android 13 的应用),并使用兼容性框架工具来快速检测问题。

对平板电脑和大屏幕设备的支持

Android 13 为平板电脑带来了更好的体验,请确保您的应用能活用这项优势。您可以通过在 Android Studio 中设置 Android 模拟器来测试大屏幕设备相关的功能,或者在我们的 Android 13 Beta 合作伙伴的大屏幕设备上进行测试。

以下是一些测试时的注意点:

任务栏交互 - 请检查您的应用在大屏幕上配合新任务栏时的交互情况,确保应用的界面没有被任务栏裁切或遮挡。

多窗口模式 - 无论应用配置如何,所有的应用现在默认启用多窗口模式,所以请确保应用妥善处理分屏显示。您可以通过拖放将您的应用切换至分屏模式,并调整窗口大小来进行测试。

改进的兼容性体验 - 如果您的应用尚未针对平板电脑进行优化,比如使用固定的朝向、不支持缩放等,请检查您的应用在兼容模式下的表现 (如信箱模式)。

媒体投影 - 如果您的应用使用了媒体投影功能,请检查您的应用在媒体播放、串流,以及在大屏幕设备上投影时的情况。别忘了针对可折叠设备的状态切换进行适配。

相机预览 - 针对相机应用,请检查相机预览界面在大屏幕设备的多窗口模式或分屏模式中,应用被限制在屏幕的局部区域时的表现。同样也别忘了针对可折叠设备的状态切换进行适配。

下一步

Android 13 自即日起会推送至 Pixel 设备。

如果您已经参加了 Android Beta 版测试,您将会自动获得 Android 13 的正式版,并会在后续的 Android 13 功能更新 (今年晚些发布) 中继续获得这些功能的 Beta 版更新。如果您不想继续接收 Beta 版更新且不希望刷写自己的设备,请在获取完 Android 13 正式版后,并在 Android 13 的第一个功能更新 Beta 版发布之前在 Android Beta 测试站点退出测试即可:

适用于 Pixel 设备的系统映像已经发布,您可以下载并刷入设备。您也可以通过 Android Studio 的 SDK 管理器获得最新的 Android 模拟器系统映像。如果您需要 Android 13 的源代码,可以在 Android 开源项目 (AOSP) repo 里的 Android 13 分支里获取。

再次感谢您参与我们的早期体验测试和 Beta 版测试!我们已经迫不及待想在 Android 13 上看到您的应用了!

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分