Android 新手:minSdkVersion 与 compileSdkVersion

Newbie in Android: minSdkVersion vs compileSdkVersion

嗨,

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

非常感谢!

minSdkVersion 15: with this configuration I am forcing to use only the features from api level 15 and not higher. Is correct?

没有。 minSdkVersion 为 15 表示您不希望您的应用在 运行 级别低于 API 的设备上运行。 15 对应 Android 4.0.3.

minSdkVersion 15 and compileSdkVersion 24: with this configuration I can use api level until level 24. Is this correct?

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

minSdkVersion 15 and compileSdkVersion 23: with this configuration if I use api features from api 23, this application wont work in an android device with api level 20 for example, right?

嗯,API 20 级是第一代 Android 磨损设备的特殊 Android 版本。但是如果我们把它切换到 API Level 19 (Android 4.4),如果你盲目调用 Android 5.1 (API Level 23) 方法,你会在 Android 4.4。这就是为什么 IDE 会警告你,为什么你经常看到 BuildConfig.VERSION.SDK_INT 的检查,以及为什么 SDK 有这些 ...Compat 类(试图隐藏很多这些版本差异)。

With the previous configuration, and android device with api level 20 will be able to download and install the application because its api is higher than the minSdkVersion 15 but will not be able to run because it has features from api 23, right?

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

If I want to make sure that I want to use an api level and not higher because of the previous problems commented, the configuration minSdkVersion 15 and compileSdkVersion 15 is the only way?

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

更新的 SDK 功能时,IDE 会(通常)对您大吼大叫

is a common practice?

自 2010 年左右以来没有。

FWIW,这里是 the documentation on this subject,可能是有限的。