控制器

appman-controller是一个命令行工具,开发者可以在目标设备上使用它来控制应用程序管理器,而无需与其D-Bus接口进行直接通信。

注意:为了使用此工具,应用程序管理器必须连接到会话总线或系统总线;不要使用--dbus none运行它。

如果您在同一系统中运行多个应用程序管理器实例,您需要告诉控制器您正在引用哪个实例。任何系统UI的默认ID为appman,但您可以分配自定义实例ID。此外,还会附加一个唯一的数字到已配置的ID,以便在具有相同ID的实例之间进行区分。

使用list-instances命令可以获取当前所有运行实例的列表。

--instance-id选项允许您选择要访问哪个正在运行的appman实例。这为您提供了3种可能性

  • 您根本不指定--instance-id:如果只有一个appman实例正在运行,则会被指向(忽略其实例ID)。如果有更多实例,则工具会停止并出现错误。
  • 您仅指定基ID而不指定区分数字(例如appman):如果仅有一个使用给定基ID的appman实例正在运行,则会被指向。如果有更多实例,则工具会停止并出现错误。
  • 您指定带有区分数字的完整ID(例如appman-1):只有指定的appman实例会被指向。

以下命令可用

命令参数描述
start-application<application-id>

[文档URL]

在应用程序管理器中使用application-id启动应用程序。
debug-application<debug-wrapper-specification>

<application-id>

[文档URL]

在应用程序管理器中使用application-id启动应用程序,并使用调试包装器。对于更多信息,请参阅调试包装器
stop-application<application-id>停止具有application-id的应用程序。
stop-all-applications(无)停止应用程序管理器内正在运行的所有应用程序。
list-applications(无)在控制台上输出所有可用的应用程序ID,每行一个。
show-application<application-id>以YAML格式显示给定应用程序的当前元数据。或者,使用--json以JSON格式获取元数据。
list-packages(无)在控制台上输出所有可用的包ID,每行一个。
show-package<package-id>以YAML格式显示给定包的当前元数据。或者,使用--json以JSON格式获取元数据。
install-package<package>安装命令行上提供的包。如果指定包文件为-,则工具尝试从stdin读取包。支持以下选项

-a, --acknowledge:自动确认安装,而不是依赖于系统UI的逻辑。

remove-package<package-id>删除指定的 package-id 包。以下选项受支持:

-f, --force:强制删除包。

-k, --keep-documents:保留包的文档文件夹。

list-installation-tasks(无)列出所有活跃的安装任务。
cancel-installation-task<task-id>取消指定的 task-id 活跃安装任务。
list-installation-locations(无)列出所有安装位置。
show-installation-location<installation-location>以 YAML 格式显示指定 installation-location 的详细信息。或者使用 --json 以获得 JSON 格式的位置详细信息。
list-instances(无)列出所有当前运行的程序管理器实例的唯一 实例 ID
inject-intent-request<intent-id>

[参数作为 JSON 字符串]

为测试或调试目的将意图请求注入应用程序管理器。这仅在应用程序管理器以 开发模式 运行时才工作。

参数必须作为单个 JSON 字符串提供 - 确保在从壳运行时正确转义任何引号。

默认情况下,注入的意图请求将具有请求应用程序 ID :sysui:(系统 UI)和没有处理应用程序 ID。您可以使用以下命令行选项更改此行为:

--requesting-application-id 模拟请求应用程序 ID。

--application-id 指定处理应用程序 ID 以避免歧义。

--broadcast 创建广播,而不是定向请求。

请注意,--application-id--broadcast 是互斥的。

对于成功的非广播请求,结果将以 JSON 格式打印到控制台。

appman-controller 自然支持标准的 Unix --help 命令行选项。

© 2024 The Qt Company Ltd. 本文档的贡献版权归各自的所有者所有。所提供的文档是根据 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 及其相关标志是 The Qt Company Ltd. 在芬兰及/或其他国家和地区的商标。所有其他商标均为各自所有者的财产。