Media apps

Android Automotive OS (AAOS) allows users to browse and play content from media apps on the car screen. Users can download media apps from Google Play directly to the car, with no phone needed.

This page includes the following sections:

Spatial model

This introduction to the media app template describes its main elements, the basic functions they provide, and the architecture that holds them together.

More detailed descriptions of how each element works are provided in the following sections.

Anatomy

The media template includes the following:

  • App bar – Features primary app navigation and app controls (for in-app search and settings) and includes an app icon
  • Browseable content space – Displays content in either a grid view (shown here) or a list view
  • Playback controls – The minimized control bar shown here includes basic media metadata and playback controls, and it also provides access to a playback overlay with more controls
1. App bar with primary navigation tabs and app controls
2. Browseable content space
3. Playback controls (shown here on minimized control bar).

This sample layout shows just one possible arrangement of these elements. For example, you can stack primary navigation and app controls rather than keeping them in a single horizontal bar, depending on the screen dimensions. The navigation hierarchy is described in more detail in the sections that follow.

Primary navigation

The primary navigation in the app bar consists of exposed tabs (except in rare cases where the screen is too small).

This example shows a typical tab arrangement:

Users can select tabs such as Home and Playlists on the app bar to navigate to these top-level views of media content.

Selecting a tab on the app bar replaces the current view with a different top-level app view.

App controls

App controls (shown at upper right in the example below) occupy the portion of the app bar not used for branding or primary navigation. They provide access to in-app search and settings functions for the current media app.

Selecting an app control opens an overlay. For example, the Settings affordance shown here opens an overlay that displays the Settings interface. When users close the overlay, they return to their previous location in the app.

Selecting the Settings affordance on the app bar opens an overlay that allows users to access app settings.

When an app control is selected, it opens an overlay on top of the browsable content, and the app bar changes to an app header.

Browsable content space

Within the browsable content space, users can scroll through content and navigate through z-space into individual items, down consecutive levels of hierarchy.

Because navigating through multiple levels increases the driver's cognitive load, Google recommends keeping the information architecture relatively flat, with as few levels as possible.

The top level of browsable content lets users choose from a grid (as shown here) or list.

Making a selection from browsable content opens the next level down with more detail.

Playback controls

Playback controls in media apps can appear in either of two forms, depending on the circumstances:

  • Minimized control bar (available across views)
  • Playback view (overlay with full control bar)

These two forms alternate along the bottom of the screen in the animated example that follows.

Minimized control bar

The minimized control bar floats at the highest level of the browsable content space, above the content. It provides information about what's currently playing, along with basic affordances for user control of playback.

When content begins playing, the minimized control bar remains available while a user is browsing media content. It persists until a new media app is selected or until the user taps the minimized control bar to display the playback view.

Playback view

The full control bar is available only in playback view, and it also floats above the content. In addition to the affordances available from the minimized control bar, the full control bar can provide more extensive controls defined by each media app.

Selecting the minimized control bar anywhere outside of the touch targets for its controls expands it to a full-screen playback overlay (the playback view), as shown here.

The playback view overlay sits on top of the browsable content space, and the minimized control bar is replaced by the full control bar with additional controls.

Interaction model

AAOS presents media content on a car's screen and allows users to browse and play content in a vehicle-optimized environment.

How media apps work in cars

AAOS includes a set of APIs that handle playback and browsing experiences for media apps in cars. These APIs allow app developers to take advantage of a standard template for media apps, including:

  • Navigation and playback controls
  • Browseable views of media content
  • App controls for in-app search and settings

This template supports the in-vehicle infotainment (IVI) experience in two ways:

  • Car makers can customize the look and feel of the interface to fit their cars and their brand.
  • App developers can connect their content to the interface to provide a consistent experience that reflects their app's brand across multiple cars and manufacturers.

Google is designing the basic user experience for media apps based on safety considerations and principles such as those discussed in Design foundations and Design principles. You can adapt aspects of this user experience for your own infotainment system without disrupting the functionality of apps that are built for AAOS.

