遥控器服务提供了一个 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
out
是节点选择器。在ffx
中,此值必须是以下值之一,这些值对应于组件清单中使用的路由术语,并在路由术语文档中定义。out
:该组件提供的服务。对应于组件清单中的offer
。expose
:组件公开的服务。对应于组件清单中的expose
。in
:该组件所依赖的服务。对应于组件清单中的use
。
fuchsia.developer.remotecontrol.RemoteControl
是属性选择器,它会与节点选择器所匹配的路由目录中的完全限定 FIDL 服务名称进行匹配。
您可以选择省略属性选择器:core/remote-control:out
等同于 core/remote-control:out:*
。