当前位置: 首页 > 知识库问答 >
问题:

更改targetSdkVersion时的应用程序行为

於彬
2023-03-14

如果<code>targetSdkVersion

我的应用程序< code>targetSdkVersion是27版本,我运行在< code>8.0.0[26]设备上。我得到了下面链接中描述的< code > IllegalStateException ,因为我使用了一个对话框< code>Activity。

只有全屏不透明的活动才能请求方向

有两个建议的选项。从AndroidManifest.xml中删除android:在屏幕上定位="肖像"或将Target etSdkVersion更改为26。这两个解决方案都适合我。

但是我的问题是关于将目标SdkVersion更改为26。当我们将目标SdkVersion从27降低到26并且设备操作系统为26时,应用程序的行为将如何变化?由于设备在26中运行并且目标SdkVersion为27,我认为没有应用任何兼容模式。我的理解是,当设备操作系统版本大于目标SdkVersion时,应用了兼容模式。

那么,当我们在这里更改<code>targetSdkVersion</code>时,应用程序的行为会发生怎样的变化?

共有2个答案

澹台衡
2023-03-14

是的,Android文档提到了< code>targetSdkVersion改变时的行为变化。例如,在API 19中,我们被告知Android 4.4的WebView在针对API 19级和更低级别的应用程序中以“古怪模式”运行,并且< code>AlarmManager和< code>ContentResolver对此类应用程序保留了一些旧的行为。我们还被告知Android 6中wifi配置的一个小变化,它检查< code>targetSdkVersion是否为20或更低,如果< code>targetSdkVersion为23或更低,则在Android 7中链接到非NDK平台库的操作会暂时停止。更引人注目的是Android 8的一系列行为变化,其中一些会在给你新行为之前检查< code>targetSdkVersion是否为26或以上。基本上,他们希望你阅读每一个新出现的API的“行为改变”部分。

司马作人
2023-03-14

是的,您的应用程序可能会以不同的方式运行。将 targetSDKVersion 设置为 27 时,将针对 API 27 SDK 编译应用,并与 API 27 库链接。如果较新的 SDK 和库包含应用代码不允许的更改,则你的应用可能会例外。降低 targetSDKVersion 意味着应用是针对早期的 SDK 构建的,你不需要为以后的 SDK 更改修改代码,因此没有例外。但是,您将无法使用更高版本的 SDK 的新功能,并缩短了应用在 Play 商店中的停留时间,因为较旧的 API 最终会被删除。

请记住,targetSDKVersion与设备API支持无关。它是SDK编译版本。如果未使用任何API 27功能,则26的targetSDKVersion将在支持API 27的设备上运行。如果未使用API 27功能,(解决方法是使用新功能的支持库版本,如果已提供,有时新的API功能不会出现在支持库中)。

 类似资料:
  • 问题内容: 我正在使用FXML中描述的核心组件制作JavaFX桌面应用程序,我想为用户提供更改语言的选项。但是,一旦从FXML加载了组件,我还没有找到任何直接的方法来更改语言。 问题是,有什么标准方法可以处理JavaFX中的语言切换。 问题答案: 你可以做这样的事情。正如您在回答中一样,您可能希望将其实现为单例,或者使用DI框架在需要的地方注入单个实例: 现在,您可以执行以下操作: 而且任何时候您

  • 不是一个真正重要的问题,但只是好奇。您可以在运行时更改应用程序图标吗?例如,有一个按钮,当您按下该按钮时,您会在flutter中获得不同的应用程序图标(假设应用程序图标已经“设置”)。Android和iOS。 非常感谢任何意见。谢谢

  • 我发现围绕这个主题有很多问题,但没有一个回答我的问题。我有一个聊天应用程序,要求我在收到消息但尚未看到时更改任务栏中的应用程序图标,并在看到所有消息时再次更改它。 在从VS2013开始运行应用程序时,我成功地做到了这一点,使用显示的表单中的以下代码:

  • 我刚刚完成了我的第一个android应用程序,并生成了一个apk文件在我的手机上测试。然后我意识到我在制作项目时留下了默认的“My Application”名称。所以安装的应用程序名为“我的应用程序”。如何更改应用程序的名称?

  • 我有一个应用程序,我想改变整个应用程序中的文本字体。< br >是否有办法以编程方式或使用清单中的xml来更改应用程序的字体。?