Android 版本适配

Android 版本适配全套指南

  • 项目地址:Github

  • 当我在做 Android 版本适配工作的时候很痛苦,那个时候我在想有没有一个文档,将所有的关于 Android 版本适配资料全部收集起来,这样就不需要在网上东找西找了,这样就能把时间和精力投入适配工作中,每当一个新的 Android 版本发布的时候,这个想法越加强烈,终于在 Android 11 刚发布的时候筹划了这件事情,最终赶在 Android 12 刚发布的时候完成了,整个过程耗时非常漫长,因为我正在不断收集优质的资料,同时我也在不断思考,什么样的适配文档才是大家所需要的,我将适配文档简单划分成了以下几部分:

    • 官方文档

      • 新特性

      • 行为变更

    • 相关资源

      • 适配文章链接

      • 适配框架链接

  • 为什么要把这个做成开源项目?因为我会不断更新,同时欢迎大家如果有好的文章也可以通过 issue 推荐给我,我审核通过之后会放上去,做好一个开源项目需要大家的添砖加瓦,开源是一个互帮互助的过程,没有大家的支持我很难做好它。

适配流程

  • 这里以适配 Android 14 为例子,第一步将主模块中的 build.gradle 文件中修改 targetSdkVersion 和 compileSdkVersion 这两个的值
android {

    compileSdkVersion 34
    defaultConfig {
        ......
        targetSdkVersion 34
    }
}
  • 接下来在代码中做一些版本的判断,并且做好新版本的适配和旧版本的兼容
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
    ......
   } else {
    ......
 }

if (context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
    ......
  } else {
    ......
}
  • 到这里,大家可能有一个疑问,targetSdkVersion 和 compileSdkVersion 有啥区别?

    • targetSdkVersion:目标适配版本,告知系统 App 适配的情况,如果应用的 targetSdkVersion 比系统版本要低,那么在一些新特性上新系统会做向下兼容性处理,如果我们想要适配某个 Android 版本,必须要将 targetSdkVersion 调整到这个版本等级之上,否则在某些机型上面可能会出现一些适配异常的情况。如果我们只是简单调高了 targetSdkVersion 等级而没有适配新版本的特性,那么应用在新系统上可能会出现功能异常的情况,一般情况表现为应用崩溃或者获取不到数据。

    • compileSdkVersion:编译源码版本,我们可以通过修改这个版本等级来改变我们在代码中所看到的 Android SDK 源码的版本,同时也决定了编译器在进行代码检查时所用的版本。

  • 最后附上一张 Android 版本信息对应表

Android 版本 API 等级 版本代号 市场占有率 发布时间
Android 14 34 UPSIDE_DOWN_CAKE 暂无数据 2023 年 10 月 10 日
Android 13 33 TIRAMISU 30.33% 2022 年 8 月 16 日
Android 12L 32 S_V2 暂无数据 2022 年 3 月 9 日
Android 12 31 S 20.58% 2021 年 10 月 4 日
Android 11 30 R 19.98% 2020 年 9 月 9 日
Android 10 29 Q 9.27% 2019 年 9 月 3 日
Android 9.0 28 P 8.61% 2018 年 8 月 7 日
Android 8.1 27 O_MR1 2.78% 2017 年 12 月 5 日
Android 8.0 26 O 3.21% 2017 年 8 月 22 日
Android 7.1 25 N_MR1 0.61% 2016 年 12 月 5 日
Android 7.0 24 N 1.88% 2016 年 8 月 22 日
Android 6.0 23 M 1.64% 2015 年 9 月 29 日
Android 5.1 22 LOLLIPOP_MR1 0.98% 2015 年 3 月 10 日
Android 5.0 21 LOLLIPOP 0.53% 2014 年 10 月 15 日
Android 4.4 19 KITKAT 0.3% 2013 年 10 月 31 日
  • 市场占用率数据更新至 2023 年 11 月 5 日,数据统计主要参考以下链接:

  • Android API Levels

  • 分发信息中心(谷歌官方)

  • Top Android OS versions(需要)

  • Mobile & Tablet Android Version Market Share Worldwide

  • Mobile Android operating system market share by version worldwide from January 2018 to January 2022

Google Play 应用商店政策

  • Google Play 应用在目标 API 级别方面需满足的要求(需要)

  • 每个新的 Android 版本都会引入一些变化,以便改进安全性和性能,并提升 Android 的整体用户体验。每款应用的清单文件中都有一个 targetSdkVersion 参数(也称为目标 API 级别),用以告知系统您的应用在不同的 Android 版本上分别该如何运行。

  • 将应用的目标 API 级别配置为新近的 API 级别可确保用户享受到安全性、隐私保护和性能方面的改进,同时仍然允许应用在较低版本的 Android(低至 minSdkVersion)上运行。

  • 为了向 Android 和 Google Play 用户提供安全可靠的使用体验,Google Play 要求所有应用在目标 API 级别方面都必须符合下列要求。

名词定义
新应用 尚未在 Play 商店中发布的应用(例如,全新的应用)
应用更新 已在 Play 商店中发布的应用的新版本
现有应用 没有获得更新的已发布应用
何时必须将 Google Play 应用的目标 API 级别设为该级别?
Android 操作系统版本 新应用 应用更新 现有应用
Android 13(API 级别 33) 2023 年 8 月 1 日 2023 年 11 月 1 日 2024 年 11 月 1 日
Android 12(API 级别 31) 2022 年 8 月 1 日 2022 年 11 月 1 日 2023 年 11 月 1 日
Android 11(API 级别 30) 2021 年 8 月 1 日 2021 年 11 月 1 日 2022 年 11 月 1 日

提示:如需获得技术指导来了解如何更改应用的目标 API 级别以满足上述要求,请参阅迁移指南。

