清单定义(5.14之前)
概述
包清单或元数据文件info.yaml
遵循与其他所有在应用管理器中使用的YAML文件相同的规则的YAML文件。
虽然应用管理器可以支持其他文件格式,例如XML,但当前唯一实现的元数据加载器是基于YAML的。
动态安装的应用由单个info.yaml
文件描述,位于其根目录中。作为系统UI的一部分分发的内置应用可以可选地有多个别名。这种行为类似于Microsoft Windows快捷方式,您可以使用不同的图标、名称和命令行参数启动相同的程序。这些文件必须与应用的基本info.yaml
文件相同的文件夹中,并且需要命名为info-<描述性名称>.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: { loadDummyData: true } documentUrl: "fm" mimeTypes: [ "x-scheme-handler/x-radio" ] capabilities: - cameraAccess - locationAccess version: '1.2.1-alpha3'
info.yaml
文件头部(第一个YAML文档)中的字段如下
字段名称 | 类型 | 描述 |
---|---|---|
formatVersion | int | 必需。当前始终为1 。 |
formatType | string | 必需。始终为am-application 。 |
info.yaml
清单数据(第二个YAML文档)中的字段如下
字段名称 | 类型 | 描述 |
---|---|---|
id | string | 一个应用的唯一标识符,表示为最大长度为150个字符的字符串。此ID可用于在ApplicationModel QML类型中查找有关应用的信息。由于此ID用于文件系统,因此只能允许打印ASCII字符子集:0-9 、a-z 、A-Z 以及任何!#$%&.shortnameAP&'`^~_+-=.,;()[]{} 。如果您正在构建一个包含第三方应用的大系统,则使用反向DNS命名法对于应用ID是一种好做法,这有助于在长时间运行中跟踪您的ID。辅助函数ApplicationInstaller::validateDnsName可以帮助您在System UI中实施此策略。 |
icon | string | 必需。图标的文件名。该文件必须位于与info.yaml 相同的目录中,并且可以是Qt支持的任何图像格式。 |
name | object | 必需。一个对象,包含语言(string )到显示名称(string )的映射。语言标识符需要遵循标准POSIX区域定义。有关更多信息,请参阅QLocale。至少需要存在一个映射。然而,提供英语(en )映射作为后备是一种好做法。 |
code | string | 必需。主可执行文件 - 由 runtime 解释。 |
categories | array<string> | 应用程序应关联的一组类别名称列表。这主要用于自动化应用市场上传以及在系统UI中显示为固定的类别集。 |
runtime | string | 必需. 运行时ID,引用运行时插件。目前支持qml 、qml-inprocess 和native 。对于QML运行时, 对于原生运行时, 注意:预期应用程序是一个有效的Wayland客户端。 |
runtimeParameters | object | 此对象可以包含runtime 特定参数——这些参数由应用管理器直接传递给运行时插件。有关完整的详细信息,请参阅运行时参数。 |
environmentVariables | object | 已弃用;移动到运行时参数。 |
documentUrl | string | 如果启动应用程序时未指定文档URL,则可选的默认文档URL。有关详细信息,请参阅ApplicationManager::startApplication。 |
supportsApplicationInterface | bool | 如果设置为true ,则应用程序必须实现ApplicationInterface API。在这种情况下,应用管理器将在将应用程序标记为'运行'之前,等待应用程序通过P2P D-Bus连接到ApplicationInterface。对于支持快速启动的运行时(如qml 运行时),这不是必需的,因为它默认为true 。否则默认为false 。 |
mimeTypes | array<string> | 可选的MIME类型数组,应用程序可以处理。应用管理器支持经典文件名或内容与MIME类型的匹配,以及URL方案的匹配。有关更多信息,请参阅ApplicationManager::openUrl。 |
capabilities | array<string> | 应用程序的平台特定特殊访问权限列表,可选项。以后,中间件可以通过应用管理器查询这些功能并进行验证。 注意:应用管理器本身不会给此字符串列表赋予任何意义。相反,应用管理器作为(数字签名)应用清单和(客户特定)中间件之间的管理者;这种中间件可能需要更多关于其通信的应用程序的信息,而应用管理器可以作为应用功能的受信任来源。 |
version | string | 应用程序版本,以字符串形式表示。 |
opengl | object | 让您可以指定所需的OpenGL版本和/或配置文件。有关更多信息,请参阅OpenGL规范。 注意:指定与主应用管理器配置中默认OpenGL配置不同的OpenGL配置,将禁用此应用程序快速启动机制的使用。 |
applicationProperties | object | 将用户定义的属性(键/值对)暴露给应用程序和系统UI。实际属性必须在private 和protected 访问控制标签下列出;其他属性将被忽略。这些属性在系统UI中作为ApplicationManager::application()暴露,在QML应用程序中作为ApplicationInterface::applicationProperties暴露。
虽然在转换成QVariantMaps时将属性转换,但应用管理器不会以任何方式解释它们。 |
logging/dlt/id | string | 如果提供了,此值用作汽车 DLT 应用程序 ID。ID 限制为四个字符,其他字符将被丢弃。如果没有提供 ID,则默认为以 'A' 开头,后跟三位应用程序编号。 注意:对于 QML 运行时,ID 从应用程序过程的开始即是 "PCLQ",直到您按照描述更改它。 |
logging/dlt/description | string | 如果提供,它将用作汽车 DLT 应用程序描述,允许通过更详细的描述来增强 DLT 应用程序 ID。如果没有显式提供,则使用默认描述。 |
重要性 | 真实 | 已过时。请使用 applicationProperties 替代。 |
后台模式 | string | 已过时。请使用 applicationProperties 替代。 |
运行时参数是特定于运行时的,因此下面的表中还有一个额外的列,指定配置选项应用于哪个运行时。
名称 | 运行时 | 类型 | 描述 |
---|---|---|---|
loadDummyData | qml, qml-in-process | bool | 自动为应用程序加载dummy数据,使用与 Qt 的 qmlscene 和 qml 工具相同的算法。默认情况下不加载dummy数据。 |
importPaths | qml, qml-in-process | array<string> | 要添加到 QML 引擎的导入路径中的路径列表。此参数的使用等同于从命令行启动程序时设置 QML2_IMPORT_PATH 。 |
resources | qml, qml-in-process | array<string> | 取一组 Qt 资源 文件 (.rcc) 或具有内部资源的库,并在应用程序进程中将其注册。可以使用 ":" 或 "qrc://" 文件路径前缀访问资源。 |
pluginPaths | qml, qml-in-process | array<string> | 要添加到 Qt 库路径中的路径列表,用于查找插件。此参数的使用等同于从命令行启动程序时设置 QT_PLUGIN_PATH 。 |
arguments | native | array<string> | 当启动应用程序的可执行文件时要使用的命令行参数列表。 |
environmentVariables | native, qml | object | 这是一个简单的字符串到字符串映射,描述在启动运行时进程时应设置的环 境变量。您可以将默认环境变量设置为 null 以删除该变量。注意:此功能仅适用于开发和演示,因为它有以下限制和副作用。
|
别名清单
这是一个别名清单的示例,info-am.yaml
,用于 基本清单 中的 info.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 | string | 必需。总是 am-application-alias 。 |
别名清单数据(第二个 YAML 文档)中字段的含义如下:
©2019 Luxoft Sweden AB。本文档中包含的贡献是各自所有者的版权。提供的文档根据自由软件基金会发布的GNU自由文档许可证1.3版本的条款进行许可。Qt及其相关徽标是芬兰Qt公司以及在全世界其他国家的商标。所有其他商标均为其各自所有者的财产。