为app设置较低的targetSdkVersion的含义

时间:2018-06-16 00:01:31

标签: android sdk

我已阅读Android文档here和类似问题here,但对此版本的真实含义有疑问。

我的应用在开发过程中的targetSdkVersion为25,我正在使用 SDK级别27(Android 8.1)手机试用它,没有任何问题。

我的问题是关于广播接收器。在SDK 26之前,您可以在清单文件中注册广播,您将收到您注册的所有广播。但是26改为严重limit这种机制,你不能接收任何隐式广播,如Wifi连接变化。相反,他们建议使用JobScheduler,最短时间为15分钟。这绝对不适用于我的应用程序。

现在我想了解的是,鉴于我没有使用最新SDK(27)的任何功能,使用目标 SDK版本25 发布我的应用有什么影响?< / p>

对于运行 SDK&gt;的手机是否有任何限制? 25 使用我的应用程序?

谢谢。

2 个答案:

答案 0 :(得分:2)

您提到的方案在Android中被称为向前兼容性。您也可以通过其他方式考虑它,您的应用已经在Google Play商店中并且用户更新了他的设备软件。在这种情况下,Android / Google强烈关注当用户更新到新版Android时,针对先前SDK构建的现有应用不会中断。

如果您在应用中使用的API级别25的任何API在API级别27中未被弃用,则没有问题。设置targetSdkVersion : 25完全没问题。

但始终建议使用最新的SDK编译您的应用程序,以便最大限度地降低代码相对于最新SDK的崩溃/警告风险。

基本上你应该遵循的是:

minSdkVersion&lt; = targetSdkVersion&lt; = compileSdkVersion

希望这会对你有所帮助。

答案 1 :(得分:1)

当您在Android版本上运行的应用程序版本高于指定的targetSdkVersion时,可能会导致一些问题。

例如,如果targetSdkVersion小于14,您的应用可能会在用户界面中显示一个选项按钮。

因此,为了获得Android版本的兼容性,您最好将compileSdkVersiontargetSdkVersion设置为相同。