Android 版本适配全套指南
Android 版本适配全套指南
- 项目地址:Github
- 当我在做 Android 版本适配工作的时候很痛苦,那个时候我在想有没有一个文档,将所有的关于 Android 版本适配资料全部收集起来,这样就不需要在网上东找西找了,这样就能把时间和精力投入适配工作中,每当一个新的 Android 版本发布的时候,这个想法越加强烈,终于在 Android 11 刚发布的时候筹划了这件事情,最终赶在 Android 12 刚发布的时候完成了,整个过程耗时非常漫长,因为我正在不断收集优质的资料,同时我也在不断思考,什么样的适配文档才是大家所需要的,我将适配文档简单划分成了以下几部分:
* 新特性
* 行为变更
* 相关资源
* 适配文章链接
* 适配框架链接
- 为什么要把这个做成开源项目?因为我会不断更新,同时欢迎大家如果有好的文章也可以通过 issue 推荐给我,我审核通过之后会放上去,做好一个开源项目需要大家的添砖加瓦,开源是一个互帮互助的过程,没有大家的支持我很难做好它。
适配流程
- 这里以适配
Android 17为例子,第一步将主模块中的build.gradle文件中修改targetSdkVersion和compileSdkVersion这两个的值
android {
compileSdkVersion 37 defaultConfig { ...... targetSdkVersion 37 } }
- 接下来在代码中做一些版本的判断,并且做好新版本的适配和旧版本的兼容
if (Build.VERSION.SDKINT >= Build.VERSIONCODES.CINNAMON_BUN) {
......
} else {
......
}
if (context.getApplicationInfo().targetSdkVersion >= Build.VERSIONCODES.CINNAMONBUN) {
......
} else {
......
}
- 到这里,大家可能有一个疑问,targetSdkVersion 和 compileSdkVersion 有啥区别?
* compileSdkVersion:编译源码版本,我们可以通过修改这个版本等级来改变我们在代码中所看到的 Android SDK 源码的版本,同时也决定了编译器在进行代码检查时所用的版本。
- 最后附上一张 Android 版本信息对应表
CINNAMON_BUN | - | 2026 年 6 月 16 日 |
| Android 16 | 36 | BAKLAVA | 22.3% | 2025 年 6 月 10 日 |
| Android 15 | 35 | VANILLAICECREAM| 18.7% | 2024 年 10 月 15 日 |
| Android 14 | 34 | UPSIDEDOWNCAKE | 13.5% | 2023 年 10 月 10 日 |
| Android 13 | 33 | TIRAMISU | 14.4% | 2022 年 8 月 16 日 |
| Android 12L | 32 | S_V2 | - | 2022 年 3 月 9 日 |
| Android 12 | 31 | S | 9.9% | 2021 年 10 月 4 日 |
| Android 11 | 30 | R | 8.1% | 2020 年 9 月 9 日 |
| Android 10 | 29 | Q | 4.2% | 2019 年 9 月 3 日 |
| Android 9.0 | 28 | P | 2.4% | 2018 年 8 月 7 日 |
| Android 8.1 | 27 | O_MR1 | 1.3% | 2017 年 12 月 5 日 |
| Android 8.0 | 26 | O | 1.3% | 2017 年 8 月 22 日 |
| Android 7.1 | 25 | N_MR1 | 0.3% | 2016 年 12 月 5 日 |
| Android 7.0 | 24 | N | 0.2% | 2016 年 8 月 22 日 |
| Android 6.0 | 23 | M | 1.4% | 2015 年 9 月 29 日 |
| Android 5.1 | 22 | LOLLIPOP_MR1 | 0.2% | 2015 年 3 月 10 日 |
| Android 5.0 | 21 | LOLLIPOP | 1.6% | 2014 年 10 月 15 日 |
| Android 4.4 | 19 | KITKAT | < 0.01% | 2013 年 10 月 31 日 |
- 市场占用率数据更新至 2026 年 6 月 23 日,数据统计主要参考以下链接:
Google Play 应用商店政策
文档目录
Android 17.0
新特性
* 新的 ProfilingManager 触发器 * 加密客户端 Hello (ECH) 平台支持 * Android 高级保护模式 (AAPM) * 受限卫星网络 * 专用 Google 助理音量音频流* Handoff
* 适用于 Android 17 的 UWB 下行链路 TDoA API
行为更变
* 核心功能* 应用内存限制
* 隐私权
* 动态短信密码保护
* 安全
* 人工输入
* 媒体
* 后台音频安全加固
* 连接
* 核心功能* 无障碍
* 隐私权
* 以 Android 17 为目标平台的应用需要本地网络权限
* 安全
* 活动安全性
* 默认启用 CT
* 媒体
* 后台音频安全加固
* 设备规格
* 平台 API 变更,用于忽略大屏设备 (sw>=600dp) 上的屏幕方向、尺寸调整能力和宽高比限制
* 连接
* 针对 RFCOMM 的一致 BluetoothSocket read() 行为
相关资源
- 适配简介
* Android 17 新适配要求,各大权限进一步收紧,适配难度提升
* Android 17 正式版发布,全新 AI 和各种破坏性更新
* Android 17 最后一个 Beta 发布,7 件事必须现在做
* Android 17 重磅发布:详解四大颠覆性变革与保姆级适配指南
* Android 17 Beta4发布:四大行为变更,不改上线就崩
* Android 17 开发者指南:新 API、重大变更以及现在应该迁移的内容
* Android 17 正在改写规则——以下是每位开发者都需要了解的内容
* Android 17:API 级别 37 的开发者指南——现在你需要构建什么
* Android 17 正式发布!target 37 一大批旧代码直接不能用了
- 厂商适配指南
* VIVO 开放平台 - Android 17 开发者适配文档
* 荣耀开放平台 - Android 17 应用兼容性适配指导
- 内存管控
* 解读 Android 17 全新内存限制,有没有“豁免”后门?
* Android 17 新规:内存超限直接杀App,没有崩溃日志怎么排查?
* Google I/O 2026:Android 17 MemoryLimiter 来了,你的 Bitmap 优化做好了吗?
- MessageQueue
* 天下苦阻塞久矣之 DeliQueue:Android 17 无锁 MessageQueue 的架构重构
* Android 17 为什么会重写 MessageQueue
- 其他适配
* 紧急预警!Android 17 定位权限大改,你的 App 要适配了
* 慌了!Android 17 取消图标文字,你的 App 可能要找不到了
* Android 17 要下狠手了:无障碍服务 API 将被严格限制
* 在 Android 17 上修改 static final 字段的方法
* 重启不用输 PIN!Android 17 终于把 SIM 卡安全做明白了
* 直破 Android 17 大屏困局:Navigation 3 架构深度解析
* Android 17 新特性:MessageQueue 无锁实现
* Android 17 新特性:ProfilingManager 新触发器
* Android 17 后台服务彻底变了!Foreground Service 还能这么用吗?
Android 16.0
新特性
* 2025 年发布了两个 Android API * 以进度为中心的通知* 预测性返回更新
* 更丰富的触感反馈
* 动态壁纸的内容处理 * 系统触发的性能分析* 更好的作业内省
* 自动调节刷新率
* 改进了无障碍功能 API * 混合自动曝光 * 使用 AGSL 实现自定义图形效果 * 测距功能(增强型安全)* 通用测距 API
* 改进了照片选择器* 高级专业视频
* 健康数据共享更新 * 密钥共享 API * 电视的标准化画质和音质框架 * 竖排文字* 自定义度量衡制
行为更变
* 核心功能* ART 内部变更
* 设备规格
* 安全
* 连接
* 用户体验和系统界面* 核心功能
* 设备规格
* 自适应布局
* 健康与健身
* 健康与健身权限
* 连接
* 安全
* 隐私设置
* 本地网络权限
* 应用拥有的照片
相关资源
- 适配简介
* Android 16 Baklava 来了,来看看开发者预览版给我们带来了什么
* Android 16 (Target 36) 应用适配指南
- 厂商适配指南
* VIVO 开放平台 - Android 16 开发者适配文档
* 荣耀开放平台 - Android 16 应用兼容性适配指导
- 其他适配
* Android 16 卫星连接 API 来了,带你写出「永不失联」的应用
* Android 16 的 Appfunctions API ,应用级 MCP 支持为 AI 场景打通最后一层壁垒
* Android PC 要来了?Android 16 Beta3 出现 Enable desktop experience features 选项
* Android 16 升级,预测性返回适配起来到底难不难
Android 15.0
新特性
* 弱光增强* 应用内相机控件
* HDR 余量控制
* 响度控制
* OpenJDK 17 更新* PDF 改进
* 改进了 OpenType Variable Font API
* 精细的换行控制
* 应用归档
* 改进 Android 的 GPU 访问* 改进了画布
* ApplicationStartInfo API * 屏幕录制检测* 私密空间
* 健康数据共享
* 应用屏幕共享
* 使用 Generated Previews API 实现更丰富的 widget 预览* 画中画
* 改进了大屏幕多任务处理* 封面屏幕支持
* 卫星支持* 钱包角色
* 将 Credential Manager 与自动填充功能集成 * 中日韩可变字体* 字符间两端对齐
* 自动换行配置
* 增强型员工和设备保护行为更变
* 核心功能* 安全和隐私设置
* 动态密码隐去
* 屏幕共享保护
* 摄像头和媒体
* 当达到资源限制时,直接和分流音频播放会使之前打开的直接或分流音轨失效
* 更新废弃 API
* 核心功能* 前台服务的变更
* 安全
* 窗口边衬区更改
* elegantTextHeight 属性的默认值为 true
* 摄像头和媒体
相关资源
- 适配简介
- 厂商适配指南
* VIVO 开放平台 - Android 15 开发者适配文档
* 荣耀开放平台 - Android 15 应用兼容性适配指导
- EdgeToEdge 适配
* Android 15 新特性,强制 edge-to-edge 全面屏体验
* 写给初学者的 Jetpack Compose 教程,edge-to-edge 全面屏体验
* Android15 适配之 edge-to-edge 和 16kb 到底咋适配
- so 库 16k Page Size 适配
* Android 15 适配之16K Page Size :为什么它会是最坑的一个适配点
* Android 15 之如何快速适配 16K Page Size
* Android 15 上适配 16K Page Size 的填坑思路,以 IJKPlayer 为例子
* 如何查看项目是否支持最新 Android 16K Page Size 一文汇总
* Google 开始正式强制 Android 适配 16K Page Size,你准备好了吗?
* Android 15 大变更:支持 16K 内存分页,所有 native app 必须重编译
* Android15 适配之 edge-to-edge 和 16kb 到底咋适配
- compileSdk 35 编译环境适配
* Android 15 适配之世上本无坑,targetSdkVersion 升到35后全是坑
* 升级 compileSdk Android 35 导致编译错误
- 其他适配
* Android 15 将禁止 NotificationListenerService 读取 OTP
* 浅谈 Android 15 新 API:确保 TextView 完整展示、不被切断
* Android 15 新 API:内存追踪利器 ProfilingManager
* 启动信息全掌握,Android 15 重磅 API:ApplicationStartInfo
* Android 15 应用适配指南:Android 15 废弃 API
Android 14.0
新特性
* 各应用语言偏好设定* 语法变化 API
* 地区偏好设置
* 非线性字体放大至 200% * Sharesheet 自定义操作和经过改进的排名系统 * 路径现在可查询和插值 * OpenJDK 17 更新行为更变
* 核心功能* 安全
* 用户体验
* 无障碍
* 核心功能* 安全
* 压缩路径遍历
官方进度
相关资源
- 适配简介
* Android 14 正式发布,已经在 AOSP 中上线,快来看看有什么吧
* Android14 适配之——targetSdkVersion 升级到 34 需要注意些什么?
* Android 14 正式发布,已经在 AOSP 中上线,快来看看有什么吧
* Android14 适配之——现有 App 安装到 Android14 手机上需要注意些什么?
* Android 14(U) Gradle 8.x JDK 17 适配攻略
* Android 14 正式版适配笔记(一)— 针对所有应用的变更
* Android 14 正式版适配笔记(二)— 针对Android14或更高版本应用的变更
* Android 14 正式版适配笔记(一)— 针对所有应用的变更
* Android 14 正式版适配笔记(二)— 针对Android14或更高版本应用的变更
- 厂商适配指南
* VIVO 开放平台 - Android 14 开发者适配文档
* 荣耀开放平台 - Android 14 应用兼容性适配指导
- 权限适配
* Android 14 : 精确时钟进一步被限制(SCHEDULEEXACT_ALARM)
* Android 14 Behavior Changes:精確鬧鐘行為變更
- 截屏适配
* Android 14 新 API:直接监听截屏操作,不用再观察媒体文件了~
- 卡顿问题处理
* 你的debug包在Android 14变卡了吗 ?| 得物技术
* 【Android原生问题分析】夸克、抖音划动无响应问题【Android14】
* Android14 使用新特性 record 关键字,请慎行!
* 【问题分析】InputDispatcher无焦点窗口ANR问题【Android 14】
- 其他适配
* Android 14 新功能:区域偏好 Regional Preferences
* Android 14 新特性:语法性别 Grammatical Gender
* Android 14 之返回界面升级:预览目标界面 + 全新返回箭头
* Android 14 新功能之 TextView 搜索结果高亮和焦点移动
* Android 14 新功能之 HighLights:快速实现文本高亮~
* Android 14 之 动态注册 Broadcast 必须声明 exported 属性
* 我以为发现了Android 14系统中的一个bug,然而...
Android 13.0
新特性
* 带主题的应用图标* 彩色矢量字体
* Quick Settings Placement API
* 剪贴板预览
* 预测性返回手势
* 蓝牙 LE 音频
* MIDI 2.0
* 更安全地导出上下文注册的接收器* 照片选择器
* 开发者可降级权限
* 可编程的着色器 * 预期音频路由 * 语音描述 * OpenJDK 11 更新行为更变
* 性能和电池* 电池资源利用率
* 高优先级 Firebase Cloud Message (FCM) 配额
* 隐私权
* 通知的运行时权限
* 安全性
* 用户体验
* 核心功能
* 隐私权* 细化的媒体权限
* 性能和电池
* 电池资源利用率
* 用户体验
官方进度
相关资源
- 适配简介
* 个推解读 Android13,发布《Android13适配指南》
- 厂商适配指南
* VIVO 开放平台 - Android 13 应用适配指南
* 荣耀开放平台 - Android 13 应用兼容性适配指导
- 媒体适配
* 浅尝 Android 13 Photo Picker 无惧权限烦恼
- 其他适配
* Android 13 返回导航大变更:返回键彻底废弃 + 可预见型返回手势