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