Android 17 功能和变更列表

下表列出了所有记录的可能会影响应用开发者的功能和行为变更。请使用此列表查找影响您的变更,然后点击相应的链接阅读文档。

类别 类型 名称
用户体验和系统界面 变更(所有应用) 旋转后恢复默认 IME 可见性
当设备旋转或配置发生更改时,系统会使用默认可见性模式来确定是否显示 IME。
用户体验和系统界面 变更(以 Android 17 及更高版本为目标平台的应用) WebView 的用户代理缩减
从 Android 17 开始,WebView 的默认用户代理字符串会更短。
用户体验和系统界面 变更(以 Android 17 及更高版本为目标平台的应用) 内存限制微件
对于以 Android 17 或更高版本为目标平台的应用,RemoteViews parcel 中的位图和图标有严格的内存限制。
用户体验和系统界面 新功能和 API 专用辅助应用音量流
Android 17 为辅助应用引入了专用辅助应用音量流,可实现与媒体音量分开控制。有权访问新 MODE_ASSISTANT_CONVERSATION 的辅助应用可以进一步改进音量控制,例如在非主动播放期间或通过蓝牙外围设备进行控制。
用户体验和系统界面 新功能和 API MetricStyle 模板
Android 17 引入了 MetricStyle 模板,可支持健康与健身、计时器、秒表和旅行等应用场景。
用户体验和系统界面 新功能和 API 实时动态 - 语义颜色 API
实时动态引入了语义颜色 API,以支持与安全、危险和警告密切相关的颜色。
用户体验和系统界面 新功能和 API 接力
接力功能允许用户在一台设备上开始一项任务,然后在另一台设备上继续完成该任务。
安全 变更(所有应用) 屏蔽跨资料环回流量
默认情况下,系统不再允许跨资料环回流量。
安全 变更(所有应用) 每个应用的密钥库限制
应用可以创建的密钥库密钥数量有限制,具体取决于其目标 API 级别;创建更多密钥会导致异常。
安全 变更(所有应用) 限制隐式 URI 授权
如果 Android 应用使用 URI 发起 intent,我们建议它们明确预分配所有必要的 URI 权限,而不是依赖系统自动授予这些权限。
安全 变更(以 Android 17 及更高版本为目标平台的应用) 默认启用 CT
在 Android 16 中,我们允许应用选择启用证书透明度功能。对于 Android 17,我们计划为设备执行的所有 TLS 连接启用证书透明度。
安全 变更(以 Android 17 及更高版本为目标平台的应用) 更安全的原生 DCL - C
应用必须确保 DCL 模块无法在不被检测到的情况下被覆盖。
安全 变更(以 Android 17 及更高版本为目标平台的应用) 限制 CP2 数据视图中的个人身份信息字段
以 Android 17 或更高版本为目标平台的应用无法访问 CP2 数据视图中的某些个人身份信息字段。
安全 变更(以 Android 17 及更高版本为目标平台的应用) 在 CP2 中强制执行严格的 SQL 检查
对于以 Android 17 或更高版本为目标平台的应用,如果在没有 READ_CONTACTS 权限的情况下访问 ContactsContract.Data 表,Contacts Provider 2 会强制执行严格的 SQL 查询验证。
安全 新功能和 API Android 高级保护模式 (AAPM)
为 Android 用户提供了一套强大的全新安全功能。
安全 新功能和 API PQC APK 签名
新增了对使用新的后量子加密 (PQC) 签名密钥为 APK 签名的支持。
核心功能 变更(所有应用) 应用内存限制
Android 17 根据设备的 RAM 总容量引入了新的应用内存限制。
核心功能 变更(所有应用) 应用内存运行时限制
系统将更严格地执行应用内存限制。超出这些限制可能会导致应用崩溃。
核心功能 变更(所有应用) usesClearTraffic 弃用计划
我们计划在未来版本中弃用 usesClearTraffic。需要建立 HTTP 连接的应用应改为使用网络安全配置文件。
核心功能 变更(所有应用) 优化了自广播的传送
应用发送到其自身进程中的接收器的广播不再会提高进程的优先级,也不会阻止缓存的进程被冻结。
核心功能 变更(以 Android 17 及更高版本为目标平台的应用) 新的 NPU 功能标志
以 Android 17 为目标平台的应用如果需要访问 NPU,则必须声明 android.hardware.npu 功能。
核心功能 变更(以 Android 17 及更高版本为目标平台的应用) 通知自定义视图的内存限制
Android 17(API 级别 37)针对使用自定义视图的通知引入了更严格的内存用量检查
核心功能 变更(以 Android 17 及更高版本为目标平台的应用) 静态 final 字段现在不可修改
以 Android 17 或更高版本为目标平台的应用无法修改静态 final 字段。尝试这样做会导致异常。
核心功能 变更(以 Android 17 及更高版本为目标平台的应用) MessageQueue 的全新无锁实现
以 Android 17 或更高版本为目标平台的应用会获得 MessageQueue 的全新无锁实现。
核心功能 新功能和 API 新的 ProfilingManager 触发器
Android 17 为 ProfilingManager 引入了多个新的系统触发器,可帮助您收集深度数据,以便调试性能问题。
核心功能 新功能和 API JobDebugInfo API
新增了 `JobDebugInfo` API,可帮助开发者调试其 JobScheduler 作业。
隐私权 变更(所有应用) 消息访问权限受限
大多数应用现在无法访问端到端加密消息。
隐私权 变更(以 Android 17 及更高版本为目标平台的应用) 针对标准短信的动态密码保护
非优先应用无法立即访问动态密码 (OTP),即使用户已向其授予短信权限也是如此。
隐私权 变更(以 Android 17 及更高版本为目标平台的应用) 以 Android 17 为目标平台的应用需要本地网络权限
以 Android 17 为目标平台的应用无法访问本地设备,除非它们在附近设备组中拥有适当的权限。在 Android 16 中,这是一项可自主选择是否启用的选项。
隐私权 变更(以 Android 17 及更高版本为目标平台的应用) 启用 ECH(加密客户端 Hello)
对于以 Android 17 或更高版本为目标平台的应用,系统会为 TLS 连接启用 ECH。
隐私权 变更(以 Android 17 及更高版本为目标平台的应用) 在实体设备上隐藏密码
设备不再显示通过实体设备输入的最近一次密码。
隐私权 新功能和 API Android 联系人选择工具
Android 17 引入了新的联系人选择工具,这是一种无需权限即可让应用访问用户联系人的方式。
人工输入 变更(所有应用) 在指针捕获期间,触摸板默认提供相对事件
从 Android 17 开始,触摸板会提供相对指针事件(如鼠标事件),而不是绝对事件。
媒体 变更(所有应用) 后台音频强化
应用无法播放音频或使用其他干扰性音频 API,除非它们可见或具有前台服务。
媒体 新功能和 API 新增了 BYPASS_CONCURRENT_RECORD_AUDIO_RESTRICTION 权限,用于捕获敏感音频
引入了新的 BYPASS_CONCURRENT_RECORD_AUDIO_RESTRICTION 权限,用于在通话期间并发捕获音频以及其他敏感音频用例。
连接 变更(所有应用) 蓝牙连接断开后自动重新配对
蓝牙连接断开后,系统会自动尝试在后台重新建立蓝牙连接,用户无需在“设置”中手动取消配对并重新配对设备
连接 变更(以 Android 17 及更高版本为目标平台的应用) RFCOMM 的 BluetoothSocket read() 行为保持一致
对于以 Android 17 或更高版本为目标平台的应用,BluetoothSocket RFCOMM 实现将与标准 Java InputStream 行为保持一致。
连接 新功能和 API 受限的卫星网络
重点关注如何让 Android 应用在低带宽卫星网络上高效运行。
无障碍 变更(以 Android 17 及更高版本为目标平台的应用) 复杂 IME 实体键盘输入的无障碍支持
此功能允许 IME 通过编辑器向无障碍服务传达更多文本更改信息,从而帮助屏幕阅读器为复杂 IME 提供更一致、更自然、更可靠的反馈。
设备规格 变更(以 Android 17 及更高版本为目标平台的应用) 平台 API 变更:在大屏设备 (sw>=600dp) 上忽略屏幕方向、尺寸调整和宽高比限制
Android 16 引入了平台 API 变更,以便在大屏设备 (sw >= 600dp) 上忽略屏幕方向、尺寸调整和宽高比限制。以 Android 17 为目标平台的应用将无法再选择停用这些变更。
智能 变更(以 Android 17 及更高版本为目标平台的应用) setContentCaptureEnabled 弃用
从 Android 17 开始,对于以 Android 17 或更高版本为目标平台的应用,调用 setContentCaptureEnabled(false) 不再会停用内容捕获功能。
图形 新功能和 API Android 上的 WebGPU
WebGPU 提供惯用的 Kotlin 和 Java 图形及计算 API,可用于访问 Vulkan。这是 Android 转向将 Vulkan 作为主要底层 GPU API 的一部分。