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用户群体。
网友评论