compileSdkVersion、buildeToolVersion、minSdkVersion、targetSdkVersion的理解

compileSdkVersion
只会作用在编译阶段,编译的时候使用哪个版本的SDK,一般我们都会设置成目前市面上的最高版本,从而更早的采用一些新特性新方法等。
需要注意的是v4、v7、cardview等兼容包的版本要和compileSdkVersion的保持一致,比如我们compileSdkVersion = 26,那么V4,v7的版本也要相应的是26.xx.xx,首位的26必须一致,后两位没有要求。
buildeToolVersion
是你构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于..your_sdk_path/build-tools/XX.XX.XX,
Android Studio可以通过SDK Manager --> SDK Tools下载。
buildeToolVersion版本需要>=compileSdkVersion版本

minSdkVersion
这个比较好理解,例如minSdkVersion是21(5.0),则这个apk只能运行在5.0系统或者以上,5.0以下的系统运行不了。


targetSdkVersion
targetSdkVersion 是 Android 系统提供前向兼容的主要手段(即:新版本SDK手机兼容旧版本SDK工程)
例如你的apk的targetSdkVersion是22(Android5.1),然后这个apk安装到Android6.0或更高系统的手机上,则系统会保留你在Android5.1上的特性,不会使用高版本系统的特性,例如不会对你的apk采用运行时权限的功能。
也就是说在高版本的手机上只保留你targetSDK的特性,高本版手机的新增特性不会作用到你的apk上。系统会根据targetSdkVersion的值决定采用哪个版本的API,这也是市面上的新系统的手机一般来说能运行所有已存在的Android应用的原因(向下兼容)。

你可能感兴趣的:(Android,Studio)