minSdkVersion、compileSdkVersion和targetSdkVersion

从Eclipse转到AS以后,一直用着最新的各种版本号,对于这三个参数还没有仔细研究过,正好最近对三年前的一个APP进行升级时才发现这里面还是有区别的

1、minSdkVersion:没啥好说的,就是APP能运行的最低版本,小于该版本号的则无法运行

2、compileSdkVersion :告诉gradle使用哪个版本的SDK来编译你的APP,

  • 使用最新的API,则必须使用对应版本的sdk version
  • 引用了Support库,则Support必须使用相应的版本,例如 compileSdkVersion 是24,则Support使用support:name:24.x.x

3、targetSdkVersion:这个比较复杂,用谷歌的话说就是Android 系统提供前向兼容的主要手段,既然是兼容那就还是分情况说

  • 运行环境 < targetSdkVersion,这时候表示运行于低版本的环境下,系统选择运行环境的方法来实现,所以设置了targetSdkVersion以后,对应的minSdkVersion下应该整体测试一遍保证其兼容性
  • 运行环境 = targetSdkVersion,这时候表示运行于最佳环境下,系统啥也不干
  • 运行环境 > targetSdkVersion,这时候表示运行于高版本环境下,系统使用targetSdkVersion对应的方法来确保高版本环境下APP的兼容性

从上面来看,最重要的应该是minSdkVersion和targetSdkVersion了,他们对应的关系应该是

minSdkVersion  <=  targetSdkVersion <= compileSdkVersion

 

compileSdkVersion

posted @ 2017-08-26 21:21  Xiao.T  阅读(277)  评论(0编辑  收藏  举报