Android 17 已进入平台稳定阶段,此次更新的核心在于提升隐私保护和多设备协同体验。主要新增功能包括提供更精细化权限管理的联系人选择器、加强局域网访问控制的本地网络权限、强制应用适配的大屏优化,以及用于跨设备任务续接的接力 API。虽然整体更新注重实用性和生态建设,但部分功能对 Google 服务的依赖可能会影响国产机型的完整体验。
更新节奏与前瞻
Android 17 目前已进入 Platform Stability 阶段,意味着在下半年新的测试周期开始前,不会再有重大的新功能加入。本次更新的重点主要集中在交互和底层优化上,旨在增强隐私和多设备间的联动。
值得关注的新功能包括:
- 联系人选择器
- 本地网络权限
- 大屏优化
- 接力 API
此外,还有一个虽未正式确认但备受关注的功能:“碰一碰”互传。
“碰一碰”互传 (Tap to Share)
这个功能尚未被官方确认,但已在 One UI 9 和 Pixel 固件的泄漏信息中出现。它让人联想到 iOS 17 的名片投送(NameDrop)以及早期 Android 的 Android Beam。
- 历史回顾:Android Beam 在 2011 年推出,通过 NFC 触发、蓝牙传输,但因 NFC 普及率低和蓝牙速度慢而未成功。
- 精神传承:新的“碰一碰”互传被看作是 Android Beam 理念的延续,但它很可能会借助成熟的 Quick Share(前身为 Nearby Share)技术,利用 Wi-Fi 实现高速文件传输,而 NFC 仅用于快速配对。
联系人选择器
借鉴 iOS 的隐私设计,Android 17 引入了标准化的联系人选择器界面,让用户可以更精细地控制分享给应用的联系人信息。
- 更精细的授权:与 iOS 只能选择整个联系人条目不同,Android 17 允许应用声明所需信息的具体字段(如仅电话号码或邮箱),用户授权后,应用只能获取这些特定字段。
- 非强制性是关键:这并非对传统
READ_CONTACTS权限的直接替代。应用开发者可以选择采用这个新的隐私友好流程,但也可以继续申请宽泛的联系人访问权限。这使其推广效果成为一个未知数。
谷歌可能会像推动“照片选择器”那样,通过后续的政策和权限拆分来鼓励开发者适配,以解决联系人信息泄露这一隐私痛点。
本地网络权限
Android 17 将本地网络访问权限正式纳入 NEARBY_DEVICES 权限组,以限制应用通过局域网进行用户追踪。
- 默认屏蔽:所有面向 Android 17 开发的应用,其本地网络访问行为(如 TCP 连接、UDP 广播)将默认被系统屏蔽。
- 明确用途:开发者若有投屏、智能家居控制等正当需求,需要明确向用户申请此权限。
大多数应用申请本地网络权限的真实目的是进行用户画像和广告追踪。对于普通用户而言,绝大多数应用的该权限都可以拒绝。根据 Google Play 的要求,2027 年 8 月 31 日之后,商店中的所有应用都必须遵守这一规则。
大屏优化
为了改善折叠屏和平板电脑上的应用体验,Android 17 对大屏显示做出了强制性要求。
- 强制全屏显示:在宽度大于 600dp 的屏幕上,应用将自动填满整个显示窗口,开发者设置的屏幕方向或宽高比限制将不再生效。
- 整改通知:这 фактически 给那些仅为小屏设计、通过简单拉伸来“适配”大屏的应用下了整改通知。
同样,在 2027 年 8 月 31 日之后,Google Play 商店中所有应用都必须进行真正的大屏适配,否则可能出现界面变形、功能错乱等问题。
接力 API (Handoff)
为了打破不同 Android 设备间的壁垒,Android 17 推出了系统级的接力 API,让任务可以在不同设备间无缝流转。
- 工作原理:开发者可以标记应用中的特定活动(Activity),当用户切换设备时,另一台设备上会显示接续操作的提示。
- 智能恢复:该功能可以传递任务状态(如视频播放进度、文档滚动位置),如果接收设备未安装相应应用,系统会自动在浏览器中打开预设的网页链接,实现“无缝降级”。
- 潜在变数:这套机制很可能基于 Google 服务和账号体系。对于无法完整使用 Google 服务的国产机型,该功能的实际体验可能会打折扣。
其他值得关注的改动
- 实时通知语义着色:开发者可以在实时通知中使用预设的颜色(绿、橙、红、蓝)来表达不同状态。
- 独立的助理音量:智能助理的声音有了专门的音频通道,其音量可以独立于媒体、通话等音量进行调节。
- 基于总 RAM 的内存限制:系统将根据设备总内存对应用施加内存限制,有望提升极端情况下的系统稳定性。
- 后台音频播放限制:系统将阻止应用通过“播放无声音乐”等技巧在后台保活,减少音乐播放被意外打断的情况。
- 底层 MessageQueue 无锁化:减少了 UI 自动化测试时的底层冲突,提升了开发效率。