android { compileSdkVersion 30 buildToolsVersion "30.0.0" defaultConfig { applicationId "com.billshen.offerlearn" minSdkVersion 15 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } }
compileSdkVersion
compileSdkVersion表示Gradle使用哪个版本的API来编译,避免使用过期API。
minSdkVersion
minSdkVersion表示APP可以运行的最低Level,低于这个版本代码就不做兼容了。谷歌应用市场会根据这个最低版本号和用户的Android的版本号对比来告知用户是否可用安装这个APP。
targetSdkVersion
targetSdkVersion表示告诉Android系统APP做的最高系统特性兼容。
总结
三者之间关系minSdkVersion <= targetSdkVersion <= compileSdkVersion。为了尽可能使用新的API,compileSdkVersion应该尽可能高。为了使APP更加契合新版本Android的外观特性,targetSdkVersion应该尽可能高。在实践中一般minSdkVersion <= targetSdkVersion == compileSdkVersion