何时必须将 Wear OS 应用的目标 API 级别设为该级别?
Android 操作系统版本 新应用 应用更新 现有应用
Android 11(API 级别 30) 2022 年 8 月 1 日 2022 年 11 月 1 日 无要求
Android 10(API 级别 29) 无要求 无要求 无要求
Android 9(API 级别 28) 2019 年 8 月 1 日 2019 年 11 月 1 日 无要求
  • 为帮助开发者轻松完成过渡,相比新应用,我们多给了应用更新几个月时间来满足该要求。
应用可能受到的影响
  • 您的应用若不符合目标 API 级别要求,可能会受到以下方面的影响:
应用 影响
新应用 您将无法在 Play 管理中心发布不符合目标 API 级别要求的 app bundle。
应用更新 您将无法在 Play 管理中心提交不符合目标 API 级别要求的 app bundle 或 APK。
现有应用 如果新用户的设备搭载的 Android 操作系统版本高于您的应用的目标 API 级别,那么这类用户将无法在 Google Play 上获取您的应用。也就是说,这类新用户将无法从 Google Play 中发现或安装您的应用。之前从 Google Play 中安装过这款应用的用户仍可以发现、重新安装和使用它。这类现有用户即使换用新的 Android 设备,也仍然可以使用您的应用。
  • 为帮助开发者轻松完成过渡,相比新应用,我们多给了应用更新几个月时间来满足该要求。

文档目录

  • Android 14.0

  • Android 13.0

  • Android 12.0 / 12L

  • Android 11.0

  • Android 10.0

  • Android 9.0

  • Android 8.0 / 8.1

  • Android 7.0 / 7.1.1

  • Android 6.0

  • Android 5.0 / 5.1

  • Android 4.4

Android 14.0

新特性
  • 国际化

    • 各应用语言偏好设定

    • 语法变化 API

    • 地区偏好设置

  • 无障碍

    • 非线性字体放大至 200%
  • 用户体验

    • Sharesheet 自定义操作和经过改进的排名系统

    • 支持内置和自定义预测性返回动画

    • 针对应用商店的改进

    • 检测用户何时截取设备屏幕截图

  • 图形

    • 路径现在可查询和插值
  • 核心功能

    • OpenJDK 17 更新
行为更变
  • 针对所有应用的行为变更

    • 核心功能

      • 默认拒绝设定精确的闹钟

      • 当应用进入缓存时,上下文注册的广播将加入队列

      • 应用只能终止自己的后台进程

    • 安全

      • 最低可安装的目标 API 级别

      • 媒体所有者软件包名称可能会隐去

    • 用户体验

      • 授予对照片和视频的部分访问权限

      • 安全的全屏 intent 通知

      • 关于不可关闭通知用户体验方式的变更

      • 数据安全信息更显眼

    • 无障碍

      • 非线性字体放大至 200%
  • 针对 targetSdkVersion 34+ 应用的行为变更

    • 核心功能

      • 前台服务类型是必填项

      • OpenJDK 17 更新

    • 安全

      • 对隐式 intent 和待处理 intent 的限制

      • 在运行时注册的广播接收器必须指定导出行为

      • 更安全的动态代码加载

      • 压缩路径遍历

      • 针对从后台启动 activity 的其他限制

    • 更新后的非 SDK 限制

官方进度
  • Android 14 首个开发者预览版到来

  • 即刻体验 | Android 14 开发者预览版 2

  • Android 14 Beta 版发布,稳步提升与亮点并存

  • 丰富多彩 | Android 14 Beta 2 发布

  • 平台稳定性里程碑 | Android 14 Beta 3 发布

  • 发布更新的好时机 | Android 14 Beta 4 发布

  • 正式版即将到来 | Android 14 Beta 5 发布

  • 最新版发布 | Android 14 现已正式发布至 AOSP!

相关资源
  • 适配简介

    • Android 14 快速适配要点

    • 狂飙!Android 14 第一个预览版已发布~

    • Android 14 又来了?别扶!抬起我来吧!

    • 深度解读 Android 14 重要的 8 个新特性~

    • Android14 适配之——targetSdkVersion 升级到 34 需要注意些什么?

    • Android 14 正式发布,已经在 AOSP 中上线,快来看看有什么吧

    • Android 14 的 8 个重要新特性深度解析

    • Android14 适配之——现有 App 安装到 Android14 手机上需要注意些什么?

    • 卷起来,开始适配 Android 14

    • Android 14(U) Gradle 8.x JDK 17 适配攻略

  • 厂商适配指南

    • OPPO 开放平台 - Android 14 应用兼容性适配指导

    • VIVO 开放平台 - Android 14 开发者适配文档

    • 小米开放平台 - Android 14 应用适配指南

  • 其他适配

    • Android 14 权限适配方案

    • Android 14 新增权限

    • Android 14 新 API:直接监听截屏操作,不用再观察媒体文件了~

    • Android 14 新功能:区域偏好 Regional Preferences

    • Android 14 新特性:语法性别 Grammatical Gender

    • Android 14 之返回界面升级:预览目标界面 + 全新返回箭头

    • Android 14 新功能之 TextView 搜索结果高亮和焦点移动

    • Android 14 新功能之 HighLights:快速实现文本高亮~

    • 劝学:Android 14 Framework 引入了哪些“新”技术栈

Android 13.0

