Shells are components which are responsible for composing UI. There are three shells:
BaseShelldisplays UI associated with a device, prior to a session being started.
SessionShelldisplays the UI associated with a given session (e.g. list of stories, settings UI).
StoryShelldisplays a single story (i.e. the composition of the modules in a story, each story gets its own
A shell is given access to two services provided by the modular framework in its incoming namespace:
fuchsia.modular.ComponentContextgives the agent access to functionality which is shared across components run under the modular framework (e.g. modules, shells, agents).
fuchsia.modular.[Base,Session,Story]ShellContextgives access to shell specific functionality for each type of shell, respectively.
A shell is expected to provide two services to the modular framework in its outgoing namespace:
fuchsia.modular.[Base,Session,Story]Shellthe modular framework uses to communicate requests to display UI.
fuchsia.modular.Lifecycleallows the framework to signal the shell to terminate gracefully.
The three shells have varying lifecycles:
BaseShellruns between the time
basemgrstarts up until a session has been established, and on demand thereafter to faciliate authentication requests.
SessionShellruns for the duration of a session.
StoryShellruns while its associated story is running.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2019-10-24.