[10 月的好奇心]如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion

android Nov 01, 2018

先简单解释一下三者:
minSdkVersion: 应用可以运行的最低要求
targetSdkVersion: 应用可使用的最高 SDK 特性
compileSdkVersion: 与 android 自身无关。是gradle 使用的字段,用来控制编译应用使用的 SDK

三者关系

按道理讲,三者的关系严格在:
minSdkVersion <= targetSdkVersion <= compileSdkVersion

理想上,在稳定状态下三者的关系应该更像这样:
minSdkVersion (lowest possible) <= targetSdkVersion == compileSdkVersion(latest SDK)
用较低的 minSdkVersion 来覆盖最大的人群,用最新的 SDK 设置 target 和 compile 来获得最好的外观和行为。

targetSdkVersion 和系统 SdkVersion 的三种情况

系统 SdkVersion == APP targetSdkVersion,Android系统不需做任何兼容处理,完美适配特性。
系统 SdkVersion > APP targetSdkVersion,系统作适配以适应 targetSdkVersion 所需特性。
系统 SdkVersion < APP targetSdkVersion,应用做适配以适应系统 API。

一句话说就是

谁大谁兼容

参考:
如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion

/* 看板娘 */