-1

嗨,

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

  • minSdkVersion 15:使用此配置,我强制仅使用 api 级别 15 的功能,而不是更高级别的功能。是正确的?对于我读到的我不这么认为

  • minSdkVersion 15 和 compileSdkVersion 24:使用此配置,我可以使用 api 级别直到级别 24。这是正确的吗?

  • minSdkVersion 15 和 compileSdkVersion 23:如果我使用 api 23 中的 api 功能,则使用此配置,此应用程序将无法在 api 级别 20 的 android 设备中运行,对吧?

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

  • 如果我想确保我想使用 api 级别而不是因为之前评论的问题而更高,那么配置 minSdkVersion 15 和 compileSdkVersion 15 是唯一的方法吗?是一种常见的做法?

非常感谢!

4

1 回答 1

1

minSdkVersion 15:使用此配置,我强制仅使用 api 级别 15 的功能,而不是更高级别的功能。是正确的?

No. A minSdkVersionof 15 表示您不希望您的应用程序在 API 级别低于该级别的设备上运行。15 对应于 Android 4.0.3。

minSdkVersion 15 和 compileSdkVersion 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 Level 19(Android 4.4),如果你盲目地调用一个 Android 5.1(API Level 23)的方法,你会在 Android 4.4 上崩溃。这就是为什么 IDE 会警告你,为什么你经常看到检查BuildConfig.VERSION.SDK_INT,以及为什么 SDK 有这些...Compat类(它们试图隐藏很多这些版本差异)。

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

设备将尝试运行应用程序。它能走多远取决于应用程序的编写情况。同样,您可以创建一个使用更新的 API 功能的应用程序,这些功能可以优雅地降级以在旧设备上运行。这与网站或 Web 应用程序可能希望使用最新的 HTML5 功能但优雅地降级以处理较旧或功能较弱的浏览器的方式没有显着不同。

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

不会。同样,当您尝试使用可接受compileSdkVersion但比minSdkVersion.

是一种常见的做法?

不是从 2010 年左右开始。

FWIW,这里是关于这个主题的文档,可能是有限的。

于 2016-10-13T20:30:46.010 回答