元件 ID

元件架構會使用不同的 ID 來描述元件。本節將說明下列元件 ID 及其用途的關係:

  • 元件網址:將元件識別為要由元件解析器擷取的資源。
  • Monikers:識別元件執行個體樹狀結構中的特定元件執行個體。

元件網址

元件架構使用元件解析器,將元件網址解析成元件宣告

用量

元件網址的主要用途是識別元件執行個體定義中的元件,做為子項宣告的一部分:

{
    children: [
        {
            name: "logger",
            url: "fuchsia-pkg://fuchsia.com/logger#logger.cm",
        },
    ],
}

上述範例將 logger 元件宣告為絕對資源,並託管於套件存放區代管的 Fuchsia 套件

元件架構也支援相對網址。

如要識別內建於父項元件中之元件的元件,請只指定網址片段:

{
    children: [
        {
            name: "child",
            url: "#meta/child.cm",
        }
    ],
}

如要識別父項元件套件的「子套件」中的元件,請加入子套件名稱,後面加上元件資訊清單路徑 (透過網址片段):

{
    children: [
        {
            name: "child",
            url: "child#meta/default.cm",
        }
    ],
}

測試中常會使用相對元件網址,最佳做法是將正式版元件重新封裝到測試專用的套件中,藉此促進「固體」

如要進一步瞭解元件網址語法,請參閱元件網址參考資料

莫尼克爾

其遵循與 fuchsia.io 路徑類似的語意。

每個路徑元素都是由父項元件指派給子項的名稱,最終識別與最後路徑元素對應的「分葉元件」。

莫尼克器始終是相對於特定項目:父項元件或整個元件拓撲的根層級。

用量

部分元件範例:

  • .:自創路徑名稱。舉例來說,根元件 (由 component_manager 啟動的第一個元件) 可以使用此路徑名稱參照。其他用途則取決於內容。
  • alice/carol/sandy:專門將元件執行個體「sandy」識別為「alice」和「carol」的子系。
  • alice/support:dan:專門將元件執行個體「dan」視為「support」集合中來自「alice」的元素。

系統會將 Monikers 傳遞至 ffx component explore 等開發人員工具,以便識別目標裝置上的特定元件執行個體。這些方法也構成診斷選取器語法的第一部分。

開發人員工具實作會使用 Monikers,與目標裝置上的特定元件執行個體互動。

如要進一步瞭解元件路徑名稱語法,請參閱元件路徑名稱參考資料

設計原則

穩定性

只要元件拓撲不會改變,Monikers 就會是穩定 ID。

隱私防護

因為 Monikers 可能包含有關使用者執行中其他元件的隱私權機密資訊。

為了保留元件封裝,元件無法判定在自身領域外執行的其他元件是由其路徑名稱。元件無法學習自己的路徑名稱、父項或同層的元件。

Monikers 可能會顯示在系統記錄和開發人員工具輸出結果中。