新特性
  • 开发者工作效率和工具

    • 带主题的应用图标

    • 各应用语言偏好设定

    • 改进了文本和语言支持

    • 彩色矢量字体

    • Quick Settings Placement API

    • 剪贴板预览

    • 预测性返回手势

    • 蓝牙 LE 音频

    • MIDI 2.0

    • 提高了启动画面效率

  • 隐私权和安全

    • 更安全地导出上下文注册的接收器

    • 照片选择器

    • 针对附近 Wi-Fi 设备的新运行时权限

    • 使用精确闹钟的新权限

    • 开发者可降级权限

    • APK 签名方案 v3.1

    • 改进了密钥库和 KeyMint 中的错误报告功能

  • 平板电脑和大屏设备支持

  • 图形

    • 可编程的着色器

    • 改进了 Choreographer

  • 媒体

    • 预期音频路由
  • 无障碍功能

    • 语音描述
  • 核心功能

    • OpenJDK 11 更新
行为更变
  • 针对所有应用的行为变更

    • 性能和电池

      • 前台服务 (FGS) 任务管理器

      • 使用 JobScheduler 改进预提取作业处理

      • 电池资源利用率

      • 高优先级 Firebase Cloud Message (FCM) 配额

    • 隐私权

      • 通知的运行时权限

      • 从剪贴板中隐藏敏感内容

    • 安全性

      • intent 过滤器会屏蔽不匹配的 intent

      • 停止使用共享用户 ID

    • 用户体验

      • 可以关闭前台服务通知
    • 核心功能

      • 移除了旧版语音服务实现副本
  • 针对 targetSdkVersion 33+ 应用的行为变更

    • 隐私权

      • 通知权限会影响前台服务的显示

      • 针对附近 Wi-Fi 设备的新运行时权限

      • 细化的媒体权限

      • 在后台使用身体传感器需要新的权限

    • 性能和电池

      • 电池资源利用率
    • 用户体验

      • 派生自 PlaybackState 的媒体控件

      • 应用颜色主题会自动应用于 WebView 内容

    • Google Play 服务

      • 广告 ID 需要权限
    • 更新后的非 SDK 限制

官方进度
  • Android 13 首个开发者预览版到来

  • Android 13 Beta 版发布,诸多亮点不容错过

  • 欢迎体验 | Android 13 开发者预览版 2

  • 平台稳定性里程碑 | Android 13 Beta 3 发布

  • 正式版即将到来 | Android 13 Beta 4 现已发布

  • 最新版发布 | Android 13 现已正式发布至 AOSP!

相关资源
  • 适配简介

    • Android 12 还没用上,Android 13 已经来了!

    • Android 13 适配指南

    • 安卓13来了,快!扶起我来!

    • Android 13 适配尝鲜

    • Android 13(T) 适配

    • Android 13 正式版发布

    • 移动开发前沿 | Android13,看这篇就够了!

    • 个推解读 Android13,发布《Android13适配指南》

  • 厂商适配指南

    • OPPO 开放平台 - Android 13 应用兼容性适配指导

    • VIVO 开放平台 - Android 13 应用适配指南

    • 小米开放平台 - Android 13 应用适配指南

  • 其他适配

    • Android 13 权限适配方案

    • Android 13 针对 Intent filters 安全的再加强

    • Android 13 返回导航大变更:返回键彻底废弃 + 可预见型返回手势

    • Android 13 新的换行策略和针对日文的优化

    • 前台服务管理器:如何手动在 Android 13 上「杀死」一个应用

    • Android 13 媒体权限适配指南

    • 微信 SDK - Android 13-可能存在的问题适配

Android 12.0 / 12L

新特性
  • Android 12.0 新特性

    • 用户体验

      • Material You

      • 微件改进

      • 富媒体内容插入

      • 应用启动画面 API

      • 圆角 API

      • 富触感反馈体验

      • AppSearch

      • 游戏模式

      • 画中画 (PiP) 改进

      • 允许按来电重要性排名的新通话通知

      • 通知的丰富图片支持

      • 沉浸模式下的手势导航改进

      • 近期网址共享(仅限 Pixel)

    • 安全和隐私设置

      • 隐私信息中心

      • 蓝牙权限

      • 权限组查找

      • 隐藏应用叠加窗口

      • 已知签名者权限保护标志

      • 设备属性认证

      • 安全锁定屏幕通知操作

      • BiometricPrompt 的可本地化字符串

      • 即时通讯应用中的钓鱼式攻击检测功能(仅限 Pixel)

    • 媒体

      • 兼容的媒体转码

      • 性能等级

      • 视频编码改进

      • 音频焦点

      • MediaDrm 更新

    • 相机

      • Camera2 供应商扩展

      • Quad Bayer 摄像头传感器支持

    • 图形和图片

      • 让应用能够直接访问 Tombstone 跟踪记录

      • AVIF 图片支持

      • 更简单的模糊处理、颜色滤镜及其他效果

      • 原生动画图片解码

    • 连接性

      • 使配套应用保持唤醒状态

      • 配套设备管理器配置文件

      • 带宽估测改进

      • Wi-Fi 感知 (NAN) 增强功能

      • 并发点对点 + 互联网连接

      • 为 NFC 付款启用屏幕关闭

    • 存储

    • 核心功能

      • 自动更新应用

      • 设备芯片组信息

      • 核心 Java API 的更新

    • 微件改进

    • 企业版的新变化

  • Android 12L 功能和变更

    • 针对大屏设备优化了操作系统

      • 面向开发者:媒体投影的变化
    • 强大直观的多任务处理功能

      • 面向开发者:在分屏模式下测试应用
    • 改善了兼容性体验

      • 面向开发者:在兼容模式下检查应用
    • 针对大屏设备的更多更新和资源

      • 大屏设备上 Google Play 的变化

      • 使用 Jetpack WindowManager 嵌入 activity

      • 设备屏幕方向请求

    • 让您的应用做好准备

      • 要测试的内容
