我读过Android文档这里和类似的问题这里,但是有一个关于这个版本的现实意义的问题。
我的应用程序在开发过程中有一个25的targetSdkVersion,我正在试用SDK 27级(Android8.1)手机,没有问题。
我的问题是关于广播接收机的。以前的SDK 26,您可以在清单文件中注册广播,并且您将收到您注册的所有广播。但是,26改变了这一点,以严格地限制这种机制,您不能接收任何隐式广播,如Wifi连接更改。相反,他们建议使用JobScheduler,最短时间为15分钟。这对我的应用来说绝对行不通。
现在我想了解的是,如果我不使用最新的 (27)的任何特性,用目标的25版本发布我的应用程序意味着什么?
运行SDK > 25的手机使用我的应用程序会有什么限制吗?
谢谢。
发布于 2018-06-18 04:51:39
您所提到的场景被称为安卓中的转发兼容性。你也可以这样想,你的应用程序已经在Google商店里了,用户更新了他的设备软件。在这种情况下,Android/Google强烈强调,当用户更新到Android的新版本时,现有的基于SDK的应用程序不应该中断。
如果您在应用程序中使用的任何API级别25的API在API级别27中没有被废弃,那么就没有问题了。设置targetSdkVersion : 25是完全正确的。
但是,我们总是建议使用最新可用的SDK编译应用程序,这样就可以将代码崩溃/警告的风险降到最低。
所以基本上,你应该遵循的是:
minSdkVersion <= targetSdkVersion <= compileSdkVersion
希望这能帮到你。
发布于 2018-06-18 09:29:53
当您在比targetSdkVersion指定的更高版本的on上运行应用程序时,这可能会导致一些问题。
例如,如果targetSdkVersion小于14,应用程序可能会在UI中获得一个选项按钮。
因此,要使android版本具有兼容性,您最好将compileSdkVersion和targetSdkVersion设置为相同。
https://stackoverflow.com/questions/50883967
复制相似问题