Android 17 版本说明

本页总结了 Android 17 版本中的主要功能,并提供了其他信息的链接。这些功能摘要按照相应功能的文档在本网站上的位置进行整理。

架构

ION 弃用

ION 内存分配器不再受任何 Android 版本的支持,因为支持 ION 的所有内核均已于 2025 年 12 月达到服务终止期限。所有尝试使用 ION 的供应商代码都应失败。移除所有使用 ION 的供应商代码。

音频

音频托管 SCO 重新架构

如果设备在 Android 17 及更高版本中采用音频托管同步连接导向 (SCO) 重新架构,则 Android 音频框架会使用 SCO 管理功能来管理 SCO 路由。之前,此路由由蓝牙 (BT) 框架处理。如需了解详情,请参阅音频托管 SCO 重新架构

汽车

利用可伸缩界面实现高级窗口化

在 Android 17 及更高版本中,使用可伸缩界面在汽车中打造复杂、动态且多面板的用户体验。添加 WindowManager 不变性、配置设置向导,以及自定义系统栏和导航栏。如需了解详情,请参阅使用可伸缩界面实现高级窗口化

软件定义汽车

在 Android 17 及更高版本中,您可以使用软件定义型车辆 (SDV)。 SDV 使用软件在车辆运行的构建、控制、管理和增强方面发挥着至关重要的作用。SDV 将车辆转变为互联的自适应平台,可通过软件更新不断发展。如需了解详情,请参阅软件定义型汽车

兼容性

测试音频多声道输入和输出

Android 17 引入了针对音频多声道输入和输出的 CTS 验证程序测试。如需了解如何运行这些测试,请参阅测试音频多声道输入和多声道输出

运行 CTS-V 测试

Android 17 需要额外的 CTS-V 设置步骤来授予默认浏览器角色。如需了解此步骤,请参阅运行 CTS-V 测试

运行测距精度、电信和主机端交互式测试

Android 17 包含 CTS-V 交互式测试,这些测试是半自动化测试,需要您在被测设备 (DUT) 上执行一些手动步骤。

除了交互式测试之外,我们还将手动测距精度和电信测试转换为多设备测试。必须进行 Wi-Fi 连接测试。如需了解如何设置和运行这些测试,请参阅运行主机端测试

运行 USB 主机端交互式测试

Android 17 包含需要通过 Wi-Fi 运行的 USB CTS-V 主机端测试。adb如需了解如何设置和运行这些测试,请参阅运行 USB 主机端测试

运行媒体测试

Android 17 包含 CTS-V 媒体播放测试。如需了解详情,请参阅运行 CTS 验证程序媒体播放测试

运行音频工作负载测试

Android 17 包含 CTS-V 音频工作负载测试。如需详细了解如何运行此测试,请参阅运行 CTS 验证程序音频工作负载测试

音频测试更新

Android 17 引入了以下音频测试更新:

  • 将 USB-C 转 3.5 毫米耳机插孔转换器添加到了 USB 耳机插孔转换器推荐列表。如需了解详情,请参阅 USB 耳机插孔转换器推荐
    • Google(供应商 ID:0x18D1,产品 ID:0x5025)
    • Xumee(供应商 ID:0x3302,产品 ID:0x56C5)
  • 从 CTS 验证程序专业音频测试中移除了 HDMI 要求。如需了解详情,请参阅 CTS 验证程序专业音频测试

相机 ITS 更新

Android 17 对相机图像测试套件 (ITS) 做出了更新。有关详情,请参阅:

兼容性定义文档 (CDD)

Android 17 兼容性定义文档 (CDD) 随 Android 17 更新一起发布。

连接

将 OTT 通话自动路由到优质网络连接

Android 17 支持将 OTT 语音和视频通话自动路由到优质网络连接。借助此功能,系统可自动将语音和视频通话的流量引导至专用优质网络接口,例如优质 5G 切片或优质 4G PDN 连接,而无需更改应用的联网堆栈。如需了解详情,请参阅 5G 切片自动路由(适用于 OTT 语音和视频)

