Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android新手:minSdkVersion vs compileSdkVersion_Android_Android Min Sdk - Fatal编程技术网

Android新手:minSdkVersion vs compileSdkVersion

Android新手:minSdkVersion vs compileSdkVersion,android,android-min-sdk,Android,Android Min Sdk,Hy 对于使用android studio进行开发,我有一些基本的疑问: MinsdkVersion15:使用此配置,我只能强制使用 api级别为15而非更高的功能。对吗?因为我 我不这么认为 MinsdkVersion15和CompilesdkVersion24:使用此配置I 可以使用api级别直到级别24。这是正确的吗 MinSDK版本15和CompileSDK版本23:如果我 使用api 23中的api功能,此应用程序在android中无法工作 比如api级别为20的设备,对吗 使用之前

Hy

对于使用android studio进行开发,我有一些基本的疑问:

  • MinsdkVersion15:使用此配置,我只能强制使用 api级别为15而非更高的功能。对吗?因为我 我不这么认为

  • MinsdkVersion15和CompilesdkVersion24:使用此配置I 可以使用api级别直到级别24。这是正确的吗

  • MinSDK版本15和CompileSDK版本23:如果我 使用api 23中的api功能,此应用程序在android中无法工作 比如api级别为20的设备,对吗

  • 使用之前的配置,以及api级别为20的android设备 将能够下载并安装应用程序,因为它的api是 高于MinSDK版本15,但将无法运行,因为 有api 23的功能,对吗

  • 如果我想确保我想使用api级别而不是更高级别 由于前面提到的问题,配置MinSDK版本15和CompileSDK版本15是唯一的方法?这是一个常见的问题 练习

非常感谢

MinsdkVersion15:在这个配置中,我强制只使用api级别15的特性,而不是更高的特性。对吗

不可以。如果
minSdkVersion
为15,则表示您不希望应用程序在API级别低于该级别的设备上运行。15对应于安卓4.0.3

MinSDK版本15和CompileSDK版本24:使用此配置,我可以使用api级别直到级别24。这是正确的吗

您的IDE将允许您使用API级别24中的类、方法、字段等编写代码。IDE还应该警告您,使用API级别15之后添加到SDK的类、方法、字段等可能会导致运行时错误

minSdkVersion 15和compileSdkVersion 23:如果我使用api 23的api功能,这个应用程序将无法在api级别为20的android设备上工作,对吗

API Level 20是针对第一代Android Wear设备的特殊Android版本。但如果我们将其切换到API级别19(Android 4.4),如果您盲目调用Android 5.1(API级别23)方法,您将在Android 4.4上崩溃。这就是为什么IDE会警告您这一点,为什么您经常看到对
BuildConfig.VERSION.SDK\u INT
的检查,以及为什么SDK有这些
…Compat
类(它们试图隐藏许多版本差异)

使用之前的配置,api级别为20的android设备将能够下载并安装该应用程序,因为其api高于minSdkVersion 15,但无法运行,因为它具有api 23的功能,对吗

设备将尝试运行应用程序。它能走多远取决于应用程序写得有多好。同样,您可以创建一个应用程序,该应用程序使用较新的API功能,可以优雅地降级以在较旧的设备上运行。这与Web站点或Web应用程序可能希望使用最新的HTML5功能的方式没有显著区别,但在处理较旧或功能较低的浏览器时,会优雅地降级

如果我想确保我想使用api级别,而不是因为前面的问题而使用更高级别的api,那么配置minSdkVersion 15和compileSdkVersion 15是唯一的方法吗

不会。同样,当您尝试使用SDK功能时,IDE(通常)会对您大喊大叫,这些功能对于
编译器DKversion
来说是可以接受的,但是比
minSdkVersion
更新

这是一种普遍的做法吗

从2010年左右就没有了


FWIW,这里是有限的。

因此,我的理解是,如果你检查应用程序运行的android版本,你可以编写比api 15更高的代码,如果不是,你不应用这些代码,但是如果你不写这些检查,使用的api级别比android版本更高,应用程序将100%崩溃,对吗?@user3254515:如果你执行的代码依赖于比设备运行的更高版本的Android,你肯定会崩溃。好的,明白了。但是,如果我想有一个干净的代码,而不是对应用程序运行的android版本进行全面检查,那么使用minSdkVersion==compileSdkVersion@user3254515:如果你是应用程序的唯一用户,这是有意义的。否则,请记住,您的用户并不关心您是否拥有“干净的代码”。他们确实关心你的应用程序做他们想做的事情。对于较新设备的用户,他们可能希望您的应用程序利用较新版本Android的功能。但是,您的“minSdkVersion==compileSdkVersion”方法意味着您支持这些较新功能的唯一方法是只支持较新的设备。这反过来又限制了你的应用程序可能的用户数量。当然,谢谢。但前几天开发了一款应用程序,并选择了minimun sdk级别15,该公司表示:“较低的api级别针对更多的设备,但可用功能较少”。因此,正如您所说,所选择的最低级别实际上并不限制您使用较新的api,因此始终检查版本以避免崩溃。为什么安卓工作室会这么说?