![](/img/trans.png)
[英]I want update the Application on playstore with changed targetSdkVersion
[英]Application behavior when targetSdkVersion is changed
如果targetSdkVersion
大于设备操作系统版本,并且如果我将targetSdkVersion
降低到设备操作系统版本,那么应用程序的行为是否会有所不同?
我的应用程序targetSdkVersion
为27,并且正在8.0.0[26]
设备上运行。 如下面的链接所述,我得到一个IllegalStateException
,因为我使用的是对话框Activity
。
java.lang.IllegalStateException:仅全屏不透明活动可以请求方向
建议有两个选择。 从AndroidManifest.xml
删除android:screenOrientation="portrait"
或将targetSdkVersion
更改为26。这两种解决方案都对我targetSdkVersion
。
但是我的问题是关于将targetSdkVersion
更改为26。当我们将targetSdkVersion
从27降低到26并且设备OS为26时,应用程序的行为将如何改变? 由于设备运行于26, targetSdkVersion
为27,因此我认为没有应用任何兼容模式。 我的理解是,当设备操作系统版本大于targetSdkVersion
时,将应用兼容模式。
那么,当我们在此处更改targetSdkVersion
时,应用程序行为将如何改变?
可能是的,您的应用程序的行为将有所不同。 当您将targetSDKVersion
设置为27时,您的应用将针对API 27 SDK进行编译,并与API 27库链接。 如果更新的SDK和库包含您的应用程序代码不允许的更改,则您的应用程序可能会例外。 降低targetSDKVersion
意味着该应用程序是根据早期的SDK构建的,并且您不需要为以后的SDK更改而修改代码,因此也不例外。 但是,由于最终会淘汰旧的API,您将无法使用更高版本的SDK的新功能,并缩短了该应用在Play商店中的停留时间。
请记住, targetSDKVersion
与设备API支持无关。 它是SDK编译版本。 targetSDKVersion
为26的设备将运行在支持API 27的设备上。如果您不使用API 27的任何功能,则targetSDKVersion
为27的设备将运行在26 API设备上(解决方法是使用新功能的支持库版本,如果已提供它们,有时支持库中不会出现新的API功能。
是的,Android文档提到了更改targetSdkVersion
时的行为更改。 例如,在API 19中,我们被告知Android 4.4的WebView 在针对API级别18和更低的应用程序中以“怪异模式”运行 ,并且AlarmManager
和ContentResolver
保留了此类应用程序的某些旧行为。 我们也被告知一个在Android的6零钱WifiConfiguration来检查,如果targetSdkVersion
为20或更低,并且在Android的7链接到非NDK平台库临时死缓如果targetSdkVersion
是23或更低。 更具戏剧性的是一系列Android 8行为更改 ,其中一些更改在为您提供新行为之前检查targetSdkVersion
是否为26或更高。 基本上,他们希望您阅读每个出现的新API的“行为更改”部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.