构建和运行会话

会话是启动时启动的第一个产品专用组件。会话组件负责构建产品的用户体验。

启动会话

如需启动会话,请执行以下操作:

  1. 如需在启动时运行会话,您需要使用会话的网址配置产品 build。确定您的会话的组件网址:

    
      fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm
      

    替换以下内容:

    • pkg-name:软件包名称
    • your_session.cm:会话的名称,包括 .cm 扩展名。

    如需了解详情,请参阅 fuchsia-pkg软件包名称

  2. 更新 //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"
      }
    }
    }
    
  3. 运行以下命令可在基础映像中添加 your_session,并设置您在 //local:custom_session 中定义的配置值。

    
    fx set product.board --assembly-override=//local:custom_session
    

    fx list-productsfx list-boards 将显示可在 fx set 命令中使用的商品和开发板的列表。如需详细了解 fx 命令,请参阅 fx 文档

  4. 重新构建并重新铺设设备。

    fx build
    fx ota

    这会导致 session_manager 启动并启动您的会话。

如需详细了解如何构建会话组件,请参阅编写 Hello World 会话

从命令行启动会话

在某些情况下,您可能不希望会话在启动时启动,但仍希望能够从命令行启动会话。session_manager 需要处于运行状态才能启动会话。session_manager 目标可确保 session_manager 本身启动,但不会自动启动会话。

如需从命令行启动会话,请执行以下操作:

  1. 使用 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"
      }
    }
    }
    
  2. 除了会话目标之外,还要在基本依赖项集中添加 session_manager 目标。

    
    fx set product.board --assembly-override=//local:custom_session
    

    fx list-productsfx list-boards 将显示可在 fx set 命令中使用的商品和开发板的列表。如需详细了解 fx 命令,请参阅 fx 文档

  3. 运行以下命令以重新构建并重新铺设设备:

    fx build
    fx ota

    这会导致 session_manager 启动,而不会启动您的会话。

  4. 现在,您可以从命令行启动会话了。

    运行以下命令以启动会话:

    ffx session launch fuchsia-pkg://fuchsia.com/pkg-name#meta/your_session.cm

    如需详细了解 ffx session 命令,请运行 ffx session --help。如需详细了解 ffx,请参阅 ffx documentation