CLI

命令行界面 (CLI) 为 FFX 提供用户体验。负责:

  • 解析用户参数(CLI 参数)
  • 与守护程序通信(必要时启动守护程序)
  • 将解析的参数和请求的 FIDL 代理路由到正确的代码路径以便执行

解析 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"

命令“component run”部分是一个子命令,用于将代码执行路由到“component run”插件。如需了解详情,请参阅路由部分。

与守护程序通信

FFX 使用守护程序在主机上运行,以方便长时间运行的任务。通过在后台的守护程序中运行这些任务,可在收到请求后立即为 CLI 提供最新数据,而无需等待目标设备响应。

当 CLI 需要与守护程序通信时,它会先检查进程是否正在主机上运行。如果守护程序未运行,则 CLI 会生成守护程序进程并等待连接。因此,在首次运行 FFX 时,运行时间可能会长于平均水平。

路由

CLI 采用可扩展的架构。在此架构中,插件提供代码执行功能。插件由 GN 构建规则和 Rust 属性组合定义。插件在设计上会尽可能与 FFX 的内部工作分离。如果您有兴趣开发 FFX 插件,请访问与 FFX 集成页面。