compileSdkVersion, minSdkVersion,targetSdkVersion的区别

minSdkVersion : 主要用于安卓系统环境校验。开发人员觉得满足app最佳正常运行的最低安卓环境版本,如果安卓系统低于设置的minSdkVersion将无法安装。

targetSdkVersion: 主要用于安卓系统环境校验。开发人员觉得满足app最佳正常运行的最高安卓环境版本,如果安卓系统高于设置的targetSdkVersion可能需要额外的代码进行逻辑判断执行。 比如: 安卓系统版本大于最佳版本范围,有可能发生api功能的变动,原本的api可能不再支持现有的功能,可以通过判断当前系统是否大于targetSdkVersion,如果大于就走额外的代码逻辑调用当前安卓最新的api,否则走原有的逻辑,来保证功能不受影响。

compileSdkVersion, minSdkVersion,targetSdkVersion的区别_第1张图片

compileSdkVersion:编译版本,编译版本可高可低,源代码编译成中间代码的编译工具版本。
有以下几个情况:

  • 1 编译器7,代码<=7, 安卓环境7
    这是完全没问题的版本,代码肯定能被编译器编译,编译出来的代码一定能运行。
  • 2 编译器7,代码>=8(有7还有8的特性),安卓环境7
    代码7的能本正常编译,代码8的部分无法被编译器识别导致编译失败。
  • 3 编译器7, 代码<=7(有6,也有7的特性),安卓环境6
    代码能正常编译,由于编译后的中间文件包含7的新特性,运行时报异常。

为了能让整个程序正常运行,代码语法特性版本不要高于编译器版本和安卓环境版本,
因为高于编译器,编译不通过;高于安卓环境,运行不通过。
编译器版本最低是代码语法版本,最高是最新版本。保证代码能被正常编译,一般建议使用最高版本,这样任何版本都能代码都能编译。

语言版本(代码版本)<=安卓版本<=编译版本才能让代码正常运行。

你可能感兴趣的:(android)