For example, while one car maker's media apps might look and feel different from another's, a media app user will interact with that app's familiar controls no matter what type of car they're driving. At the same time, in a single type of car, switching from one media app to another will not change the basic browsing and playback operations involved in using media apps in that car.

This section describes how a media app's top-level app navigation works.

Users navigate among top-level content views in a media app using the app bar, which can include the following navigational elements:

  • Primary navigation tabs (or variants)
  • App selector (optional)

The app bar can also include an app icon and app controls, which are discussed in App branding and Sign-in, settings, and search.

Primary navigation tabs

Primary navigation for content views within a media app generally consists of up to 4 tabs in an app bar (unless the screen is extremely small and lacks room to display tabs). These tabs let users move laterally between content views at the top level of the app hierarchy.

When a user selects a tab, the destination reflects the user's previous interaction with that view of the content. For example, if a tab's content was previously scrolled during the same media app session, the scroll position will be retained when the user returns to that tab.

Tabs in the app bar allow users to move laterally between content views_.

Primary navigation variants

Each primary navigation item is typically represented with tabs that include both an icon and label. Including both reduces the cognitive load for drivers, because icons improve glanceability and labels clarify the meaning.

This app bar includes an icon and a label for each tab.

However, you can use alternate navigation strategies in some situations:

  • Labels only: If the screen is not tall enough to accommodate a reasonable amount of content as well as tabs that include both icons and labels
  • Drawer: If the screen is not wide enough for tabs
  • No tabs: If there is only one primary navigation option
In some special cases, the app bar may include one of these navigation strategies as an alternative to tabs with icons and labels (top to bottom): Tabs with labels only, a drawer instead of tabs, or a single top-level view of content with no tabs.

App selector

The app selector provides quick access to other media apps. You can decide whether to provide an app selector. For example, you may prefer to rely solely on a list of all available apps as the mechanism for switching media apps.

When the app bar is located at the top or bottom of the screen, the app selector is typically positioned on the app bar's right side.

When invoked, the app selector provides access to other media apps. When a user selects a different app, that app is displayed.

Typical apps available from app selector.

App bar positioning

You can determine the location for the app bar across all AAOS templates, including the media template. As long as it's always in the same place, the app bar can appear at the top or bottom of the screen or on one side. It's also possible to stack the tabs and app controls within the app bar.

To minimize cognitive load and ensure a reliable user experience, the app bar and its affordances must always appear in the same location across the entire infotainment system.

Browse content details

This section describes how content browsing works in media apps, including how users navigate to lower-level views with more detail.

The process of browsing content in a media app involves:

  • Viewing grids or lists of content
  • Selecting browsable content items (that is, items that represent a collection of items, as opposed to being playable) to navigate to more detailed views of those items

The detailed view of a content item exists on a lower level of the content space, also formatted as a grid or list. Users can navigate upward from lower levels using a Back affordance in the app header.

Grid and list views of content

Media content can be presented in a grid view, a list view, or a combination of both in the same content space. Content can be organized into categories separated by subheaders. Users browse through the grids or lists by scrolling vertically.

Grid and list formats are shown here at the top level of the content space. Either format can be used at any level.

As users browse within the content space, they can select a browsable content item (such as an album or playlist) to navigate to a more detailed view of that item (songs on the album, or individual items on the playlist). When a user begins to move deeper into the content space in this way, an app header appears at the top of the screen, including an affordance that allows the user to return to the previous level.

Tapping the back arrow on the app header returns the user to the top level of the content space.

As users scroll through a grid or list of content, an app bar (or app header) at the top of the screen remains fixed in place, with the content scrolling behind it.

Content scrolls behind the fixed app bar.

Play media

This section describes how playback works for media apps.

Users can control media playback from either of the following:

  • Playback view (full screen, full set of controls)
  • Minimized control bar (minimal controls, available across views)

Playback view

To begin playback, a user selects a playable item in the content space, such as an album or song, and the playback view takes over the entire content space. The playback view displays metadata and playback controls for the selected content. Users can control playback using these controls and also with gestures.

Playback controls

Playback controls are displayed in the control bar, which can be expanded if there are more than 5 controls (see "Playback control locations," below). If the app implements a queue, the app header includes an affordance to access the queue.

