会话是启动时启动的第一个产品专用组件。会话组件负责构建产品的用户体验。
启动会话
如需启动会话,请执行以下操作:
如需在启动时运行会话,您需要使用会话的网址配置产品 build。确定您的会话的组件网址:
fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm
替换以下内容:
- pkg-name:软件包名称
- your_session.cm:会话的名称,包括
.cm
扩展名。
如需了解详情,请参阅
fuchsia-pkg
和软件包名称。更新
//local/BUILD.gn
以添加product_assembly_overrides
。import("//build/assembly/developer_overrides.gni") assembly_developer_overrides("custom_session") { base_packages = [ "//path/to/your/session" ] platform = { session = { enabled = true } } product = { session = { url = "fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm" } } }
运行以下命令可在基础映像中添加
your_session
,并设置您在//local:custom_session
中定义的配置值。fx set product.board --assembly-override=//local:custom_session
fx list-products
和fx list-boards
将显示可在fx set
命令中使用的商品和开发板的列表。如需详细了解fx
命令,请参阅 fx 文档。重新构建并重新铺设设备。
fx build fx ota
这会导致
session_manager
启动并启动您的会话。
如需详细了解如何构建会话组件,请参阅编写 Hello World 会话。
从命令行启动会话
在某些情况下,您可能不希望会话在启动时启动,但仍希望能够从命令行启动会话。session_manager
需要处于运行状态才能启动会话。session_manager
目标可确保 session_manager
本身启动,但不会自动启动会话。
如需从命令行启动会话,请执行以下操作:
使用
autolaunch
将//local/BUILD.gn
更新为product_assembly_overrides
。import("//build/assembly/developer_overrides.gni") assembly_developer_overrides("custom_session") { base_packages = [ "//path/to/your/session" ] platform = { session = { enabled = true autolaunch = false } } product = { session = { url = "fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm" } } }
除了会话目标之外,还要在基本依赖项集中添加
session_manager
目标。fx set product.board --assembly-override=//local:custom_session
fx list-products
和fx list-boards
将显示可在fx set
命令中使用的商品和开发板的列表。如需详细了解fx
命令,请参阅 fx 文档。运行以下命令以重新构建并重新铺设设备:
fx build fx ota
这会导致
session_manager
启动,而不会启动您的会话。现在,您可以从命令行启动会话了。
运行以下命令以启动会话:
ffx session launch fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm
如需详细了解
ffx session
命令,请运行ffx session --help
。如需详细了解ffx
,请参阅ffx documentation
。