CLI

指令列介面 (CLI) 提供 FFX 的使用者體驗。負責下列事項:

  • 剖析使用者參數 (CLI 參數)
  • 與 Daemon 通訊 (視需要啟動)
  • 將剖析的參數和要求的 FIDL Proxy 轉送至適當的程式碼路徑來執行

剖析 CLI 參數

FFX 使用 Rust Crate Argh 來管理 CLI 參數定義和剖析。Argh 符合 Google 標準,因此能將程式碼結構化為 FFX 的分離外掛程式。FFX 呼叫中的每個子指令都能以外掛程式表示,例如:

$fx ffx component run /core/ffx-laboratory:hello_world_rust "fuchsia-pkg://fuchsia.com/hello_world_rust#meta/hello_world_rust.cm"

指令「元件 run」是子指令,可將程式碼執行內容轉送至「元件 run」外掛程式。詳情請參閱轉送一節。

與 Daemon 通訊

FFX 使用 Daemon 在主機上執行,協助長時間執行的工作。透過在背景的 Daemon 中執行這些工作,就能在收到要求後立即向 CLI 提供最新資料,不必等待目標裝置回應。

當 CLI 需要與 Daemon 通訊時,首先會檢查該程序是否在主機上執行。如果 Daemon 未執行,CLI 會產生 Daemon 程序,並等待連線。因此,在 FFX 初始執行上,可能會發現比平均執行時間長。

轉送

CLI 旨在提供可擴充的架構。在這個架構中,外掛程式會提供程式碼執行作業。外掛程式由 GN 建構規則和 Rust 屬性的混合定義。外掛程式的設計應盡可能與 FFX 的內部作業分離。如果您想要瞭解如何開發 FFX 的外掛程式,請造訪整合 FFX 頁面。