Android中的新手:minSdkVersion vs compileSdkVersion

时间:2016-10-13 20:21:34

标签: android android-min-sdk

HY,

我对使用android studio进行开发存在一些基本疑虑:

  • minSdkVersion 15:使用此配置我只能使用 来自api 15级且不高的功能。是正确的?对于我 读我不这么认为

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

  • minSdkVersion 15和compileSdkVersion 23:如果我这样配置 使用api 23的api功能,这个应用程序不能在android中运行 例如,api等级为20的设备,对吗?

  • 使用以前的配置,以及api等级为20的android设备 将能够下载并安装该应用程序,因为它的api是 高于minSdkVersion 15但由于它不能运行 有api 23的功能,对吧?

  • 如果我想确保我想使用api级别而不是更高级别 由于之前的问题已经注释,配置minSdkVersion 15和compileSdkVersion 15是唯一的方法吗?很常见 练?

非常感谢!

1 个答案:

答案 0 :(得分:1)

  

minSdkVersion 15:使用此配置,我强制只使用api level 15中的功能而不是更高。是对的吗?

没有。 minSdkVersion为15意味着您不希望您的应用在API级别低于此值的设备上运行。 15对应Android 4.0.3。

  

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

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

  

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_INT的检查,以及为什么SDK有这些...Compat类(试图隐藏很多这些版本差异)。

  

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

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

  

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

没有。同样,当您尝试使用compileSdkVersion可接受但比minSdkVersion更新的SDK功能时,IDE(通常)会对您大喊大叫。

  

是一种常见做法吗?

自2010年左右以来。

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