元件解析器

元件解析器會透過 環境 解決 元件網址 並將其轉換為元件

元件管理員會找出支援 相符的網址配置,並使用 fuchsia.component.resolution.Resolver 通訊協定。

如果解析成功,元件解析器會傳回 ComponentDecl,FIDL 表示法為 元件資訊清單。如果要解析的元件有 相關聯的套件,元件解析器也會傳回 套件目錄的 fuchsia.io.Directory 控制代碼。

提供解析器功能

如要提供解析器能力,元件必須宣告 resolver 能力,其 path 會指定實作 FIDL 通訊協定 fuchsia.component.resolution.Resolver透過元件的 傳出目錄 ,直接在 Google Cloud 控制台實際操作。

{
    capabilities: [
        {
            resolver: "my_resolver",
            path: "/svc/fuchsia.component.resolution.Resolver",
        },
    ],
}

元件管理員會提交要求,將元件網址解析為這個通訊協定。

轉送解析器功能

元件路徑解析器功能會將其公開至 家長為他們提供福利

如要進一步瞭解架構如何轉送元件功能, 請參閱功能轉送

公開

公開解析器能力可讓元件的父項存取該元件 功能:

{
    expose: [
        {
            resolver: "my_resolver",
            from: "self",
        },
    ],
}

提供

如果提供解析器能力,可讓子項元件存取該功能 功能:

{
    offer: [
        {
            resolver: "my_resolver",
            from: "self",
            to: [ "#child-a" ],
        },
    ],
}

註冊元件解析器

元件解析器可透過 環境。若要在環境中註冊新的解析器, 在 environments 宣告的 resolvers 部分新增項目:

environments: [
    {
        name: "my-environ",
        extends: "realm",
        resolvers: [
            {
                resolver: "my_resolver",
                scheme: "my-scheme",
                from: "parent",
            }
        ],
    },
]

已註冊的解析器將用於解析元件網址配置的元件網址 符合提供的 scheme

如要進一步瞭解如何將環境套用至元件,請參閱 環境說明文件

架構解析器

元件架構提供下列內建元件解析器, 支援標準 Fuchsia 網址配置:

解析器 網址配置
boot_resolver fuchsia-boot
base_resolver fuchsia-pkg
full-resolver fuchsia-pkg