minSdkVersion与maxSdkVersion比较容易理解,就是在安装程序的时候,若是目标设备的API版本小于minSdkVersion, 或者大于maxSdkVersion,程序将没法安装。通常来讲没有必要设置maxSdkVersion。java
targetSdkVersion相对复杂一些,若是设置了此属性,那么在程序执行时,若是目标设备的API版本正好等于此数值, 他会告诉Android平台:此程序在此版本已经通过充分测,没有问题。没必要为此程序开启兼容性检查判断的工做了。 也就是说,若是targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。 可是,这个设置仅仅是一个声明、一个通知,不会有太实质的做用, 好比说,使用了targetSdkVersion这个SDK版本中的一个特性,可是这个特性在低版本中是不支持的 ,那么在低版本的API设备上运行程序时,可能会报错:java.lang.VerifyError。也就是说,此属性不会帮你解决兼容性的测试问题。 你至少须要在minSdkVersion这个版本上将程序完整的跑一遍来肯定兼容性是没有问题的。测试
project.properties中的target是指在编译的时候使用哪一个版本的API进行编译。get
综上,上面的四个值实际上是做用于不一样的时期:
target API level是在编译的时候起做用,用于指定使用哪一个API版本(SDK版本)进行编译。 minSdkVersion和maxSdkVersion是在程序安装的时候起做用, 用于指定哪些版本的设备能够安装此应用。 targetSdkVersion是在程序运行的时候起做用,用于提升指定版本的设备上程序运行体验。io