Google总会不定时地更新Android SDK 的版本。我们不能永远要求用户在第一时间升级到最新的SDK。但你也不用担心你的App会因为SDK升级而崩溃了。因为有forward compatibility。你需要关注的有compileSdkVersion, minSdkVersion 和 targetSdkVersion。
-
compileSdkVersion
用来告诉Gradle应该使用哪一个SDK去编译你的App。如果你想使用最新的API,那么你就需要升级SDK版本。需要强调的是它并不会去改变运行时的行为。或许在编译完成时你会看到一些warining或者error。但compileSdkVersion并不包含在你的APK当中,而只是单纯地运用在编译时。
所以,强烈建议使用最新的SDK 来编译你的App。
注意,如果你使用了Support Library,那么要保证Sdk 的版本与Support Library相同或者更高。例如,你使用23.1.1 Support Library,那么你至少需要用23 compileSdkVersion。 -
minSdkVersion
minSdkVersion表明了你App的底线,帮助Google Play Store决定哪一些用户手机可以安装你的App。
同时,minSdkVersion对于发布也至关重要。它会检测你的代码之中是否使用一些API,而这些API不在minSdkVersion之中。
如果你试试用一些其他的libraries,这些librarie可能会有自己的minSdkVersion。那么你App中的minSdkVersion至少需要和他们之中最大的minSdkVersion一样大。
当你在决定minSdkVersion版本的时候,你需要去看一看 手机SDK的数据分布。因为这将决定你用户的覆盖率。 -
targetSdkVersion
它指的是你已经完全测试过的版本号。
android {
compileSdkVersion 23
buildToolsVersion “23.0.1”
defaultConfig {
applicationId “com.example.checkyourtargetsdk"
minSdkVersion 7
targetSdkVersion 23
versionCode 1
versionName “1.0”
}
}
compileSdkVersion是compile层次的,defaultConfig是build层次的。
总结
minSdkVersion <= targetSdkVersion <= compileSdkVersion
或者
minSdkVersion (lowest possible) <=
targetSdkVersion == compileSdkVersion (latest SDK)
如果你的minSdkVersion 设得很低,那么你能覆盖很多的Android用户群体。









网友评论