命令选择

遥控器服务提供了一个 API,用于查询和连接到目标端的任意 FIDL 服务。

查询可以匹配系统中任意数量的服务,并且 select 将输出所有匹配项,格式取决于它们在组件拓扑中的位置。

如果是与某项服务唯一匹配的查询,RCS 可以连接到该服务并将句柄传递给主机以供 FFX 使用。通过这种方式,插件系统能够使用组件选择器映射创建 FIDL 代理。

如需查询目标上的服务,请编写一个选择器以匹配相关服务。

选择器语法

许多与组件或服务交互的 ffx 命令都将组件选择器作为参数。ffx 中的组件选择器使用的语法与诊断选择器相同。

以下是一些选择器示例,所有这些选择器均选择遥控器服务:

core/remote-control:out:fuchsia.developer.remotecontrol.RemoteControl
core/*:out:fuchsia.developer.remotecontrol.RemoteControl
core/*:expose:fuchsia.developer.remotecontrol.RemoteControl
core/remote-control:out:*
core/*:expose:fuchsia.developer.remotecontrol.R*

选择器细分

选择器包含三个组成部分:<component moniker>:<node selector>:<property selector>。下文对此进行了介绍。通配符 (*) 在选择器的每个片段中都有效。

请思考以下示例: core/remote-control:out:fuchsia.developer.remotecontrol.RemoteControl

  • core/remote-control组件名称。该参数可唯一标识组件拓扑中的路径。

  • out 是节点选择器。在 ffx 中,此值必须是以下值之一,这些值对应于组件清单中使用的路由术语,并在路由术语文档中定义。

    • out:该组件提供的服务。对应于组件清单中的 offer
    • expose:组件公开的服务。对应于组件清单中的 expose
    • in:该组件所依赖的服务。对应于组件清单中的 use
  • fuchsia.developer.remotecontrol.RemoteControl 是属性选择器,它会与节点选择器所匹配的路由目录中的完全限定 FIDL 服务名称进行匹配。

您可以选择省略属性选择器:core/remote-control:out 等同于 core/remote-control:out:*