Gradle几个Version的总结

先看下官方文档的声明

compileSdkVersion

compileSdkVersion specifies the Android API level Gradle should use to compile your app. This means your app can use the API features included in this API level and lower.

compileSdkVersion 声明了Gradle在编译你的App时所需要的Android API的版本。这意味着你的App可以使用小于等于该版本的API的所有特性。

buildToolsVersion

buildToolsVersion specifies the version of the SDK build tools, command-line utilities, and compiler that Gradle should use to build your app. You need to download the build tools using the SDK Manager.

buildToolsVersion声明了Gradle在build你的app时所使用的SDK编译工具、命令行工具以及编译器的版本。你需要使用SDK Manager去下载build tools。

targetSdkVersion

一个用于指定应用的目标 API 级别的整数。如果未设置,其默认值与为minSdkVersion 指定的值相等。
该属性用于通知系统,您已针对目标版本进行测试,并且系统不应启用任何兼容性行为来保持您的应用与目标版本的向前兼容性。 应用仍可在较低版本上运行(最低版本为 minSdkVersion)。

在 Android 随着每个新版本的推出而进化的过程中,一些行为甚至是外观可能会发生变化。不过,如果平台的 API 级别高于您的应用的targetSdkVersion所声明的版本,系统就可以通过启用兼容性行为来确保您的应用继续以您所期望的方式工作。 您可以通过将 targetSdkVersion 指定为与应用所运行平台的 API 级别一致来停用此类兼容性行为。 例如,如果将该值设置为“11”或更高,系统便可在您的应用运行在 Android 3.0 或更高版本的平台上时对其应用新的默认主题 (Holo),还可在您的应用运行在更大屏幕上时停用屏幕兼容性模式(因为对 API 级别 11 的支持隐含了对更大屏幕的支持)。

系统可根据您为该属性设置的值启用许多兼容性行为。Build.VERSION_CODES 参考资料中的相应平台版本对其中的几种行为做了说明。

要让您的应用与各 Android 版本保持同步,您应该增加该属性的值,使其与最新 API 级别一致,然后在相应平台版本上对您的应用进行全面测试。

引入的版本:API 级别 4

minSdkVersion

一个用于指定应用运行所需最低 API 级别的整数。 如果系统的 API 级别低于该属性中指定的值,Android 系统将阻止用户安装应用。 您应该始终声明该属性。

注意:如果您不声明该属性,系统将假定默认值为“1”,这表示您的应用兼容所有 Android 版本。 如果您的应用并不兼容所有版本(例如,它使用 API 级别 3 中引入的 API),并且您尚未声明正确的 minSdkVersion,则当应用安装在 API 级别小于 3 的系统上时,应用将在运行时尝试访问不可用的 API 时发生崩溃。 因此,请务必在 minSdkVersion 属性中声明合适的 API 级别。

maxSdkVersion

一个指定作为应用设计运行目标的最高 API 级别的整数。

Android 1.5、1.6、2.0 及 2.0.1 中,系统会在安装应用以及系统更新后重新验证应用时检查该属性的值。 在任一情况下,如果应用的 maxSdkVersion 属性低于系统本身使用的 API 级别,系统均不允许安装应用。 在系统更新后重新验证这种情况下,这实际上相当于将您的应用从设备中移除。

为说明该属性在系统更新后对您的应用的影响,请看看下面这个示例:

Google Play 上发布了一个在其清单中声明了 maxSdkVersion="5" 的应用。 一位设备运行 Android 1.6(API 级别 4)的用户下载并安装了该应用。 几周后,该用户收到了Android 2.0(API 级别 5)OTA 系统更新。 更新安装后,系统检查该应用的 maxSdkVersion 并顺利完成了对其的重新验证。 应用仍可照常工作。 不过,一段时间后,设备又收到了一个系统更新,这次是更新到 Android 2.0.1(API 级别 6)。 更新完成后,系统无法再重新验证应用,因为此时系统本身的 API 级别 (6) 已超过该应用支持的最高级别 (5)。 系统会使该应用对用户不可见,这实际上相当于将它从设备上删除。

警告:不建议声明该属性。 首先,没有必要设置该属性,将其作为阻止您的应用部署到 Android 平台新发布版本上的一种手段。 从设计上讲,新版本平台完全向后兼容。 只要您的应用只使用标准 API 并遵循部署最佳实践,应该能够在新版本平台上正常工作。 其次,请注意在某些情况下,声明该属性可能导致您的应用在系统更新至更高 API 级别后被从用户设备中移除。 大多数可能安装您的应用的设备都会定期收到 OTA 系统更新,因此您应该在设置该属性前考虑这些更新对您的应用的影响。

引入的版本:API 级别 4

Android 2.0.1 之后的版本在安装或重新验证时将不再检查或强制执行 maxSdkVersion 属性。 不过,Google Play在向用户呈现可供下载的应用时将继续使用该属性作为过滤器。

其他资料: 资料1,资料2,资料3。

你可能感兴趣的:(Gradle几个Version的总结)