Android Target API - 如何测试我能走多低?
Posted
技术标签:
【中文标题】Android Target API - 如何测试我能走多低?【英文标题】:Android Target API - How to test how low I can go? 【发布时间】:2016-08-25 11:35:32 【问题描述】:我正要发布一个应用程序(至少给朋友和家人)。 我的项目 API 级别是:
minSdkVersion 19
targetSdkVersion 23
当人们即将开始努力时,我经常听到这个问题;
我应该针对什么 API 级别?
我显然已经过时了 - 使用 19 作为minSdkVersion
将适用于我的大多数目标受众。
我想知道的是这个;我不确定我编写的代码是否真的需要 SDK 级别 19。我想我可以在不修改 minSdkVersion
以外的任何内容的情况下覆盖更多的受众。
但是我不确定如何测试它。我可以简单地尝试降低它直到 Gradle 抛出构建错误吗?如果应用程序构建,它是否保证工作?我似乎在任何地方都找不到此信息。
【问题讨论】:
【参考方案1】:嗯,这完全取决于您计划在应用中拥有哪些功能。 你必须具备哪些基本功能(列出一个详尽的清单)才能让你的应用程序做它应该做的事情。
每个 SDK 版本都带有一些附加功能。其中一些带有支持库,即使在一些早期的 API 级别中也可以使用该功能。
如何测试我能走多低?
好吧,至少你不能低于所有依赖项允许的范围。假设您使用的几个库需要至少 11、14 和 17,那么您不能低于 17。这是一个上限。在这里,您需要处理支持库。例如,Fragment 与 11 一起发布,但使用支持库,您可以在姜饼和 froyo 中使用它。所以,上限价值进一步降低!
我如何获得这个上限值?
理想情况下,在开始开发之前。写下您需要哪些功能以及实现它们需要哪些库/类。找到支持它们的最低 api 级别。你有它。现在,由于您已经完成了该应用程序,并且您并不真正打算为尽可能多的设备发布它,因此继续降低 gradle 是您可以做的最省时的事情。
【讨论】:
那我就有答案了;在 Gradle 产生错误之前,继续降低 SDK 级别是安全的。我对此非常怀疑,因为在收到错误uses-sdk:minSdkVersion 8 cannot be smaller than version 9 declared in library [com.google.android.gms:play-services-location:8.4.0]
之前我可能会降到 8 级。毕竟从 9 到 19 是 10 个 API 级别。
它应该可以工作。不过,最好先在 API 级别 9 的设备上测试应用程序。
所以仅仅因为 Gradle 接受了一些较低的 API 级别,并不能保证它的工作原理是一样的?
有时,gradle 运行干净,但应用程序在设备上运行时崩溃。因此,无错误的 gradle 并不总是能保证应用程序正常运行。例如,检查这个问题:***.com/questions/32328806/… 我有一个类似的问题。我的最低 API 级别是 17,我的 gradle 运行良好,但是当我在模拟器上运行应用程序时,它在 kitkat 及以下设备上不断崩溃。但是,从棒棒糖开始,该应用程序运行平稳。以上是关于Android Target API - 如何测试我能走多低?的主要内容,如果未能解决你的问题,请参考以下文章
android:targetSdkVersion更新引发的“惨案”
如何使用 Target API 23 及更高版本通过 GPS 获取用户位置
将图片保存到共享图片文件夹 android target api 29
错误记录Android Studio 编译时 lint 检查报错 ( Error: Google Play requires that apps target API level 29 or )