跳转至

Component manifests {#component-manifests}

<<../_v2_banner.md>>

A component manifest is a file that defines a component by encoding a component declaration. This document gives an overview of the concepts used by component declarations. Component declarations contain information about the following:

  • Execution: Details about the runtime and executable binary for components that include an executable program.
  • Composition: [Child component instances][doc-children] and [dynamic collections][doc-collections] managed by this component.
  • Capabilities: [Routing rules][doc-capabilities] that describe how capabilities are provided and consumed between components.
  • Metadata: Freeform data, which is ignored by the component framework but can be interpreted by third parties.

Note: For complete details on component manifest attributes and syntax, see the CML reference.

Component manifest stages{: width="836"}

Component manifest source {#component-manifest-source}

A [component manifest source][glossary.component manifest source] is a file that encodes part of a component manifest. Component manifest sources are written in component manifest language (CML), which is the developer-facing source format for component manifests. CML files are [JSON5][json5-external]{: .external} files that end with a .cml extension.

The [cmc][src-cmc] tool compiles component manifest sources to component manifests as a part of the build process.

Component manifest {#component-manifest}

A [component manifest][glossary.component manifest] is a binary file that encodes the component declaration, usually distributed as part of a [package][glossary.package]. The binary format is the [persistent encoded form][fidl-wire-encoded] of the component declaration FIDL object.

A [component URL][doc-component-url] identifies a component in a package by its component manifest resource path, typically ending in a .cm extension.

Component declaration {#component-declaration}

A [component declaration][glossary.component declaration] describes what a component can do, the capabilities it uses and exposes, its children, and other information needed to run the component. Component declarations are represented using the [Component][fidl-component-decl] FIDL table.

The framework calls a [component resolver][capability-resolver] to retrieve a component declaration from a component URL.

capability-resolvercapability-runnerdoc-children /concepts/components/v2/capabilities/README.md doc-collections /concepts/components/v2/identifiers.md#component-urls doc-environments[fidl-component-decl]: https://fuchsia.dev/reference/fidl/fuchsia.component.decl#Component [fidl-wire-encoded](../../../reference/fidl/language/wire-format/README.md#dual-forms

[glossary.component manifest](../../../glossary/README.md#component-manifest

glossary.package https://json5.org/

src-cmc


最后更新: 2022 年 12 月 31 日(Saturday) 21:06 CST