新功能

Qt 应用管理器 6.7

应用程序管理器现在全面支持系统 UI 和应用程序的 QML 工具支持(例如编译)。已经将 application-features 示例 调整以使用这些新功能。为此,QML 对象实现的大部分内容都必须重写。这意味着一些 API 无法向后兼容。我们尽量将更改控制在最小范围内,并在可能的情况下提供兼容性别名,但某些更改不可避免。

最重要的更改是现在 ApplicationManagerWindow 在单进程和多进程应用程序中都是从 QObject 派生的(之前在单进程模式下是从 FocusScope 派生的,在多进程模式下是从 Window 派生的)。虽然在多进程应用程序中有一些正负影响,但这些对单进程或混合模式应用程序有很多好处,现在所有情况下都有一个一致的 API,具有更多常用的功能。

还有一些更改可能会影响您,如果您正在实现插件和自定义 appman 或启动器可执行文件。

  • 可配置功能的定义(例如 AM_MULTI_PROCESS)已被删除,因为相同的功能已经可以通过 Qt 的功能宏(例如 QT_CONFIG(am_multi_process))使用。
  • 由于应用程序管理器支持构建针对较旧版本的 Qt(最低到最新的 LTS 版本),现在您也可以获得类似于 Qt 的特定于应用程序管理器的版本定义(QT_AM_VERSION{,_STR,_MAJOR,_MINOR,_PATCH})。
  • 将模块 Qt::AppManLauncherPrivate 重命名为 Qt::AppManApplicationMainPrivate,将类 LauncherMain 重命名为 ApplicationMain,以更好地反映其目的:该模块最初是 QML 启动器的基础,但后来发展成为启动器以及原生应用程序的通用构建块。

此外,还有一些额外的、值得注意的更改

  • Bubblewrap 容器 插件现在在内核命名空间(共享)方面变得更加灵活。
  • 为多个运行时和容器设置快速启动现在变得更加灵活。
  • 自5.14版以来已弃用的 ApplicationInstaller 单例现在已经被移除。
  • 与之前一样,已经移除了对假数据(dummy-data)的支持。这已经在 Qt 6.3 中的 qmlqmlscene 工具中完成了。
  • 已添加了一个名为 appman-package-server 的新工具,它取代了已弃用的配套项目 Qt 汽车套件部署服务器 的功能。与已弃用的项目一样,这并不是为生产环境中的应用商店后端设计的,而是一个易于使用的工具,供开发人员或 CI 环境测试和验证软件包安装。这还附带了一个新的 示例

Qt 应用程序管理器 6.6

增加了两个新功能

此外,还有一些功能上的变化

  • IntentServerHandler::visibility 属性现在默认为 公共 而不是 私有,就像它在应用清单文件中的客户端意图定义一样工作。
  • 当通过 ApplicationManager::stopApplication() 请求时,QML 应用程序现在将立即退出,如果没有连接到 ApplicationInterface::quit() 信号的处理程序。在此之前,这些应用程序仅在 250msec 超时后才会被强制终止。
  • 快速启动机制现在可以检测损坏的运行时/容器组合,并将它们禁用而不是尝试无限循环中重新启动它们。这可以通过新的配置参数 failedStartLimitfailedStartLimitIntervalSec 进行微调。
  • 为了支持 JavaScript 的 严格 模式,PackageManager 单例的 package 角色必须重命名为 packageObject,因为 package 在严格模式下是一个保留的关键字。在非严格模式下仍然提供旧的 package 角色旧。所有其他单例模型都获得了类似 *Object 的别名角色,以保持 API 的一致性。

Qt 应用程序管理器 6.3

对与包、应用程序和意图字段相关的图标iconnamedescription的API和清单定义已进行清理。现在三者都支持相同的API,其中包的字段可以作为应用程序和意图对象的备用。由于属性name和函数nameApplicationObject中的冲突,以前调用Application.name(language)函数的用户代码现在需要替换为Application.names[language]

Qt应用程序管理器6.2

没有添加新API,但构建系统已从qmake切换到CMake,并最终移除了已弃用的旧ApplicationInterfaceExtension IPC机制。在5.14版本中已经添加了新的意图机制作为对旧IPC的直接替代。

© 2024 Qt公司有限。此处所包含的文档贡献均为各自所有者的版权。所提供的文档受GNU自由文档许可证版本1.3的条款约束,由自由软件基金会发布。Qt及其相关标志为芬兰的Qt公司及其它世界各地的商标。所有其他商标均为各自所有者的财产。