Android API级别、向后兼容性与向前兼容性 - Medium

作者:API传播员 · 2025-12-22 · 阅读时间:4分钟

为了更好地理解Android开发中的关键概念,我们需要明确SDK与API之间的区别,以及API级别在Android生态系统中的重要性。本文将详细介绍SDK、API、API级别及其相关的兼容性问题,并深入探讨compileSdkVersionminSdkVersiontargetSdkVersion的作用。


SDK(软件开发工具包)

SDK,即软件开发工具包,是一组工具、库、文档和示例代码的集合,旨在帮助开发人员构建、调试和运行Android应用程序。SDK不仅包含开发所需的工具,还提供了API供开发者使用。

在Android Studio中打开SDK管理器,可以清晰地看到Android SDK的组成部分,例如:

  • Android SDK平台:如Android SDK平台28(对应框架API)。
  • Android源代码:API的实现部分(可选下载)。
  • 其他工具:如Android模拟器的系统映像。

此外,SDK管理器中的“SDK工具”选项卡列出了与平台版本无关的工具,这些工具可以独立发布或更新。


API(应用程序编程接口)

API是应用程序编程接口的缩写,它是一个抽象层,允许不同的软件模块之间进行通信。API作为提供者(如库)与消费者(如应用程序)之间的契约,定义了两者之间的交互规则。


API级别

API级别是一个整数值,用于唯一标识Android平台版本提供的框架API修订版。它是开发者在开发过程中需要特别关注的一个重要概念。

API实现的位置

虽然SDK管理器提供了可选的API源代码,但实际的API实现位于设备上。通常,Android项目由以下部分组成:

  • 虚拟机:从Android 5.0(Lollipop)开始,Dalvik虚拟机被ART(Android运行时)取代。ART结合了AOT(提前编译)和JIT(即时编译)技术。
  • 核心库:包括标准Java库和Android库,是API实现的核心部分。

例如,如果设备运行的是Android 9(Pie),则API级别28及以下的所有API都可用。


向后兼容性与向前兼容性

理解Android Runtime的工作原理和API的作用后,compileSdkVersionminSdkVersiontargetSdkVersion的使用就变得更加直观。这些配置项分别决定了应用的编译版本、最低支持版本和目标版本。

compileSdkVersion

compileSdkVersion指定了应用程序编译时使用的SDK版本。强烈建议使用最新的SDK版本进行编译,原因如下:

  • 可以利用最新的API和平台功能。
  • 与最新的Support Library版本匹配。例如,使用Support Library 28.x.x时,compileSdkVersion必须设置为28。

此外,Google Play要求新应用和更新的应用满足最低目标API级别,因此开发者需要确保compileSdkVersion满足这些要求。

minSdkVersion

minSdkVersion定义了应用程序能够运行的最低API级别。它是应用程序的最低要求,默认值为1。开发者需要确保应用在指定的最低API级别上能够正常运行,这被称为向后兼容性

例如,如果应用的minSdkVersion为22,但尝试调用API级别26引入的功能而未做兼容性处理,应用可能会在运行时崩溃。

targetSdkVersion

targetSdkVersion表示应用程序的目标API级别。Google强制要求应用满足新的目标API级别,因此开发者需要优先更新此值。

以下是三个配置项的关系:

minSdkVersion ≤ targetSdkVersion ≤ compileSdkVersion

通过理解SDK、API及其级别的作用,以及compileSdkVersionminSdkVersiontargetSdkVersion的配置,开发者可以更好地管理应用的兼容性问题,从而在不同的Android平台上提供一致的用户体验。

原文链接: https://medium.com/android-news/android-api-level-backward-and-forward-compatibility-10e6d31cb848