测距:带外规范更新

Android 17 引入了频带外 (OOB) 规范的版本 2版本 3

版本 2 包含以下更改:

  • 技术转换:允许在有效会话期间动态切换测距技术,而不会中断数据流。
  • 测距功能响应消息载荷:包含一个支持的技术过渡字段,用于指示对先断后立技术过渡的支持。

版本 3 包含以下更改:

  • 运动通知消息载荷:广告客户设备用于将运动变化通知给发起方设备的数据元素 (DE)。
  • 测距配置消息载荷:包含运动支持字段,用于让发起方告知响应方,它希望在响应方检测到外围设备运动发生任何变化时收到通知。

显示

窗口化模式

在 Android 17 及更高版本中,您可以启用按显示屏划分的桌面窗口化模式。如需了解详情,请参阅窗口化模式系统装饰支持推荐的做法

大屏设备应用兼容性

Android 17 针对大屏设备应用兼容性叠加层引入了 config_isCameraCompatSimulateRequestedOrientationTreatmentEnabledconfig_isCameraCompatSimReqOrientationLandscapeTreatmentEnabledconfig_enableSelfKillRecoveryBetweenInternalDisplays 设置。如需了解详情,请参阅大屏应用兼容性设置指南

媒体

VVC 支持

Android 17 支持视频编码标准 Versatile Video Coding (VVC),用于解码场景。Android 平台提供框架和解析器支持,但为了启用 VVC 解码,SoC 供应商或 OEM 必须提供解码器(软件或硬件),并且 OEM 必须确保该解码器已启用并已正确注册到 Android 媒体子系统。如需了解详情,请参阅 VVC 支持

性能

收集常规运行状况信息

为了通过换机模式改进系统健康状况诊断,Android 17 添加了相机几何信息和 UICC 卡槽信息。如需查看这些字段的示例,请参阅获取系统健康状况信息

内存限制器

内存限制器是一项系统服务,它使用 Linux cgroup v2 监控和限制应用进程的内存用量。内存限制器可防止单个应用消耗过多的系统内存,从而降低整个系统的内存压力,并防止激进地终止关键进程以解决内存不足 (OOM) 问题。如需了解详情,请参阅内存限制器

内存管理守护程序

Android 17 及更高版本支持内存管理守护程序 (mmd),该守护程序是一个系统守护程序,负责配置和管理与 ZRAM 相关的维护任务。如需了解详情,请参阅内存管理守护程序

进程内存守护程序

进程内存守护程序 (PMGD) 通过主动管理每个进程的内存用量来保护系统健康状况和用户体验。该守护程序通过对特定目标进程强制执行内存上限来提高整体设备稳定性,从而验证孤立的内存泄漏或峰值不会导致系统范围的性能下降。如需了解详情,请参阅进程内存守护程序

权限

联系人选取工具

借助 Android 联系人选择工具,应用开发者可以检索用户选择的联系人详细信息,而无需获得完整的联系人权限。此方法符合 Android 致力于实现数据透明化和最小化权限占用空间的目标。

联系人选择工具的主要功能包括:

  • 以隐私保护为先的分享:仅授予应用对所选数据的读取权限。
  • 标准化的界面:通过内置的搜索、个人资料切换和多选功能,提供一致的用户体验。
  • 向后兼容性:自动接管以 Android 17 及更高版本为目标平台的应用的旧版 Intent.ACTION_PICK 请求。

如需了解详情,请参阅 Android 联系人选择工具

位置指示器

Android 17 在状态栏中引入了实时位置信息指示标志,从而扩展了摄像头和麦克风使用情况的隐私透明度。当非系统应用在前台访问设备位置信息时,系统会显示一个专用图标,该图标会转换为一个持久存在的小圆点,让用户能够点按并查看哪些应用正在跟踪其数据。如需了解详情,请参阅隐私指示标志

安全

