我已阅读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 使用我的应用程序?
谢谢。
答案 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版本的兼容性,您最好将compileSdkVersion
和targetSdkVersion
设置为相同。