compileSdkVersion 和 targetSdkVersion 的区别
简介
SDK(软件开发工具包)为开发人员提供了一套工具,例如库、工具和 API,用于为特定平台构建应用程序。SDK 版本指的是应用程序构建所针对的 Android 平台的版本。每个版本的 Android SDK 对应于 Android 操作系统的特定版本。例如,Android 11 的 SDK 版本为 30,而 Android 10 的 SDK 版本为 29,依此类推。
在开发 Android 应用程序时,了解 compileSdkVersion 和 targetSdkVersion 之间的区别至关重要。这两个术语有时可能会让开发人员感到困惑,了解它们的含义对于确保应用程序在不同设备和操作系统上平稳运行至关重要。
您可以在 build.gradle 文件中找到这些 compileSdkVersion 和 targetSdkVersion,如下所示
build.gradle (app)
android { compileSdk 33 defaultConfig { minSdk 21 targetSdk 33 versionCode 1 versionName "1.0" } }
什么是 Android 中的 compileSdkVersion?
compileSdkVersion 是用于编译应用程序的 Android SDK 版本。此版本确定您可以在应用程序中使用哪些 API 和功能。当您使用特定的 compileSdkVersion 编译应用程序时,您告诉构建系统使用该特定版本的 API,并确保您的代码与该版本兼容。但是,值得注意的是,使用较高的 compileSdkVersion 并不一定意味着您的应用程序可以访问较低版本中不存在的新功能或 API。
什么是 Android 中的 targetSdkVersion?
targetSdkVersion 是应用程序设计运行的 Android API 版本。此版本告诉操作系统您的应用程序期望使用哪些 API 和功能。当您将 targetSdkVersion 设置为特定版本时,您告诉系统您的应用程序针对该版本进行了优化,并且系统应启用任何必要的兼容性行为以确保您的应用程序在该版本上正确运行。
在涉及 Android 版本控制系统时,设置 targetSdkVersion 尤其重要。Android 定期发布更新,每个版本都可能包含对操作系统或其 API 行为的更改。当您将 targetSdkVersion 设置为最新可用版本时,您告诉操作系统您的应用程序针对该版本进行了优化,并且已测试可以与可能引入的任何更改一起正常工作。
需要注意的是,设置 targetSdkVersion 并不意味着您的应用程序不能在旧版本的 OS 上运行。相反,它通知系统您的应用程序设计用于与该版本配合使用,并且系统将启用任何必要的兼容性行为以确保您的应用程序平稳运行。但是,如果您将 targetSdkVersion 设置为旧版本的 API,您的应用程序可能会错过新版本中引入的任何新功能和优化。
targetSdkVersion 和 compileSdkVersion 的区别
编译 SDK 版本 |
目标 SDK 版本 |
---|---|
编译 SDK 版本是可用于编译应用程序的 Android SDK 的最低版本。 |
目标 SDK 版本是应用程序设计的 Android 应用程序版本,可以在开发应用程序时更改。 |
可以在开发应用程序时更改编译 SDK 版本。 |
目标 SDK 版本无法更改。 |
用于测试应用程序的兼容性。 |
用于确保应用程序在 Android 设备上按预期运行。 |
可用于更改新的 API 功能。 |
不能用于更改新的 API 功能。 |
编译 SDK 版本可以是低于目标 API 级别的旧 API 级别 |
目标 SDK 版本应始终与编译 SDK 版本相同或更高。 |
结论
总而言之,compileSdkVersion 是用于编译应用程序的 Android SDK 版本,而 targetSdkVersion 是应用程序针对其优化的 Android API 版本。正确设置 compileSdkVersion 和 targetSdkVersion 对于确保应用程序在不同设备和操作系统上平稳运行至关重要。