行为变更
  • 针对所有应用的行为变更

    • 用户体验

      • 滚动效果

      • 前台服务通知用户体验延迟

      • 沉浸模式下的手势导航改进

      • 网络 intent 解析

      • 限制性应用待机模式存储分区

      • Display#getRealSize 和 getRealMetrics:废弃和沙盒

    • 图形和图片

      • 改进了刷新率切换
    • 安全和隐私设置

      • 麦克风和摄像头切换开关

      • 麦克风和摄像头指示标志

      • 应用无法关闭系统对话框

      • 不受信任的触摸事件被屏蔽

      • 权限软件包可见性

      • 移除了 Bouncy Castle 实现

      • 剪贴板访问通知

    • 连接性

      • Passpoint 更新
    • 更新后的非 SDK 接口限制

  • 针对 targetSdkVersion 31+ 应用的行为变更

    • 用户体验

      • 画中画行为改进

      • 自定义通知

      • Android App Links 验证的变更

    • 隐私设置

      • 大致位置

      • 应用休眠

      • 移动传感器有采样率限制

      • 数据访问审核

      • WebView 中的现代 SameSite Cookie

      • ADB 备份限制

    • 安全

      • 更安全的组件导出

      • 尽可能创建不可变的待处理 intent

      • 不安全的 intent 启动

    • 性能

      • 前台服务启动限制

      • 精确的闹钟权限

      • 通知 trampoline 限制

    • 备份和恢复

    • 连接性

      • 并发点对点 + 互联网连接

      • 为 NFC 付款启用屏幕关闭

    • 供应商库

      • 供应商提供的原生共享库
    • 更新后的非 SDK 限制

官方进度
  • 一起看 I/O | Android 12 Beta 版发布,诸多亮点不容错过

  • 更进一步 | Android 12 Beta 2 发布

  • 终版 API 正式到来 | Android 12 Beta 3 发布

  • 平台稳定性里程碑 | Android 12 Beta 4 现已发布

  • 正式版即将到来 | Android 12 Beta 5 现已发布

  • Android 12 正式发布 | 开发者们的全新舞台

  • 新版本系统适配: Android 12 中的兼容性变更

相关资源
  • 适配简介

    • Android 12 适配简介

    • Android 12 快速适配要点

    • 来了!Android 12 适配你准备好了吗?

    • 还没适配 Android 12 的要抓紧了

    • TargetsdkVersion 升级 31(Android12)适配

    • Android 12 保姆级适配指南

    • Android Target 31 升级全攻略 —— 记阿里首个超级 App 的坎坷升级之路

    • Android 12 适配-行为变更:所有应用

    • Android 12 适配-行为变更:以 Android 12 为目标平台的应用

    • 您有一份安卓 12 适配攻略,请注意查收!

  • 厂商适配指南

    • OPPO 开放平台 - Android 12 应用兼容性适配指导

    • VIVO 开放平台 - Android 12 应用适配指南

    • 小米开放平台 - Android 12 应用适配指南

  • SplashScreen 适配

    • 从 Jetpack SplashScreen 深度探讨 App 启动画面的前世今生~

    • Jetpack 新成员 SplashScreen:打造全新的App启动画面

    • Android 12 SplashScreen API 快速入门

    • Jetpack SplashScreen API 在所有 Android 系统上使用总结,内含原理分析

    • Android 12 启动画面-SplashScreen

    • Android 12 上全新的应用启动画面,还不适配一下?

    • 用 SplashScreen 做一个会动的开屏!

  • 桌面小组件适配

    • 更新您的 widget 以适配 Android 12

    • Android 12 上焕然一新的小组件:美观、便捷和实用

    • 别羡慕苹果的小部件了,安卓也有!

  • exported 属性适配

    • Android 12 新特性 android:exported 属性

    • Android 12 自动适配 exported 深入解析避坑

    • 写了一个适配 Android12-exported 的小插件

    • The application could not be installed: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

  • Android 12 L 适配

    • 详解 Android 12L|更好地适配大屏幕设备

    • 正式版 API 确定 | Android 12L Beta 1 发布

    • Android 与 Chrome OS 中针对大屏幕设备的更新

  • 其他适配

    • Android 12 蓝牙适配攻略

    • Android 12 蓝牙权限适配方案

    • Android 12 实用更新:置灰的控件也可以点击啦

    • Android 12 TransactionTooLargeException 问题

    • 高德地图 - Android 12 定位权限说明

    • 百度地图 - Android 12.0 开发须知

    • 支持Android 12,全版本保存图片到相册方案

Android 11.0

概览
隐私权变更 受影响的应用 缓解策略
强制执行分区存储机制 以 Android 11 或更高版本为目标平台的应用始终会受分区存储行为的影响 以 Android 11 或更高版本为目标平台的应用,以及以 Android 10 为目标平台且未将 requestLegacyExternalStorage 设为 true 以停用分区存储的应用 更新您的应用以使用分区存储 详细了解分区存储变更
单次授权 使用单次授权功能,用户可以授予对位置信息、麦克风和摄像头的临时访问权限 在 Android 11 或更高版本上运行且请求位置信息、麦克风或摄像头权限的应用 在尝试访问受某项权限保护的数据之前,检查您的应用是否具有该权限 遵循请求权限方面的最佳做法
自动重置权限 如果用户在 Android 11 或更高版本上几个月未与应用互动,系统会自动重置应用的敏感权限 以 Android 11 或更高版本为目标平台且在后台执行大部分工作的应用 要求用户阻止系统重置应用的权限 详细了解自动重置权限
后台位置信息访问权限 Android 11 更改了用户向应用授予后台位置信息权限的方式 以 Android 11 或更高版本为目标平台且需要在后台访问位置信息的应用 通过对权限请求方法的多次单独调用,逐步请求在前台(粗略或精确)和后台访问位置信息的权限。必要时,说明用户授予该权限所能得到的益处 详细了解 Android 11 中的在后台访问位置信息的权限
软件包可见性 Android 11 更改了应用查询同一设备上的其他已安装应用及与之互动的方式 以 Android 11 或更高版本为目标平台且与设备上的其他已安装应用交互的应用 将  元素添加到应用的清单 详细了解软件包可见性
前台服务 Android 11 更改了前台服务访问位置信息、摄像头和麦克风相关数据的方式 在 Android 11 或更高版本上运行且在前台服务中访问位置信息、摄像头或麦克风的应用 分别针对需要访问摄像头和麦克风的前台服务,声明 camera 和 microphone 前台服务类型。但请注意,应用在后台运行时启动的前台服务通常无法访问位置信息、摄像头或麦克风。 详细了解前台服务的变更
新特性
  • 向您的应用添加 5G 功能

  • 强制门户 API 支持

  • 安全共享大型数据集

  • 联系人与对话

  • 消息框

  • 控制外部设备

  • 将自动填充功能与键盘集成