The playback view appears when the user selects playable content.
When there are more than 5 controls, users can expand the control bar and access the additional controls by using the overflow button (bottom right).

Playback control locations

To ensure consistent usage across media services, the bottom row of controls (or the only row, if the control bar is unexpanded) should present the controls in the order shown in the following figure. The top row, which appears only when the control bar is expanded, is reserved for up to t=five custom actions.

If an app doesn't use Previous or Next buttons, these buttons may also be replaced with custom actions.

Controls in the bottom row should appear in the order shown in the example above and the table below.
Position Button

Far left

Custom action

Left of center

Previous or custom action

Center

Play / Pause

Right of center

Next or custom action

Far right

Overflow affordance (if there are more than 5 controls) or custom action

Gestures

In addition to using the controls in Playback view, users can use a gesture to minimize the view.

Swiping down from anywhere in the view is one way users can collapse the playback view into the minimized control bar.

Minimized control bar

If the user leaves the playback view while content is still playing, the control bar available in the playback view collapses into the minimized control bar, which provides information about the currently playing content, plus basic controls such as Play and Pause. The minimized control bar allows the user to browse available media while the current song or other content continues playing.

The minimized control bar is a simplified version of the control bar that remains available after the user leaves the playback view.

 

Users can swipe downward (as shown in Gestures, above) or tap on the down arrow in the upper left corner (as shown here) to minimize the playback view.

Queue

If a media app implements a queue, the playback view's app header includes a queue affordance. Selecting the affordance displays a scrollable, chronologically ordered list of currently playing and upcoming content. Some media apps may also display previously played content in the queue.

The queue shows upcoming and currently playing content.

At a minimum, the queue displays a title for each queued item. App developers can also provide a thumbnail for each. In addition, they can provide an icon to indicate the currently playing item, which can also be indicated by showing the elapsed time for that item. However, car makers can choose whether to show or hide any of these items: the thumbnail, the icon, or the elapsed time.

Users can scroll the list and select any item in the queue to play it immediately in the playback view. To return to the playback view without selecting an item to play, users can select either the queue or back affordance.

This section describes how sign-in and app controls for search and settings work in media apps.

Users access app settings and in-app search using the app controls on the app bar or app header. Car makers design the search overlay, and app developers connect their content with Android Automotive OS APIs. App developers design all aspects of the settings overlay and sign-in flow for their apps.

Sign-in

When a user tries to open an app that requires sign-in (typically after installing the app from the Play Store), the user enters the sign-in flow provided by the app developer. If sign-in for an app is optional, it can be included as one of the app settings, so users can get to it that way.

The sign-in flow may involve one or more of the following:

  • Google sign-in: Letting users sign in using their Google account
  • Phone sign-in: Displaying a PIN code on the car screen for users to enter on their phones, or vice versa
  • Standard sign-in: Having users enter their user names and passwords for the app on the car screen

Google sign-in is recommended as the primary sign-in option for apps that support it. With this option, users confirm their existing Google Account, as shown in the figure.

Confirm Google Account.

For more examples of sign-in flows and guidelines for creating them, visit Sign-in.

App controls consist of in-app search and app settings for the media app. App developers may choose to implement either or both.

App controls typically appear to the right of the tabs on an app bar that's positioned at the top or bottom of the screen.
In-app search.
  • You can support the use of an in-app search affordance in the app bar. App developers can decide whether to implement a search function for their apps.
  • When the user is driving, the Search affordance invokes the drive-optimized keyboard, allowing for voice input. When the car is parked, it invokes the standard keyboard. You can design both keyboards (or customize Google-provided keyboards).
App settings.
  • You can support the use of an in-app settings affordance in the app bar. App developers can decide whether to implement a settings function for their apps.
  • This settings function should include only settings necessary for app use (such as account info, app preferences, and sign-in and sign-out functions), plus those relevant to listening to media in the car (such as turning off explicit content).
  • When the user is driving, the Settings affordance is visible but dimmed or otherwise modified to indicate that app settings aren't available. When the car is parked, this affordance invokes an overlay that contains app settings. App developers design the overlay screens for their apps, as described in Design settings.

Division of roles

