android:minSdkVersion
一个整数,指定应用程序运行所需的最低 API 级别。如果系统的 API Level 低于此属性中指定的值,Android 系统将阻止用户安装应用程序。您应该始终声明此属性。
注意:如果您不声明此属性,系统会假定默认值为“1”,表示您的应用程序兼容所有版本的Android。如果您的应用程序不兼容所有版本(例如,它使用 API 级别 3 中引入的 API)并且您没有声明正确的 minSdkVersion,那么当安装在 API 级别低于 3 的系统上时,应用程序将在运行期间崩溃尝试访问不可用的 API 时的运行时。因此,请务必在 minSdkVersion 属性中声明适当的 API 级别。
android:targetSdkVersion
一个整数,指定应用程序所针对的 API 级别。如果未设置,则默认值等于提供给 minSdkVersion 的值。
此属性通知系统您已针对目标版本进行了测试,并且系统不应启用任何兼容性行为来保持您的应用程序与目标版本的前向兼容性。该应用程序仍然能够在旧版本上运行(低至 minSdkVersion)。
随着 Android 随着每个新版本的发展,某些行为甚至外观可能会发生变化。但是,如果平台的 API 级别高于您应用的 targetSdkVersion 声明的版本,系统可能会启用兼容性行为,以确保您的应用继续按照您期望的方式运行。您可以通过指定 targetSdkVersion 以匹配其运行平台的 API 级别来禁用此类兼容性行为。例如,将此值设置为“11”或更高允许系统在 Android 3.0 或更高版本上运行时将新的默认主题 (Holo) 应用到您的应用程序,并且还可以在大屏幕上运行时禁用屏幕兼容模式(因为支持 API 11 级隐式支持更大的屏幕)。
系统可能会根据您为此属性设置的值启用许多兼容性行为。 Build.VERSION_CODES 参考中的相应平台版本描述了其中一些行为。
要与每个 Android 版本一起维护您的应用程序,您应该增加此属性的值以匹配最新的 API 级别,然后在相应的平台版本上彻底测试您的应用程序。
引入:API 级别 4
android:maxSdkVersion
一个整数,指定应用程序设计运行的最大 API 级别。
在 Android 1.5、1.6、2.0 和 2.0.1 中,系统会在安装应用程序以及在系统更新后重新验证应用程序时检查此属性的值。在任何一种情况下,如果应用程序的 maxSdkVersion 属性低于系统本身使用的 API 级别,那么系统将不允许安装应用程序。在系统更新后重新验证的情况下,这实际上会从设备中删除您的应用程序。
为了说明此属性在系统更新后如何影响您的应用程序,请考虑以下示例:
在其清单中声明 maxSdkVersion="5" 的应用程序已在 Google Play 上发布。设备运行 Android 1.6(API 级别 4)的用户下载并安装应用程序。几周后,用户会收到 Android 2.0(API 级别 5)的无线系统更新。安装更新后,系统会检查应用程序的 maxSdkVersion 并成功重新验证。应用程序正常运行。但是,一段时间后,该设备收到了另一个系统更新,这次是 Android 2.0.1(API 级别 6)。更新后,系统无法再重新验证应用程序,因为系统自身的 API 级别 (6) 现在高于应用程序支持的最大值 (5)。系统会阻止用户看到该应用程序,实际上是将其从设备中删除。
警告:不建议声明此属性。首先,无需将属性设置为阻止将应用程序部署到新版本 Android 平台上的方法,因为它们已发布。根据设计,该平台的新版本完全向后兼容。您的应用程序应该在新版本上正常工作,前提是它只使用标准 API 并遵循开发最佳实践。其次,请注意,在某些情况下,声明该属性可能会导致您的应用程序在系统更新到更高的 API 级别后从用户的设备中删除。大多数可能安装您的应用程序的设备都会通过无线方式定期接收系统更新,因此您应该在设置此属性之前考虑它们对您的应用程序的影响。
引入:API 级别 4
Android 的未来版本(Android 2.0.1 之后)将不再在安装或重新验证期间检查或强制执行 maxSdkVersion 属性。但是,在向用户提供可供下载的应用程序时,Google Play 将继续使用该属性作为过滤器。
查看更多,点击这里:use sdk