硬件封装密钥改进

Android 17 及更高版本简化了现有硬件封装密钥存储加密功能的实现。

简化的实现使用 Linux 内核 ioctl 而不是 KeyMint 来生成、导入和准备硬件封装的内嵌加密密钥。Linux 内核会与密钥封装硬件通信,以执行这些操作。

这样可以移除这些操作中不必要的 KeyMint 参与,从而简化设计。它还实现了与上游 Linux 内核的兼容性。

硬件封装密钥的实现者必须添加对新 Linux 内核 ioctl 的支持。

之后,在 fstab 中使用 wrappedkey 而不是 wrappedkey_v0 来启用新实现。这包括磁盘上格式的更改,因此仅适用于新推出的设备。已使用 wrappedkey_v0 的设备必须继续使用 wrappedkey_v0

仅在发布时搭载 Android 17 及更高版本的设备上使用的 KeyMint 实现不需要支持 TAG_STORAGE_KEYconvertStorageKeyToEphemeral。它们的功能已被 Linux 内核 ioctl 取代。KeyMint 仍用于其他目的。

如需了解详情,请参阅硬件封装的密钥

锁屏速率限制用户体验

Android 17 及更高版本使用的默认锁屏速率限制比更低版本更严格。在极少数情况下,用户可能会遇到锁屏状态超时时间过长的问题,因此 Android 17 及更高版本在锁屏状态上提供了以下增强的用户反馈:

  • 改进了时间格式:锁屏界面会使用较大的时间单位显示持续时间为 1 分钟或更长的超时,以提高可读性,例如请在 30 分钟后重试,而不是请在 1800 秒后重试
  • 恢复短链接:锁屏界面会显示一个短链接(默认为 g.co/android/unlock),以帮助用户在其他设备上找到恢复选项。此关联可通过 config_lockscreenLockoutShortlink 资源进行配置。
  • 重复尝试反馈:在采用 Weaver 实现的设备上,当输入重复的错误猜测时,系统会显示一条独特的消息。在仅限 Gatekeeper 的设备上,无法提供此特定反馈,因为这些设备不会针对猜测错误和其他验证失败提供单独的响应代码。
  • 一致的凭据输入管理:如果设备使用 PIN 码凭据,锁屏会停用 PIN 码输入键盘,与密码和解锁图案凭据输入类似。

LockPatternUtils#getLockoutAttemptDeadline(int) 方法已重命名为 LockPatternUtils#getLockoutEndTime(int),并从系统管理的缓存中提供锁定结束时间。此更新解决了以下问题:它们仅按 LockPatternUtils 实例进行缓存,如果使用另一个实例触发了某个超时,则会错误地显示没有有效超时。锁屏和设置 activity 等系统凭据提示的开发者必须更新这些提示,以在允许进一步尝试之前验证现有超时。

如需了解详情,请参阅速率限制

政策兼容性

在 Android 17 及更高版本中,发布时具有政策兼容性中所述属性的设备必须启用 memfd_class 政策功能,并更新其与共享内存相关的政策,以支持 memfd_file 类对象。

安全元件预热

在 Android 17 及更高版本中,Weaver HAL 接口包含一个用于预热安全元件的方法。当存在支持此方法的 Weaver HAL 时,Android 会在锁屏数字密码、解锁图案或密码开始输入时调用预热方法。此方法可将验证锁屏数字密码、解锁图案或密码的延迟时间缩短最多 200 毫秒,具体取决于安全元件及其电源管理实现。

如果此方法能提高性能,Weaver HAL 实现者可以支持此方法。 如需了解详情,请参阅 IWeaver#warmUp()

设置

排查构建错误

在 Android 17 及更高版本中,AOSP 源代码树是只读的。如果您运行的 build 尝试在产品配置期间或 build 的任何其他部分修改源树,则 build 会失败并报告只读文件系统错误。

如需解决此问题,请将源树设置为读写模式。如需了解详情,请参阅排查 build 错误