android:minSdkVersion,android:maxSdkVersion:
设置最小、最大SDK level。在安装程序的时候,如果目标设备的API版本小于minSdkVersion, 或者大于maxSdkVersion,程序将无法安装。一般来说没有必要设置maxSdkVersion。升级minSdkVersion需要谨慎,需要调研市场上大部分机器系统版本,不然可能导致无法安装
android:targetSdkVersion:
如果设置了此属性,那么在程序执行时,如果目标设备的API版本正好等于此数值,他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。targetSdkVersion指你的目标版本.如果系统SDK版本大于targetSdkVersion,应该会使用targetSdkVersion运行。
如果系统SDK版本小于targetSdkVersion 系统会使用低版本SDK的api运行该程序。这时需要应用在升级targetSdkVersion时,要做好低版本兼容。如23 level增加了动态权限等新特性,要在程序中使用该功能,需要升级targetSdkVersion为23,同时在程序中做上下兼容性判断——即如果当前系统SDK大于等于23,使用动态权限;如果小于23则不使用动态权限。以确保兼容性。 如果单纯的升级targetSdkVersion,而针对新特性不做兼容性判断,会有问题。
如果不设置了此属性,系统默认使用minSDKVersion运行程序(未验证,需要验证下)。
project.properties中的target,build.gradle中的compileSdkVersion是指在编译的时候使用哪个版本的API进行编译。