Consider the app ecosystem

Scalable UI enhances your ability to create multi-window configurations in Android Automotive OS (AAOS). Scalable UI provides a framework you can use to orchestrate where and how apps are displayed on the screen. The result is more control over the flow of information.

System app developers can consider these factors.

Configurable app containers

Scalable UI panels serve as configurable containers for apps, which enables the creation of diverse layouts in which apps can simultaneously appear onscreen or in different sizes.

Scalable UI supports panel size changes at runtime. However, doing so causes a significant performance impact since apps must adjust their content.

Scalable UI provides mechanisms to reduce the impact visually. For example, by providing a built-in Overlay screen when resizing panels to avoid re-layout of application per frame. It's up to you to define your app experience.

Communicate system states

You can use Scalable UI to trigger broadcast-based system events, which means you can configure rules for when and how different apps are launched and which of the system events are visible to these system apps.

This adds flexibility to your system apps as they react to the events defined at the system level. For example, a NavigationCardActivity can be configured to launch when an active navigation session and map app are not on screen. It can also enable system apps to change color theme based on centralized signals controlled by the speed of a vehicle.

Third-party app developers

Third-party app developers should consider these aspects when enabling multi-window setups.

  • App panel placement: Apps might be placed in various panel sizes, necessitating a responsive UI design. This is required for apps on any multi-window setup, and not due to Scalable UI.

  • Inset handling: Apps must handle insets (areas of the screen occupied by System UI elements or display cutouts). Panels publish updates about their insets, which allows apps to adapt. This is demanded by Android requirements that apps should handle system inset changes, and not due to Scalable UI.

  • Immersive mode: Apps that use immersive mode (in which system bars can be concealed and the app fills the screen) must be considered. Scalable UI gives you control over the definition of immersive mode and how each panel placement should be defined in this mode.

    You must determine how to use immersive mode given driver safety and other requirements.

    Based on Android requirements, an app can't expect an app to fill the screen upon a request for immersive mode. The OS grants or rejects such requests.