你的 App 还在锁定横竖屏方向?
抱歉,Android 17 不让了。
2 月 13 日,Google 发布了 Android 17 的首个 Beta 版本(SDK 37)。这次更新不只是例行升级------从大屏适配到底层性能、从相机 API 到视频编码、从安全策略到 Activity 生命周期,几乎每个方向都有实质性变化。
挑重点说,帮你快速建立全局认知。

告别 Developer Preview,拥抱 Canary 频道
先说一个流程上的大变化。
从 Android 17 开始,Google 取消了传统的 Developer Preview 阶段,改为常驻的 Android Canary 频道。功能和 API 通过内部测试后会直接推送到 Canary 通道,开发者可以通过 OTA 更新持续获取最新版本。
这意味着什么?
- 不用再等半年一次的 DP 版本,新特性随到随测
- 更容易集成到 CI/CD 流程
- 反馈周期大幅缩短
对于日常跟进 Android 新特性的开发者来说,这是个效率提升。
大屏适配:从「建议」变成「强制」
这可能是影响面最广的变化。
targetSdk 37 的应用,在 600dp 以上的大屏设备上,必须支持自适应布局。
系统会直接忽略你在 Manifest 中设置的:
- 固定屏幕方向(
screenOrientation) - 不可调整大小(
resizeableActivity=false) - 固定宽高比
换句话说,你的应用必须能在分屏、窗口化、折叠屏展开等场景下正常运行。
两个例外:
- 游戏应用不受限制
- 最小宽度低于 600dp 的设备不受影响
用户仍然可以在系统设置中手动覆盖这些行为。但作为开发者,你不能再假设自己的 App 只会在固定方向和尺寸下运行了。
行动建议: 如果你的 App 还没适配大屏,现在是时候排期了。等正式版发布再改就来不及了。
性能底层:三项改动直达 Runtime
这次的性能优化不是修修补补,是底层重构级别的。
Lock-free MessageQueue
消息队列换成了无锁实现,减少线程竞争导致的丢帧问题。但如果你的代码通过反射访问 MessageQueue 的私有字段------会出问题。
分代垃圾回收
GC 策略改为分代模式:对年轻代对象做更频繁的轻量回收,减少全堆扫描的频率。对于内存抖动严重的场景,理论上会有明显改善。
static final 字段不可反射修改
Runtime 现在禁止通过反射或 JNI 修改 static final 字段,这让编译器可以做更激进的优化。但如果你的项目里有通过反射改常量的黑科技------是时候重构了。
这三项改动的共同特点:正常写代码的不受影响,走偏门的要注意了。
相机 API:终于不用每次切模式都重启会话了
做过相机开发的都懂,切换拍照/录像/慢动作模式时,经常需要关闭当前 CameraSession 再重新创建。这个过程带来的黑屏和卡顿体验很差。
Android 17 新增了 updateOutputConfigurations() 方法,支持动态更新相机会话的输出配置,不需要完全重建会话。模式切换更丝滑。
另外一个实用更新:现在可以直接获取逻辑多摄中所有活跃物理摄像头的元数据,不需要为次要摄像头额外分配数据流。对于做多摄融合、景深计算的应用来说,减少了不少资源开销。
H.266/VVC 来了:下一代视频编码标准
Android 17 正式支持 VVC(Versatile Video Coding)/ H.266 编码格式,新增了专用的 MIME 类型和编解码 Profile。
相比 H.265,VVC 可以在相同画质下减少约 50% 的文件体积,或者在相同体积下获得更好的画质。
同时还新增了恒定质量模式 (Constant Quality),通过 setVideoEncodingQuality() 方法可以更精细地控制视频质量,而不仅仅依赖码率设置。
对于短视频、直播、视频编辑类 App 来说,这是值得提前关注的能力。
安全策略收紧:明文 HTTP 快要彻底不能用了
Android 17 对 android:usesCleartextTraffic 做了更严格的限制------现在必须通过 Network Security Configuration 来显式配置,且默认禁止未加密的流量。
说人话:如果你的 App 里还有走 HTTP 的请求,该升 HTTPS 了。
此外还有一个新的加密能力:HPKE(Hybrid Public Key Encryption),结合了公钥加密和对称加密的优势,适合需要端对端加密的场景。
后台音频也加了限制:播放、焦点请求、音量调整都需要明确的用户意图,防止应用在后台偷偷播放音频。
Activity 不再默认重建了
这个改动乍一看很小,影响却很大。
以往键盘弹出/收起、导航模式切换、UI Mode 变化、触摸屏变化、颜色模式切换等配置变更,都会导致 Activity 重建。
Android 17 起,这些配置变更默认不再触发 Activity 重建。
如果你的 App 确实需要在这些配置变化时重建 Activity,需要在 Manifest 中显式声明:
xml
android:recreateOnConfigChanges="keyboard|navigation|uiMode"
这是一个行为反转 ------以前是默认重建、可以声明不重建,现在反过来了。如果你的 App 依赖 onCreate 来响应这些配置变化,需要适配。
其他值得关注的更新
- VoIP 通话可以集成到系统通话记录,支持头像和隐私控制
- Wi-Fi Ranging 支持持续测距和安全的点对点发现
- CompanionDeviceManager 新增医疗设备和健身追踪器 Profile,一次弹窗搞定所有权限
- ProfilingManager 支持冷启动、OOM、CPU 过高等场景的自动触发
- 自定义 Notification 的内存用量做了限制,堵上了 URI 加载的绕过手段
时间线
| 里程碑 | 时间 |
|---|---|
| Beta 1(当前) | 2026 年 2 月 |
| Platform Stability | 2026 年 3 月 |
| 正式版(Pixel) | 2026 年 Q2 |
| 小版本 SDK 更新 | 2026 年 Q4 |
3 月就要锁定 API,留给开发者的适配窗口并不长。
写在最后
Android 17 给我的感觉是:Google 在「逼」开发者走正道。
大屏适配不再是可选项,反射黑科技被封堵,明文流量要淘汰,Activity 生命周期的默认行为也改了。每一项都在推动开发者写更规范、更现代的代码。
阵痛是有的,但长远看是好事。
你的 App 准备好迎接 Android 17 了吗?最担心哪个变化?评论区说说。
#Android17 #Android开发 #移动开发 #程序员 #Google #技术更新