行为更变
  • 针对所有应用的行为变更

    • 隐私权

      • 单次授权

      • 权限对话框的可见性

      • 数据访问审核

      • 系统提醒窗口权限

      • 永久 SIM 卡标识符

    • 接触史通知

    • 安全性

      • SSL 套接字默认情况下使用 Conscrypt SSL 引擎

      • Scudo Hardened Allocator

      • 应用使用情况统计信息

      • 针对 5G 的模拟器支持

    • 性能和调试

      • JobScheduler API 调用限制调试

      • 文件描述符排错程序 (fdsan)

    • 非 SDK 接口限制

    • V1 版 Google 地图共享库已移除

    • 与其他应用交互

      • 分享内容 URI
  • 针对 targetSdkVersion 30+ 应用的行为变更

    • 隐私权

      • 强制执行分区存储

      • 自动重置权限

      • 在后台访问位置信息的权限

      • 软件包可见性

    • 安全

      • 堆指针标记

      • 消息框的更新

    • 网络连接

      • 限制对 APN 数据库的读取访问
    • 无障碍服务

      • 在清单文件中声明与 TTS 引擎的交互

      • 在元数据文件中声明“无障碍”按钮使用情况

    • 相机

      • 媒体 intent 操作需要系统默认相机
    • 应用打包和安装

      • 压缩的资源文件

      • 现在需要 APK 签名方案 v2

    • Firebase

      • Firebase JobDispatcher 和 GCMNetworkManager
    • 设备到设备文件传输

    • OnSharedPreferenceChangeListener 的回调变更

    • 非 SDK 接口限制

相关资源
  • 适配简介

    • Android 11 开发者手册

    • 拖不得了,Android11真的要来了,最全适配实践指南奉上

    • Android 11 变更及适配攻略

    • 实战 Android 升级目标版本到 30 过程中遇到的问题及解决办法

  • 厂商适配指南

    • OPPO 开放平台 - Android 11 应用兼容性适配指导

    • VIVO 开放平台 - Android 11 应用适配指南

    • 小米开放平台 - Android 11上第三方App读写文件API标准建议

  • Android/data 目录适配

    • Android 11 无 Root 访问 data 目录实现、Android 11 访问 data 目录、Android 11 解除 data 目录限制、Android 11 data 空白解决

    • 知乎回答:如何评价在 Android11 中,/Android/data 文件夹无法读写?

    • Android 11 适配- 实现清理其他应用缓存目录

  • 其他适配

    • Android 11 外部存储权限适配指南及方案

    • Android 11 绕过反射限制

    • Android 11 软件包可见性适配

    • Android 11 特性调整:安装外部来源应用需要重启APP

    • Android 11 无法在后台显示自定义样式 Toast 的适配方案

    • 微信开放平台 - Android 11 系统策略更新

    • 文本转语音 TTS 开发 Android11 适配方案

Android 10.0

概览
隐私权变更 受影响的应用 缓解策略
分区存储 针对外部存储的过滤视图,可提供对特定于应用的文件和媒体集合的访问权限 访问和共享外部存储中的文件的应用 使用特定于应用的目录和媒体集合目录 了解详情
增强了用户对位置权限的控制力 仅限前台权限,可让用户更好地控制应用对设备位置信息的访问权限 在后台时请求访问用户位置信息的应用 确保在没有后台位置信息更新的情况下优雅降级 使用 Android 10 中引入的权限在后台获取位置信息 了解详情
系统执行后台 Activity 针对从后台启动 Activity 实施了限制 不需要用户互动就启动 Activity 的应用 使用通知触发的 Activity 了解详情
不可重置的硬件标识符 针对访问设备序列号和 IMEI 实施了限制 访问设备序列号或 IMEI 的应用 使用用户可以重置的标识符 了解详情
无线扫描权限 访问某些 WLAN、WLAN 感知和蓝牙扫描方法需要获得精确位置权限 使用 WLAN API 和蓝牙 API 的应用 针对相关使用场景请求 ACCESS_FINE_LOCATION 权限 了解详情
新特性
  • 折叠屏

  • 5G 网络

  • 通知栏消息回复

  • 深色主题

  • 手势导航

  • 设置面板

  • 共享快捷方式

