建立並執行工作階段

工作階段是指在啟動時啟動的首個產品專屬元件。工作階段元件負責建構產品的使用者體驗。

啟動至工作階段

如要啟動工作階段,請按照下列步驟操作:

  1. 如要讓工作階段在啟動時執行,您必須使用工作階段的網址設定產品版本。找出工作階段的元件網址:

    
      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