Android:如果我选择 minSdkVersion=4 和 targetSdkVersion="19" 那么我的 android 应用程序将在哪个 sdk 版本中开发?
Android: If I choose minSdkVersion=4 and targetSdkVersion="19" then in which sdk version my android app will be developed?
如果我选择 minSdkVersion=4 和 targetSdkVersion="19" 那么我的 android 应用将使用哪个 sdk 版本待开发?
如果我的应用程序支持 minSDK version=4 那么它为什么会有 SdkVersion=19 的功能?
所以我很困惑如果我选择 minSdkVersion=4 和 targetSdkVersion= 我的 android 应用程序将在哪个版本的 sdk 上创建“19”,如果它支持从第 4 版到第 19 版的所有功能,那么它是如何在第 4 版中运行的,我们没有第 9 版的功能。
谢谢。
<uses-sdk android:minSdkVersion="integer"
android:targetSdkVersion="integer"
android:maxSdkVersion="integer" />
包含在:
<manifest>
描述:
让您通过 API 级别整数表示应用程序与 Android 平台的一个或多个版本的兼容性。应用程序表达的 API 级别将与给定 Android 系统的 API 级别进行比较,这可能因不同的 Android 设备而异。
尽管名称如此,但此元素用于指定 API 级别,而不是 SDK(软件开发工具包)或 Android 平台的版本号。 API 级别始终是单个整数。您不能从其关联的 Android 版本号中得出 API 级别(例如,它与主要版本或主要和次要版本的总和不同)。
另请阅读有关应用程序版本控制的文档。
属性:
android:minSdkVersion
一个整数,指定申请到 运行 所需的最低 API 级别。如果系统的 API 级别低于此属性中指定的值,Android 系统将阻止用户安装该应用程序。您应该始终声明此属性。
警告:如果您不声明此属性,系统将采用默认值“1”,这表示您的应用程序与 Android 的所有版本兼容。如果您的应用程序不兼容所有版本(例如,它使用 API 级别 3 中引入的 APIs)并且您没有声明正确的 minSdkVersion,那么当安装在带有 API 级别小于 3,应用程序将在 运行 时间内尝试访问不可用的 API 时崩溃。因此,一定要在 minSdkVersion 属性中声明适当的 API Level。
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 级别 运行。
在Android1.5、1.6、2.0和2.0.1中,系统在安装应用程序时以及系统更新后重新验证应用程序时会检查此属性的值。无论哪种情况,如果应用的 maxSdkVersion 属性低于系统自身使用的 API Level,那么系统将不允许安装该应用。在系统更新后重新验证的情况下,这实际上会从设备中删除您的应用程序。
为了说明此属性在系统更新后如何影响您的应用程序,请考虑以下示例:
在其清单中声明 maxSdkVersion="5" 的应用程序已在 Google Play 上发布。设备为 运行ning Android 1.6(API 级别 4)的用户下载并安装了该应用程序。几周后,用户会收到 Android 2.0(API 级别 5)的无线系统更新。安装更新后,系统会检查应用程序的 maxSdkVersion 并成功重新验证。应用程序正常运行。然而,一段时间后,设备收到另一个系统更新,这次是 Android 2.0.1(API 级别 6)。更新后,系统无法再重新验证应用程序,因为系统自身的 API 级别 (6) 现在高于应用程序支持的最大值 (5)。系统阻止应用程序对用户可见,实际上是将其从设备中删除。
警告:不建议声明此属性。首先,无需将该属性设置为阻止将您的应用程序部署到 Android 平台新版本发布的方式。按照设计,新版本的平台是完全向后兼容的。如果您的应用程序仅使用标准 APIs 并遵循开发最佳实践,那么您的应用程序应该可以在新版本上正常运行。其次,请注意,在某些情况下,声明该属性可能会导致您的应用程序在系统更新到更高 API 级别后从用户设备中删除。大多数可能安装您的应用程序的设备都会通过无线方式定期接收系统更新,因此您应该在设置此属性之前考虑它们对您的应用程序的影响。
介绍于:API 4 级
Android 的未来版本(超过 Android 2.0.1)将不再在安装或重新验证期间检查或强制执行 maxSdkVersion 属性。 Google Play 将继续使用该属性作为过滤器,但是,当向用户提供可供下载的应用程序时。
首先你要知道这些是什么意思
minSdkVersion 表示您的应用需要支持它的最低 SDK 版本(反过来,指的是 Android 的版本)。
targetSdkVersion 表示您的应用运行的最佳 SDK 版本(Android 您实际指的是该应用的版本)。
但是,您还错过了第三个设置。
compileSdkVersion 就是您要找的东西。当您将 compileSdkVersion 设置为指向有效 SDK 的值(介于 minSdkVersion 和 targetSdkVersion 之间)时,您的应用程序将使用该 SDK 作为首选 SDK 进行编译。
查看任何项目的示例 build.gradle 文件以了解其工作原理。我在下面链接了一个:
https://github.com/googlesamples/android-UniversalMusicPlayer/blob/master/mobile/build.gradle
如果我选择 minSdkVersion=4 和 targetSdkVersion="19" 那么我的 android 应用将使用哪个 sdk 版本待开发?
如果我的应用程序支持 minSDK version=4 那么它为什么会有 SdkVersion=19 的功能?
所以我很困惑如果我选择 minSdkVersion=4 和 targetSdkVersion= 我的 android 应用程序将在哪个版本的 sdk 上创建“19”,如果它支持从第 4 版到第 19 版的所有功能,那么它是如何在第 4 版中运行的,我们没有第 9 版的功能。
谢谢。
<uses-sdk android:minSdkVersion="integer"
android:targetSdkVersion="integer"
android:maxSdkVersion="integer" />
包含在:
<manifest>
描述:
让您通过 API 级别整数表示应用程序与 Android 平台的一个或多个版本的兼容性。应用程序表达的 API 级别将与给定 Android 系统的 API 级别进行比较,这可能因不同的 Android 设备而异。
尽管名称如此,但此元素用于指定 API 级别,而不是 SDK(软件开发工具包)或 Android 平台的版本号。 API 级别始终是单个整数。您不能从其关联的 Android 版本号中得出 API 级别(例如,它与主要版本或主要和次要版本的总和不同)。
另请阅读有关应用程序版本控制的文档。 属性:
android:minSdkVersion
一个整数,指定申请到 运行 所需的最低 API 级别。如果系统的 API 级别低于此属性中指定的值,Android 系统将阻止用户安装该应用程序。您应该始终声明此属性。
警告:如果您不声明此属性,系统将采用默认值“1”,这表示您的应用程序与 Android 的所有版本兼容。如果您的应用程序不兼容所有版本(例如,它使用 API 级别 3 中引入的 APIs)并且您没有声明正确的 minSdkVersion,那么当安装在带有 API 级别小于 3,应用程序将在 运行 时间内尝试访问不可用的 API 时崩溃。因此,一定要在 minSdkVersion 属性中声明适当的 API Level。 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 级别 运行。
在Android1.5、1.6、2.0和2.0.1中,系统在安装应用程序时以及系统更新后重新验证应用程序时会检查此属性的值。无论哪种情况,如果应用的 maxSdkVersion 属性低于系统自身使用的 API Level,那么系统将不允许安装该应用。在系统更新后重新验证的情况下,这实际上会从设备中删除您的应用程序。
为了说明此属性在系统更新后如何影响您的应用程序,请考虑以下示例:
在其清单中声明 maxSdkVersion="5" 的应用程序已在 Google Play 上发布。设备为 运行ning Android 1.6(API 级别 4)的用户下载并安装了该应用程序。几周后,用户会收到 Android 2.0(API 级别 5)的无线系统更新。安装更新后,系统会检查应用程序的 maxSdkVersion 并成功重新验证。应用程序正常运行。然而,一段时间后,设备收到另一个系统更新,这次是 Android 2.0.1(API 级别 6)。更新后,系统无法再重新验证应用程序,因为系统自身的 API 级别 (6) 现在高于应用程序支持的最大值 (5)。系统阻止应用程序对用户可见,实际上是将其从设备中删除。
警告:不建议声明此属性。首先,无需将该属性设置为阻止将您的应用程序部署到 Android 平台新版本发布的方式。按照设计,新版本的平台是完全向后兼容的。如果您的应用程序仅使用标准 APIs 并遵循开发最佳实践,那么您的应用程序应该可以在新版本上正常运行。其次,请注意,在某些情况下,声明该属性可能会导致您的应用程序在系统更新到更高 API 级别后从用户设备中删除。大多数可能安装您的应用程序的设备都会通过无线方式定期接收系统更新,因此您应该在设置此属性之前考虑它们对您的应用程序的影响。
介绍于:API 4 级 Android 的未来版本(超过 Android 2.0.1)将不再在安装或重新验证期间检查或强制执行 maxSdkVersion 属性。 Google Play 将继续使用该属性作为过滤器,但是,当向用户提供可供下载的应用程序时。
首先你要知道这些是什么意思
minSdkVersion 表示您的应用需要支持它的最低 SDK 版本(反过来,指的是 Android 的版本)。 targetSdkVersion 表示您的应用运行的最佳 SDK 版本(Android 您实际指的是该应用的版本)。
但是,您还错过了第三个设置。
compileSdkVersion 就是您要找的东西。当您将 compileSdkVersion 设置为指向有效 SDK 的值(介于 minSdkVersion 和 targetSdkVersion 之间)时,您的应用程序将使用该 SDK 作为首选 SDK 进行编译。
查看任何项目的示例 build.gradle 文件以了解其工作原理。我在下面链接了一个: https://github.com/googlesamples/android-UniversalMusicPlayer/blob/master/mobile/build.gradle