行为更变
  • 针对所有应用的行为变更

    • 限制非 SDK 接口

    • 手势导航

    • NDK

      • 共享对象不得包含文本重定位
    • Bionic 库和动态链接器路径变更

    • 系统二进制文件/库会映射到只执行内存

    • 安全

      • TLS 1.3 默认处于启用状态

      • TLS 不信任使用 SHA-1 签名的证书

      • KeyChain 行为变更和改进

      • 其他 TLS 和加密更改

    • WLAN 直连广播

    • WLAN 感知功能

    • Go 设备上的 SYSTEM_ALERT_WINDOW

    • 关于以旧版 Android 系统为目标平台的应用的警告

    • 移除了 SHA-2 CBC 加密套件

    • 应用使用情况

    • HTTPS 连接变更

    • ZIP 文件实用程序库变更

      • Inflater

      • ZipFile

      • ZipOutputStream

    • 摄像头变更

    • 电池用量跟踪

    • Android Beam 已弃用

  • 针对 targetSdkVersion 29+ 应用的行为变更

    • 有关限制非 SDK 接口的更新

    • 共享内存

    • 移除了应用主目录的执行权限

    • Android 运行时只接受系统生成的 OAT 文件

    • 在 ART 中强制要求 AOT 正确性

    • 针对全屏 Intent 的权限变更

    • 支持可折叠设备

    • java.io.FileChannel.map() 更改

相关资源
  • 适配简介

    • Android 10 适配攻略
  • 厂商适配指南

    • OPPO 开放平台 - Android Q 版本应用兼容性适配指导

    • VIVO 开放平台 - Android Q 应用适配指南

  • 分区存储适配

    • 暂时停用分区存储

    • Android 存储用例和最佳做法

    • Android 10(Q)/11(R) 分区存储适配

    • Android 10 分区存储适配

    • Android 10 适配要点,作用域存储

    • Android MediaStore Api 使用

    • QQ SDK - 分区存储功能适配

    • 微信 SDK - 分区存储功能适配

    • 支持Android 12,全版本保存图片到相册方案

  • 深色主题适配

    • Android 深色模式适配原理分析

    • Android 10 适配要点,深色主题

    • Android 深色模式的项目应用

    • Android 10 暗黑模式适配,你需要知道的一切

  • 其他适配

    • Android 折叠屏适配攻略

    • Android 监听系统截屏操作,适配Android Q(29)

Android 9.0

新特性
  • 利用 Wi-Fi RTT 进行室内定位

  • 显示屏缺口支持

  • 通知

  • 多摄像头支持和摄像头更新

  • 适用于可绘制对象和位图的 ImageDecoder

  • 动画

  • HDR VP9 视频、HEIF 图像压缩和 Media API

  • JobScheduler 中的流量费用敏感度

  • Neural Networks API 1.1

  • 自动填充框架

  • 安全增强功能

  • Android 备份

  • 无障碍功能

  • 旋转

  • 文本

  • 设备端系统跟踪

行为更变
  • 针对所有应用的行为变更

    • 电源管理

    • 隐私权变更

    • 对使用非 SDK 接口的限制

    • 安全行为变更

      • 设备安全性变更
    • ICU 库更新

    • Android Test 变更

    • Java UTF 解码器

    • 使用证书的主机名验证

    • 网络地址查询可能会导致网络违规

    • 套接字标记

    • 报告的套接字中可用字节数

    • 应用不再能访问 xt_qtaguid 文件夹中的文件

    • 现在强制执行 FLAG_ACTIVITY_NEW_TASK 要求

    • 屏幕旋转变更

    • Apache HTTP 客户端弃用影响采用非标准 ClassLoader 的应用

    • 枚举相机

  • 针对 targetSdkVersion 28+ 应用的行为变更

    • 前台服务

    • 隐私权变更

    • 框架安全性变更

      • 默认启用网络传输层安全协议 (TLS)

      • 按进程分设基于网络的数据目录

    • 网络连接变更

      • 网络连接数据计数和多路径

      • Apache HTTP 客户端弃用

    • 界面变更

      • 视图焦点

      • CSS RGBA 十六进制值处理

      • 文件的 MIME 类型嗅探:URI

      • 文档滚动元素

      • 来自已暂停应用的通知

相关资源
  • 适配简介

    • Android 9.0 适配指南

    • Android 9.0适配及部分新特性介绍

  • 厂商适配指南

    • VIVO 开放平台 - Android P 应用适配指南

    • 小米开放平台 - MIUI Android P 适配指南

  • 刘海屏适配

    • Android 刘海屏适配全攻略

    • Android 9.0 系统新特性,对刘海屏设备进行适配

  • 反射 API 适配

    • 区分 SDK 接口和非 SDK 接口

    • 一种绕过 Android P 对非 SDK 接口限制的简单方法

    • 另一种绕过 Android P 以上非公开 API 限制的办法

    • 隐藏 API 反射框架 FreeReflection

  • WebView 多进程适配

    • Android 9.0/P WebView 多进程使用的问题

    • 有效解决 WebView 多进程崩溃

Android 8.0 / 8.1

