外观
Android 适配为什么要同时看系统版本和 targetSdk?
标准回答
系统版本决定设备有哪些能力;targetSdk 声明应用适配到的行为模型;minSdk 是最低运行版本,compileSdk 决定编译时可见的 API。
关键机制
- 新 API 调用要判断运行系统是否支持;提高 compileSdk 并不会让低版本设备突然拥有对应方法。
- 系统升级与提升 targetSdk 都可能改变权限、后台限制、存储、通知、组件导出等行为,要分别测试。
- 例如目标 Android 14 及以上的前台服务要声明匹配类型和对应权限;其他前台启动与使用中权限限制也要满足。
通俗例子
编译能通过的 Stream.toList 在低版本设备上不一定可直接用,要看 API 可用性及脱糖支持;不要把“能编译”当作“全机型可运行”。
易混淆点
不要只测最新系统。至少覆盖最低版本、重要行为变化版本与主流 OEM;以实际支持范围建立矩阵。
参考资料
内容来源
- Android 技术札记 · 原条目
permissions