清单定义(5.14之前)
概述
应用程序清单或元数据文件,info.yaml
,是一个遵循相同规则的YAML文件,与应用程序管理器中使用的所有其他YAML文件相同。
虽然应用程序管理器可以支持其他文件格式,例如XML,但目前实现的唯一元数据加载器基于YAML。
动态安装的应用程序由一个单info.yaml
文件描述,位于其根目录中。作为系统UI一部分分发的内置应用程序可以选择具有多个别名。此行为类似于Microsoft Windows快捷方式,您可以使用不同的图标、名称和命令行参数启动相同的程序。这些文件必须在与应用程序基本info.yaml
文件相同的位置,并需要命名为info-<descriptive name>.yaml
。有关这些别名清单的描述,请参阅以下内容。
基本清单
这是一个完整的info.yaml
文件示例,同时展示了您如何在YAML 1.1文档中混合经典YAML和JSON样式
%YAML 1.1 --- formatVersion: 1 formatType: am-application --- id: 'com.pelagicore.radio' icon: 'FM-Radio.png' name: en: "FM Radio" de: "UKW-Rundfunk" code: "radio.qml" runtime: qml runtimeParameters: { quitTime: 100 } documentUrl: "fm" mimeTypes: [ "x-scheme-handler/x-radio" ] capabilities: - cameraAccess - locationAccess version: '1.2.1-alpha3'
info.yaml
文件头部(第一个YAML文档)中的字段如下
字段名称 | 类型 | 描述 |
---|---|---|
formatVersion | int | 必需。目前始终为1 。 |
formatType | 字符串 | 必需。始终为am-application 。 |
info.yaml
清单数据(第二个YAML文档)中的字段如下
字段名称 | 类型 | 描述 |
---|---|---|
id | 字符串 | 一个表示为字符串且长度不超过150个字符的应用程序的唯一ID。此ID可用于在ApplicationModel QML类型中查找有关应用程序的信息。由于此ID在文件系统中使用,只能允许使用打印ASCII字符的子集:0-9 ,a-z ,A-Z 以及任何!#$%&'`^~_+-=.,;()[]{} 字符。如果您正在构建包含第三方应用程序的较大系统,使用反向DNS表示法为应用程序ID是一种良好的习惯,这有助于在长期跟踪您的ID。助手函数PackageManager::validateDnsName可以帮助您从中控UI强制执行此策略。 |
icon | 字符串 | 必需。图标的文件名。文件必须在与info.yaml 相同的目录中,并且可以是Qt支持的任何图像格式。 |
name | 对象 | 必需。一个包含语言(string )到名称(string )映射的对象。语言标识符需要符合 POSIX 地区设置的规范。更多信息,请参阅 QLocale。至少需要一个映射。但是,提供 English(en )映射是一个好的实践,作为备选方案。 |
代码 | 字符串 | 必需。主要可执行文件 - 由 runtime 解析。 |
类别 | list<string> | 应与应用程序关联的类别名称列表。这主要用于自动上传应用到应用商店以及在系统中显示固定集合的类别。 |
runtime | 字符串 | 必需。一个运行时 ID,引用运行时插件。目前,支持 qml 、qml-inprocess 和 native 。对于 QML 运行时, 对于本地运行时, 注意:应用程序应被视为有效的 Wayland 客户端。 |
runtimeParameters | object | 此对象可以包含 runtime 特定参数 - 这些参数由应用程序管理器直接下传到运行时插件。有关完整列表,请参阅 运行时参数。 |
environmentVariables | object | 已弃用;已移动到 运行时参数。 |
documentUrl | 字符串 | 作为可选的默认文档 URL,如果应用程序未指定文档 URL 则使用(请参阅 ApplicationManager::startApplication)。 |
supportsApplicationInterface | bool | 如果设置为 true ,则应用程序必须实现 ApplicationInterface API。在这种情况下,应用程序管理器将等待应用程序连接到 P2P D-Bus 上的 ApplicationInterface,直到将其标记为“正在运行”。对于支持快速启动的运行时(如 qml 运行时),这不是必需的,因为它默认为 true 。否则,默认为 false 。 |
mimeTypes | list<string> | 一个可选的 MIME 类型数组,应用程序可以处理。应用程序管理器支持经典文件名或内容到 MIME 类型的匹配,以及 URL 方案的匹配。有关更多信息,请参阅 ApplicationManager::openUrl。 |
capabilities | list<string> | 一个可选的平台特定特殊访问权限列表,用于应用程序。将来,中间件可以通过应用程序管理器查询这些功能并验证它们。 注意:应用程序管理器本身不会附着任何意义到此字符串列表。相反,应用程序管理器在(数字签名的)应用程序清单和(客户特定的)中间件之间充当受托人;此中间件可能需要有关其与应用程序通信的更多信息和应用程序管理器可以作为受信任的源应用程序 能力。 |
版本 | 字符串 | 应用程序版本作为字符串。 |
opengl | object | 您可以选择指定所需的 OpenGL 版本和/或配置文件。更多信息,请参阅 OpenGL 规范。 注意:在主应用程序管理器配置中指定与默认OpenGL配置不同的OpenGL配置,将禁用对此应用程序使用快速启动机制。 |
applicationProperties | object | 将用户定义的属性(键/值对)导出到应用程序和系统UI中。实际属性必须列在 private 和 protected 访问控制标签下;其他属性被忽略。这些属性作为 ApplicationManager::application() 向系统UI暴露,作为 ApplicationInterface::applicationProperties 向QML应用程序暴露。
虽然属性被转换为 QVariantMaps,但应用程序管理器不会以任何方式解释它们。 |
logging/dlt/id | 字符串 | 如果提供了此值,则用作汽车DLT应用程序ID。ID限制为四个字符,额外的字符将被丢弃。如果没有提供ID,则默认为'A'后跟三位应用程序号码。 注意:对于QML运行时,ID从一开始就为"PCLQ",直到按描述更改它。 |
logging/dlt/description | 字符串 | 如果提供了此值,则用作汽车DLT应用程序描述,允许通过更详细的描述来增强简短的DLT应用程序ID。如果没有明确提供,则使用默认描述。 |
importance | real | 已弃用。请使用 applicationProperties 代替。 |
backgroundMode | 字符串 | 已弃用。请使用 applicationProperties 代替。 |
runtimeParameters
对运行时特定,因此下表还有一个额外的列,指出哪个配置选项适用于哪个运行时
名称 | 运行时 | 类型 | 描述 |
---|---|---|---|
loadDummyData | qml, qml-in-process | bool | 已弃用。自动为应用程序加载模拟数据,使用与Qt的 qmlscene 和 qml 工具相同的算法。默认情况下不加载模拟数据。 |
importPaths | qml, qml-in-process | list<string> | 要添加到QML引擎导入路径的路径列表。此参数的使用相当于为从命令行启动的程序设置 QML2_IMPORT_PATH 。 |
resources | qml, qml-in-process | list<string> | 接受Qt资源文件(.rcc)或已编译资源的库的列表,并在应用程序进程中注册它们。可以使用":"或"qrc://"文件路径前缀访问资源。 |
pluginPaths | qml, qml-in-process | list<string> | 要添加到Qt库路径的路径列表,用于查找插件。此参数的使用相当于为从命令行启动的程序设置 QT_PLUGIN_PATH 。 |
arguments | native | list<string> | 当启动应用程序的可执行文件时使用的命令行参数列表。 |
environmentVariables | native, qml | object | 一个简单的字符串到字符串映射,描述在生成运行时进程时应设置的的环境变量。您可以通过将其设置为 null 来从默认环境变量中删除一个变量。注意:此功能仅适用于开发和演示,因为它具有以下限制和副作用
|
别名Manifests
这是Basic Manifest中info.yaml
文件的别名Manifest的一个示例,info-am.yaml
。这样,您就可以运行单个调谐应用程序 radio.qml
,该程序可以通过应用启动器中的两个不同的条目启动,这两个条目有不同的文本和图标。
%YAML 1.1 --- formatVersion: 1 formatType: am-application-alias --- aliasId: 'com.pelagicore.radio@am' icon: 'AM-Radio.png' name: en: "AM Radio" de: "Langwellenrundfunk" documentUrl: "x-radio://am"
如果您在应用程序已经运行的情况下启动别名,它不会启动另一个实例。只有当设置了 documentUrl
,当前运行的实例才会收到包含通过 documentUrl
参数设置的相应字符串的 ApplicationInterface::openDocument 信号。然后,应用可以根据此自动更改UI界面。别名实例需要与应用程序的 info.yaml
文件在同一个文件夹中,并且必须命名为 info-<描述性名称>.yaml
。
info-am.yaml
文件头部(第一个YAML文档)的字段含义如下:
字段名称 | 类型 | 描述 |
---|---|---|
formatVersion | int | 必需。目前始终为1 。 |
formatType | 字符串 | 必需。始终为 am-application-alias 。 |
别名实例数据(第二个YAML文档)字段的意义如下:
© 2024 The Qt Company Ltd. 本文件中的文档贡献受各自所有者的版权保护。提供的文档受自由软件基金会发布的 GNU自由文档许可证1.3版本 的条款约束。Qt及其相关标志为芬兰以及世界其他地区的The Qt Company Ltd.的商标。所有其他商标均为其各自所有者的财产。