新特性
  • Android 8.0 新特性

    • 用户体验

      • 通知

      • 自动填充框架

      • 画中画模式

      • 可下载字体

      • XML 中的字体

      • 自动调整 TextView 的大小

      • 自适应图标

      • 颜色管理

      • WebView API

      • 固定快捷方式和小部件

      • 最大屏幕纵横比

      • 多显示器支持

      • 统一的布局外边距和内边距

      • 指针捕获

      • 应用类别

      • Android TV 启动器

      • AnimatorSet

      • 输入和导航

    • 系统

      • 视图默认焦点

      • 新的 StrictMode 检测程序

      • 缓存数据

      • 内容提供程序分页

      • 内容刷新请求

      • JobScheduler 改进

      • 自定义数据存储

      • findViewById 签名变更

    • 媒体增强功能

      • VolumeShaper

      • 音频焦点增强功能

      • 媒体指标

      • MediaPlayer

      • 音频录制器

      • 音频播放控制

      • 增强的媒体文件访问功能

    • 连接

      • WLAN 感知

      • 蓝牙

      • 配套设备配对

    • 共享

      • 智能共享

      • 智能文本选择

    • 无障碍功能

      • 无障碍功能按钮

      • 独立的音量调整

      • 指纹手势

      • 字词级突出显示

      • 标准化单端范围值

      • 提示文本

      • 连续的手势分派

    • 安全性与隐私

      • 权限

      • 新的帐号访问和 Discovery API

      • Google Safe Browsing API

    • 测试

      • 仪器测试

      • 用于测试的模拟 Intent

    • 运行时和工具

      • 平台优化

      • 更新的 Java 支持

      • 更新的 ICU4J Android Framework API

      • Android 企业版

  • Android 8.1 新特性

    • Android Oreo(Go 版本)

    • Neural Networks API

    • 自动填充框架更新

    • 通知

    • EditText 更新

    • 程序化安全浏览操作

    • 视频缩略图提取器

    • Shared memory API

    • WallpaperColors API

    • 指纹更新

    • 加密更新

行为变更
  • 针对所有应用的行为变更

    • 后台执行限制

    • Android 后台位置限制

    • 应用快捷键

    • 语言区域和国际化

    • 提醒窗口

    • 输入和导航

    • 网页表单自动填充

    • 无障碍功能

    • 网络连接和 HTTP(S) 连接

    • 蓝牙

    • 无缝连接

    • 安全性

    • 隐私性

    • 记录未捕获的异常

    • 联系人提供程序使用情况统计方法的变更

    • 集合的处理

    • Android 企业版

  • 针对 targetSdkVersion 26+ 应用的行为变更

    • 提醒窗口

    • 内容变更通知

    • 视图焦点

    • 安全性

    • 帐号访问和可检测性

    • 隐私性

    • 权限

    • 媒体

    • 原生库

    • 集合的处理

    • 类加载行为

相关资源
  • 适配简介

    • Android 8.0 适配指北
  • 厂商适配指南

    • VIVO 开放平台 - Android 8.0 适配指南
  • 通知渠道适配

    • Android 通知栏微技巧,8.0 系统中通知栏的适配

    • 创建和管理通知渠道

    • Android 应用图标微技巧,8.0 系统中应用图标的适配

  • 透明 Activity 方向适配

    • Android 8.0 踩坑记录 - Only fullscreen opaque activities can request orientation

    • Only fullscreen opaque activities can request orientation 问题及解决方案

    • Only fullscreen activities can request orientation 终极解决方法

    • "Only fullscreen opaque activities can request orientation "问题再分析

  • 启动后台 Service 适配

    • Android 8.0 启动后台service 出错 IllegalStateException: Not allowed to start service Intent

    • Android 8.0 + Service开启方式兼容处理

    • Context.startForegroundService() did not then call Service.startForeground?

    • Android 8.0: java.lang.IllegalStateException: Not allowed to start service Intent

  • 其他适配

    • 适配 Anddroid 8.0 多语言的解决方案

Android 7.0 / 7.1.1

新特性
  • Android 7.0 新特性

    • 多窗口支持

    • 通知增强功能

    • 配置文件指导的 JIT/AOT 编译

    • 快速的应用安装路径

    • 随时随地低电耗模式

    • 后台优化

    • SurfaceView

    • 流量节省程序

    • Vulkan API

    • Quick Settings Tile API

    • 号码屏蔽

    • 来电过滤

    • 多语言区域支持,更多语言

    • 新增的表情符号

    • Android 中的 ICU4J API

    • WebView

      • Chrome 和 WebView 配合使用

      • 多进程

      • Javascript 在页面加载之前运行

      • 不安全起点上的地理定位

      • 测试 WebView 测试版

    • OpenGL™ ES 3.2 API

    • Android TV 录制

    • Android for Work

      • 工作资料安全性挑战

      • 关闭工作

      • Always on VPN

      • 自定义配置

    • 无障碍增强功能

    • 直接启动

    • 密钥认证

    • 网络安全性配置

    • 默认受信任的证书颁发机构

    • APK signature scheme v2

    • 作用域目录访问

    • 键盘快捷键辅助工具

    • Custom Pointer API

    • Sustained Performance API

    • VR 支持

    • 打印服务增强

    • FrameMetricsListener API

    • 虚拟文件

  • Android 7.1 新特性

    • 应用快捷方式

    • 键盘支持图像

    • 新的专业表情符号

    • 增强的动态壁纸元数据

    • 圆形图标资源

    • 存储管理器意图

    • 改进的 VR 线程调度

    • 演示用户提示

    • 运营商和呼叫应用程序的 API

    • 可穿戴设备的新屏幕密度

行为变更
  • 电池和内存

    • 低电耗模式

    • 后台优化

  • 系统权限更改

  • 在应用间共享文件

  • 无障碍改进

    • 屏幕缩放

    • 设置向导中的视觉设置

  • NDK 应用链接至平台库

    • 检查您的应用是否使用私有库

    • 更新您的应用

  • Android for Work

  • 注解保留

  • 其他重要说明

相关资源
  • 适配简介

    • Android 7.0 脱坑指南

    • Android 7.0 适配教程,心得

  • FileProvider适配

    • Android 一起来看看 7.0 的新特性 FileProvider

    • 官方文档 - FileProvider 类

  • 其他适配

    • Toast 在 Android 7.1 崩溃排查及修复

    • PopupWindow 在 Android N(7.0) 的兼容性问题

    • Android 7.0 WebView 部分机型打不开

Android 6.0