The table below summarizes the design roles of car makers and app developers in ensuring a unified media app experience.

Aspect of the media experience Car maker's design role App developer's design role

Navigating media apps

Decide where the app bar goes and support app navigation and controls that can appear in the app bar

Decide which top-level content views to represent in the app bar's tabs and provide icons and labeling as needed

Visit Plan navigation tabs

Browsing content details

Determine size and content of grid or list items and implement app header at lower levels of content

Determine format (grid or list) and organization for browsable media content at each level

Visit Plan browsing views

Playing media

Implement playback view and minimized control bar with appropriate media metadata and playback controls, including controls for any custom actions in the app. Provide a queue affordance in playback view and styling for the queue.

Decide whether to implement custom actions on the control bar, and provide icons for them. Decide whether to implement a queue and whether to provide an indicator for the currently playing track.

Visit Customize playback controls

Sign-in, settings, and search

Provide affordances for search and settings on the app bar bar, design search keyboards, and connect users to sign-in screens as needed

Provide sign-in flow (adapted from sample code) and settings screens if needed

Visit Sign-in and Design sign-in and settings

Brand attribution

Display the app icon on all content screens and choose where to apply the third-party app color as an accent

Provide app icon and specify accent color

Visit Display app branding

App checklist

Use this list to make sure you have provided all of the design elements needed for presenting your app within the media template for AAOS.

Design elements Related design task Related technical task and sample code

Navigational elements:

  • Monochrome (black or white) vector icons and labels for up to 4 navigation tabs

Plan navigation tabs

Build your content hierarchy

Browsing-view elements:

  • Content styles specifying format of browsing views (grid or list, titles of subcategories)

Plan browsing views

Apply content styles

Playback elements:

  • Monochrome (black or white) vector icons for any custom playback actions your app uses (separate icons for each state)
  • Thumbnails for queue items (optional)
  • Icon for the currently playing queue item (optional)

Customize playback controls

Queue guidelines

Add custom playback actions

Sign-in elements:

  • Customized sign-in screens (adapted from sample code in UAMP Automotive app)

Sign-in

UAMP Automotive app

Add a Sign-in activity

Settings elements:

  • Settings overlay screen – portrait-mode layout (Volvo Polestar 2 size: 1068 x 1425dp; 1152 x 153px)
  • Settings overlay screen – landscape-mode layout (Automotive reference size: 1075 x 806dp; 1024 x 768px)

Design settings

Add a Settings activity

Branding elements:

  • Full-color vector app icon
  • Accent color

Provide branding elements

Specify an app icon and Customize the default theme.

Guidelines for custom screens

For most aspects of media apps used in AAOS, you don't need to design custom screens. The areas of exception are settings and sign-in. If you want users to access app settings, you need to design settings screens. Also, if your app requires sign-in, you need to provide a sign-in flow, which you can customize from the sample code in the Universal Android Music Player.

These general style guidelines apply to both custom settings screens and customized sign-in screens. They help you to optimize your designs to be viewed on a car screen, while parked, at any time of day or night.

For additional guidelines specific to settings and sign-in, refer to App settings.

Requirement level Guidelines

MUST

App developers must:

  • Provide a Close affordance to exit the settings screen and top-level sign-in screen
  • Provide a Back affordance from any subsequent screens following the top-level screen
  • Position the Close or Back affordance at the top left of the screen
  • Maintain a contrast ratio of at least 4.5:1 between backgrounds and icons or text
  • Use recommended type sizes of at least 32dp for primary text and 24dp for secondary text
  • Keep touch targets above the recommended minimum size of 76 x 76dp

SHOULD

App developers should:

  • Use a dark theme for all screens and overlays
  • Include a logo or app icon on all screens
  • When using an accent color, use the same one provided as a branding element
  • Keep text strings within the recommended maximum text length of 120 characters
  • Provide a distance of at least 24dp between touch targets where possible

MAY

App developers may:

  • Decide whether to implement sign-in and settings functions as part of their app

Rationale

Screens designed directly by media app developers should:

  • Support standard media app navigation patterns and design conventions.
  • Reflect design principles and visual foundations for AAOS.