ITmob-Ly
发布于 2023-06-09 / 146 阅读
0

Android 中的 compileSdk、 targetSdk 和 minSdk 有什么区别?

android {
    compileSdk 33

    defaultConfig {
        applicationId "cn.itmob.example"
        minSdk 21
        targetSdk 33
        versionCode 1
        versionName "1.0"
    }
    // ...
}

𝐂𝐨𝐦𝐩𝐢𝐥𝐞 𝐒𝐃𝐊

编译 SDK 版本是应用程序在构建过程中编译所用的 Android SDK 版本,它确定了可供在代码中使用的 API 功能。比如,如果将 compileSdk 设置为 15,但您尝试使用 API 16 的功能则会出现编译错误。

𝐓𝐚𝐫𝐠𝐞𝐭 𝐒𝐃𝐊

指定应用的目标 API 级别,它表示您的应用设计兼容的最高 Android 版本。如果未设置,其默认值与为 minSdkVersion 指定的值相等。

设置目标 SDK 版本,系统会认为您已针对目标版本进行测试,并且系统不应通过启用任何兼容性行为,以保持您的应用与目标版本的向前兼容性。

𝐌𝐢𝐧 𝐒𝐃𝐊

最低 SDK 版本是您的应用程序可以运行的最低 Android 版本,它指定您的应用程序支持的最低 Android API 级别。

Android 版本低于最低 SDK 版本的设备系统就不允许安装该应用,以防出现应用运行时试图访问低版本中不存在的 API 时发生崩溃。

targetSdk 不能高于 compileSdk 因为我们不能在编译期间使用低版本 SDK 无法使用高版本的 API。