新特性
  • 指纹身份验证

  • 确认凭据

  • 应用链接

  • 自动备份应用

  • 直接共享

  • 语音交互

  • Assist API

  • 可采用的存储设备

  • 通知

  • 蓝牙触控笔支持

  • 改进的蓝牙低功耗扫描

  • Hotspot 2.0 第 1 版支持

  • 4K 显示模式

  • 主题化 ColorStateList

  • 音频功能

  • 视频功能

  • 相机功能

    • Flashlight API

    • Reprocessing API

  • Android for Work 功能

行为变更
  • 运行时权限

  • 低电耗模式和应用待机模式

  • 取消支持 Apache HTTP 客户端

  • BoringSSL

  • 硬件标识符访问权

  • 通知

  • 音频管理器变更

  • 文本选择

  • 浏览器书签变更

  • Android 密钥库变更

  • WLAN 和网络连接变更

  • 相机服务变更

  • 运行时

  • APK 验证

  • USB 连接

  • Android for Work 变更

相关资源
  • Android 6.0 运行权限解析

  • 官方文档 - 请求应用权限

  • 所有的 Android 权限清单

Android 5.0 / 5.1

新特性
  • Android 5.0 新特性

    • 用户界面

      • Material Design 支持

      • 最近使用的应用屏幕中的并发文档和 Activity

      • WebView 更新

      • 屏幕采集和共享

    • 通知

      • 锁定屏幕通知

      • 通知元数据

    • 图形

      • 对 OpenGL ES 3.1 的支持

      • Android 扩展包

    • 媒体

      • 用于高级相机功能的 Camera API

      • 音频回放

      • 媒体回放控制

      • 媒体浏览

    • 存储

      • 目录选择
    • 无线和连接

      • 多个网络连接

      • 蓝牙低功耗

      • NFC 增强功能

    • Volta 项目

      • 计划排定作业

      • 电池使用开发者工具

    • 工作场所和教育领域中的 Android

      • 托管配置

      • 设备所有者

      • 固定屏幕

    • 打印框架

      • 将 PDF 渲染成位图
    • 系统

      • 应用使用情况统计信息
    • 测试与辅助工具

    • 测试与辅助工具改进

    • IME

      • 更方便的输入语言切换
    • 清单声明

      • 可声明的必备功能

      • 用户权限

  • Android 5.1 新特性

    • 多 SIM 卡支持

    • 已弃用的 HTTP 类

    • 运营商服务

行为变更
  • Android Runtime (ART)

  • 通知

    • Material Design 样式

    • 声音和振动

    • 锁定屏幕可见性

    • 媒体播放

    • 浮动通知

  • 媒体控件和 RemoteControlClient

  • getRecentTasks()

  • Android NDK 中的 64 位支持

  • 绑定到服务

  • WebView

  • 自定义权限唯一性要求

    • 使用重复的自定义权限的应用

    • 您的应用需要注意的事项

    • 新安装和更新

    • 使用 Android 5.0 系统更新的现有安装

    • 建议

  • TLS/SSL 默认配置变更

    • 服务器不支持任何已启用的加密套件

    • 应用对用于连接服务器的加密套件做出错误的假设

    • 服务器不支持 TLSv1.1、TLSv1.2 或新的 TLS 扩展

  • 支持托管配置文件

    • 处理 Intent

    • 在各个配置文件中共享文件

    • 已移除锁定屏幕小部件支持

Android 4.4

新特性
  • 打印框架

    • 打印通用内容

    • 打印图像

    • 构建打印服务

  • 短信提供程序

  • 无线和连接

    • 主机卡模拟

    • NFC 读取器模式

    • 红外线发射器

  • 多媒体

    • 自适应播放

    • 音频点播时间戳

    • Surface 图像读取器

    • 峰值和有效值 (RMS) 测量

    • 音量增强器

    • 遥控器

    • 从遥控器进行评分

    • 隐藏式字幕

  • 动画和图形

    • 场景和转场

    • 动画暂停

    • 可重复使用的位图

  • 用户内容

    • 存储访问框架

    • 外部存储空间访问

    • 同步适配器

  • 用户输入

    • 新传感器类型

    • 批处理传感器事件

    • 控制器身份

  • 用户界面

    • 沉浸式全屏模式

    • 透明系统状态栏

    • 增强的通知侦听器

    • 可绘制的 RTL 布局镜像

    • 无障碍功能

  • 应用权限

  • 设备功能

行为变更
  • 外部存储

  • WebView

  • AlarmManager

  • ContentResolver

相关资源
  • Android通知还能这么玩?

  • Android NotificationListenerService 的使用

  • Android 通知使用权(NotificationListenerService)的使用

作者其他开源项目
  • 安卓技术中台:AndroidProject 

  • 安卓技术中台 Kt 版:AndroidProjet-Kotlin 

  • 权限框架:XXPermissions 

  • 吐司框架:Toaster 

  • 网络框架:EasyHttp

  • 标题栏框架:TitleBar 

  • 悬浮窗框架:EasyWindow 

  • ShapeView 框架:ShapeView 

  • ShapeDrawable 框架:ShapeDrawable 

  • 语种切换框架:MultiLanguages 

  • Gson 解析容错:GsonFactory 

  • 日志查看框架:Logcat 

  • 嵌套滚动布局框架:NestedScrollLayout 

  • Android 代码规范:AndroidCodeStandard 

  • Android 资源大汇总:AndroidIndex 

  • Android 开源排行榜:AndroidGithubBoss 

  • Studio 精品插件:StudioPlugins 

  • 表情包大集合:EmojiPackage 

  • AI 资源大汇总:AiIndex 

  • 省市区 Json 数据:ProvinceJson

  • Markdown 语法文档:MarkdownDoc 

  •  转自:GitHub - getActivity/AndroidVersionAdapter: 安卓版本适配全套指南

你可能感兴趣的:(android)