minSdkVersion:
你的app支持的最低系统平台,低于这个版本的硬件,app无法正常安装。如果将minSdkVersion设置的太低的话,当使用某些在高版本里才有的API方法时,会提示“该方法需要支持的版本是xx,当前的最低版本是xx”。
建议:除非是需求要求,否则一般将最低版本设置在16-19之间。目前低于19(4.4.4)版本的手机已经不多了。
targetSdkVersion:
主要起到向前兼容的作用。什么意思呢,咱们知道,API23以后,需要用到权限的时候需要动态申请,如果你的tagetSdkVersion设置为22,那么即便是运行在API为23(6.0)的手机上,你依然不需要去动态申请权限这些。总结一句话就是,targetSdkVersion决定你app在硬件上的表现行为。当然在你修改了targetSdkVersion以后,一定要经过系统的测试才行。
建议:把targetSdkVersion调高,能让你的app表现形式不至于落后,还有一点,当你的tagetSdkVersion跟Android系统版本相匹配的话,会减少一些兼容性判断,能提高程序的运行效率。
compileSdkVersion:
编译App时所使用的版本,它不涉及到运行时的行为。Android Studio有预编译功能,将compileSdkVersion设置为最高,可以避免使用弃用的API,并且为新的API做准备。
建议:升级到最高版本。
总结:minSdkVersion <= targetSdkVersion <= compileSdkVersion
buildToolsVersion:
构建工具的版本号,可以用高的构建工具版本来构建低版本的Sdk项目。