遠端控制服務提供的 API 可用於查詢及連線至目標上的任意 FIDL 服務。
查詢可以比對系統中任意數量的服務,select
則會輸出所有相符項目,並根據元件拓撲中的位置套用格式。
若是特殊情況下只比對單一服務的查詢,RCS 可以連線至該服務,並將控制代碼傳送給主機,以便 FFX 使用。這就是外掛程式系統使用元件選取器對應建立 FIDL Proxy 的方式。
如要查詢目標的服務,請編寫與所需服務相符的選取器。
選取器語法
許多與元件或服務互動的 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:*
。