命令行界面 (CLI) 为 FFX 提供了用户体验。它负责:
- 解析用户参数(CLI 参数)
- 与守护程序通信(必要时启动守护程序)
- 将已解析的参数和请求的 FIDL 代理路由到正确的代码路径 以便执行
解析 CLI 参数
FFX 使用 Rust crate Argh 管理 CLI 参数定义和解析。由于 Argh 符合 Google 标准, 代码能够结构化为用于 FFX 的分离子工具。每个子命令 可以用子工具表示,例如:
$fx ffx component run /core/ffx-laboratory:hello_world_rust "fuchsia-pkg://fuchsia.com/hello_world_rust#meta/hello_world_rust.cm"
命令“组件运行”的一部分是一个子命令,用于将代码 “组件运行”子工具。有关详情,请参见 路由部分。
与守护程序通信
FFX 使用守护程序在主机上运行,以协助长时间运行的任务。修改者 在后台守护程序中运行这些任务时, 立即将其提供给 CLI,而不是等待目标 设备做出响应。
当 CLI 需要与守护程序通信时,它首先会检查 表示进程在主机上运行如果守护程序未运行,CLI 生成守护进程并等待连接。因此可以看出, 比首次运行 FFX 时的平均运行时间长。
路由
CLI 是一个可扩展架构。在此架构中 子工具提供代码执行功能。子工具由 GN 构建规则和 Rust 属性子工具的设计方式与 FFX 的内部运作方式。如果您想开发 FFX 的子工具,请访问 与 FFX 集成。