如果我选择 minSdkVersion = 4 和 targetSdkVersion =" 19" 那么我的Android应用程序将在哪个sdk版本中开发?
好像我的应用程序支持minSDK版本= 4那么为什么它将具有SdkVersion = 19的功能?
所以如果我选择 minSdkVersion = 4 和 targetSdkVersion =&#34; 19&#34; <我很困惑我的android应用程序将在哪个版本的sdk上生成/ strong>,如果它支持从版本4到19开始的所有功能,那么它在版本4中的表现如何,我们没有版本9的功能。
感谢。
答案 0 :(得分:0)
<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系统将阻止用户安装应用程序。您应该始终声明此属性。
警告:如果您未声明此属性,系统将采用默认值&#34; 1&#34;,表示您的应用程序与所有Android版本兼容。如果您的应用程序与所有版本不兼容(例如,它使用API级别3中引入的API)并且您尚未声明正确的minSdkVersion,那么当安装在API级别小于3的系统上时,应用程序将在崩溃期间崩溃尝试访问不可用的API时的运行时。因此,请务必在minSdkVersion属性中声明相应的API级别。 机器人:targetSdkVersion 一个整数,指定应用程序所针对的API级别。如果未设置,则默认值等于给予minSdkVersion的值。
此属性通知系统您已针对目标版本进行了测试,系统不应启用任何兼容性行为来维持应用程序与目标版本的向前兼容性。该应用程序仍然可以在旧版本上运行(直到minSdkVersion)。
随着Android随着每个新版本的发展,一些行为甚至外观都可能会发生变化。但是,如果平台的API级别高于应用程序的targetSdkVersion声明的版本,则系统可能会启用兼容性行为,以确保您的应用程序继续以您期望的方式工作。您可以通过指定targetSdkVersion以匹配其运行的平台的API级别来禁用此类兼容性行为。例如,将此值设置为&#34; 11&#34;或更高版本允许系统在Android 3.0或更高版本上运行时将新的默认主题(Holo)应用于您的应用程序,并在大屏幕上运行时禁用屏幕兼容模式(因为支持API级别11隐式支持更大的屏幕)。
系统可根据您为此属性设置的值启用许多兼容性行为。其中一些行为由Build.VERSION_CODES引用中的相应平台版本描述。
要在每个Android版本中维护您的应用程序,您应该增加此属性的值以匹配最新的API级别,然后在相应的平台版本上彻底测试您的应用程序。
介绍:API Level 4 机器人:maxSdkVersion 一个整数,指定应用程序运行的最大API级别。
在Android 1.5,1.6,2.0和2.0.1中,系统会在安装应用程序时以及在系统更新后重新验证应用程序时检查此属性的值。在任何一种情况下,如果应用程序的maxSdkVersion属性低于系统本身使用的API级别,则系统将不允许安装应用程序。在系统更新后重新验证的情况下,这会有效地从设备中删除您的应用程序。
为了说明此属性在系统更新后如何影响您的应用程序,请考虑以下示例:
申报声明maxSdkVersion =&#34; 5&#34;在其清单中发布在Google Play上。设备运行Android 1.6(API级别4)的用户下载并安装应用程序。几周后,用户会收到Android 2.0(API级别5)的无线系统更新。安装更新后,系统会检查应用程序的maxSdkVersion并成功重新验证它。该应用程序正常运行。但是,一段时间后,设备会收到另一个系统更新,这次是针对Android 2.0.1(API Level 6)。在更新之后,系统不再能够重新验证应用程序,因为系统自身的API级别(6)现在高于应用程序(5)支持的最大值。系统会阻止应用程序对用户可见,实际上将其从设备中删除。
警告:不建议声明此属性。首先,没有必要将属性设置为阻止将应用程序部署到Android平台的新版本上的方法。通过设计,该平台的新版本完全向后兼容。您的应用程序应该在新版本上正常运行,前提是它只使用标准API并遵循开发最佳实践。其次,请注意,在某些情况下,声明属性可能会导致您的应用程序被用户删除。系统更新到更高API级别后的设备。大多数可能安装了您的应用程序的设备将通过无线方式定期进行系统更新,因此在设置此属性之前,您应该考虑它们对您的应用程序的影响。
介绍:API Level 4 未来版本的Android(Android 2.0.1以外版本)将不再在安装或重新验证期间检查或强制执行maxSdkVersion属性。但是,Google Play会在向用户展示可供下载的应用程序时继续使用该属性作为过滤器。
答案 1 :(得分:0)
首先,你需要知道这些意思。
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