元件架構會使用不同的 ID 來描述元件。本節將說明下列元件 ID 及其用途的關係:
元件網址
用量
元件網址的主要用途是識別元件執行個體定義中的元件,做為子項宣告的一部分:
{
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",
}
],
}
測試中常會使用相對元件網址,最佳做法是將正式版元件重新封裝到測試專用的套件中,藉此促進「固體」。
如要進一步瞭解元件網址語法,請參閱元件網址參考資料。
莫尼克爾
每個路徑元素都是由父項元件指派給子項的名稱,最終識別與最後路徑元素對應的「分葉元件」。
莫尼克器始終是相對於特定項目:父項元件或整個元件拓撲的根層級。
用量
部分元件範例:
.
:自創路徑名稱。舉例來說,根元件 (由component_manager
啟動的第一個元件) 可以使用此路徑名稱參照。其他用途則取決於內容。alice/carol/sandy
:專門將元件執行個體「sandy」識別為「alice」和「carol」的子系。alice/support:dan
:專門將元件執行個體「dan」視為「support」集合中來自「alice」的元素。
系統會將 Monikers 傳遞至 ffx component explore
等開發人員工具,以便識別目標裝置上的特定元件執行個體。這些方法也構成診斷選取器語法的第一部分。
開發人員工具實作會使用 Monikers,與目標裝置上的特定元件執行個體互動。
如要進一步瞭解元件路徑名稱語法,請參閱元件路徑名稱參考資料。
設計原則
穩定性
只要元件拓撲不會改變,Monikers 就會是穩定 ID。
隱私防護
因為 Monikers 可能包含有關使用者執行中其他元件的隱私權機密資訊。
為了保留元件封裝,元件無法判定在自身領域外執行的其他元件是由其路徑名稱。元件無法學習自己的路徑名稱、父項或同層的元件。
Monikers 可能會顯示在系統記錄和開發人員工具輸出結果中。