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是唯一的方法吗?很常见 练?
非常感谢!
答案 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,但可能有限。