fullpage=true page.viewport_width=970 no_footer_links=true excludeFromSuggestions=true page.metaDescription=Android Auto @jd:body

Android Auto Developer Overview

Android Auto extends the Android platform to car entertainment systems. When users connect their Android handheld device to a compatible vehicle, Android Auto lets users project apps on the vehicle’s touchscreen and interact with them using the vehicle’s controls.

UI Templates
Android Auto defines interaction models and UI templates for several app categories. The first version of Android Auto supports media apps, such as music, podcast, live radio, and audio news apps. Future versions will support messaging, communication, local search apps, and more.
Notifications
The platform will integrate with existing Android APIs for notifications. Users will get some notifications from Android apps on the vehicle’s screen.
Voice Actions
Android Auto supports voice search and voice actions for media apps. Future versions will support additional voice actions.
Easy Development Workflow
To extend an existing Android app for Android Auto, you implement a set of interfaces and services defined in the platform. You can reuse existing functionality and many Android APIs you already know.

We’ll release the Android Auto SDK in the coming months, which will let you test your Android Auto experience on a regular Android device.

Design

Digital experiences for cars should complement and augment driving, not demand the driver's attention. Designing these experiences for cars is fundamentally different than in the case of phones and tablets. It requires rethinking how these experiences unfold.

Design Principles

Glanceable. We designed Android Auto to reduce UI complexity, optimize user interactions, and lower cognitive load. Effective apps show just enough information and only provide features that do not require excessive menu interaction and navigation.

Predictive, yet predictable. Android Auto leverages rich, contextual awareness to keep the driver informed about important situations. Timely help is combined with predictable functions. Effective apps use patterns for common tasks and show timely information only when relevant.

Connected. Android Auto works with apps that drivers already use in other devices. Android Auto promotes a continuous app experience from phones and tablets to cars, providing access to user's existing settings, subscriptions, and digital libraries. Experiences that bring personal content and context from other devices are part of Android Auto.

Integrated. Android Auto blends your apps with the vehicle's entertainment system, creating a truly integrated experience in every car. By using the vehicle's screen and controls, apps feel tailored to each car.

UI Overview

Android Auto is a new environment that leverages existing UI models where appropiate and adds new models based on constrains and context. There are three primary concepts for Android Auto: Suggest, a unified place for predictive content; Demand, a pervasive way to interact with voice; and the Facets, organized spaces for primary activities, apps and content.

Suggest: The Google Facet
Core of continuity and extensibility is contextual stream of Now-like cards, powered by your apps and notifications. Relevant, timely, and dynamic, the stream organizes likely people, media, places, and information so drivers can quickly continue their activities or start something new. Google Now and notifications enable drivers to use the apps and services they know when they are most relevant.
Demand: The Voice Layer
Voice-enabled tasks lets drivers accomplish their goals without taking their eyes off the road. Android Auto defines actions and intents that your app can register for. These are accessible through both persistent UI elements and dedicated hardware controls.
Facets and Templates: App-powered activities
In the car, pages of app icons and different UIs create a distracting and dangerous situation. Instead, Android Auto apps power templates which help provide simple but customizable UIs for common interactions such as media or communications. Templates incorporate common behaviors, such as play/pause or reply to a message, while still letting your app promote its value and its brand. Apps are organized into facets (or activities) to enable quick access.

Android Auto uses the input and output mechanisms in each vehicle to tailor the interactions. Some vehicles have dedicated hardware controls, while others have primarily touch-based systems. Android Auto maps common actions and intents across these diverse sets of controls and outputs to enable you to concentrate on your unique app experience.

Architecture

The Android Auto app projects your app's customized UI on the vehicle's screen. To communicate with the Android Auto app, your media app implements a set of media interfaces.

  Figure 1 - Architecture of Android Auto.

The architecture consists of the following components:

Media App - Runs a media service that exposes content through browsing and playback APIs. The service provides content to the Android Auto app. This is your Android app.

Android Auto App - Creates a templated UI and handles user interactions. This app uses a media client to request content from the media service running in the media app. The client requests data from the media service and monitors service states.

Vehicle Display - Shows app content and supports user interaction via on-screen soft buttons and other components, such as physical buttons or steering wheel controls.

Android media apps must implement binders to these APIs:

UI Templates

The Android Auto app uses a templated UI to display content and user interaction opportunities. Android Auto provides you with a set of standard UI templates that follow international guidelines for minimizing driving distraction. You do not have to test your app's UI for for driver distraction, which is a lengthy and expensive process involving multiple legislations across the globe and different standards for each vehicle OEM.

The UI templates define interfaces for browsing, searching, and listening to content from media apps. Although you cannot change the standard template format or layout, you can customize the template colors, action icons, background images, and more.

Launch App Template

The Launcher template shows all the compatible media apps installed on the user’s Android device and lets users select one of them from an scrollable list:

  Figure 2. The Launcher template.

Primary App Template

After the user selects a media app, the display shows the primary app template. Figure 3 shows the elements of this template that you can customize:

  Figure 3. The main application template.

You can customize the primary app template to show your own icons, app name, and background images. Figure 4 shows an example of a customized template:

  Figure 4. A customized template.

User Actions

The primary app template supports four main actions on the action bar, four auxiliary actions on the overflow bar, and the Return action. You can use standard controls and customize the actions and icons, as shown in Figure 5.

  Figure 5. Custom icons for auxiliary actions.

Drawer Transitions

For browse actions, the display shows the drawer transition and template:

  Figure 6. The drawer transition.

After the transition from the primary app template to the drawer template, the drawer appears on the center. The customized drawer template shows the media containers and media files provided by the media service in your app. You can also customize drawers with icons for list items.

  Figure 7. A customized drawer template.

Day and Night Transitions

All the templates support different color schemes for day and night, as shown in Figure 8. The platform provides the state (day or night) and makes adjustments automatically.

  Figure 8. Day and night transitions.

Customizing Templates

To customize the templates, provide the following app-specific resources and actions to the Android Auto media client.

If provided, the media client automatically uses them in the templated UI.

Development Process

Note: When released, the Android Auto SDK will provide media service interfaces, an APK for handheld devices that simulates the Android Auto app, and other tools for Android Auto development.

To create a media app for Android Auto, you include an Android service in your app that implements the media service interfaces provided by the Android Auto SDK. These interfaces define functionality for browsing and finding content, playing media, customizing the UI template, and performing app-specific actions.

The media service interfaces present the content library as a navigable tree and enable clients to play media, get album art, obtain theme resources for the UI template, and invoke app-specific actions.

You don’t have to create a new app for Android Auto: you can extend your existing Android app with implementations of the media service interfaces. Your service exposes your app’s media content, theme resources, and app-specific actions using the methods and data types specified by the media service interfaces. This simplifies the development cycle because:

The Android Auto client presents the customized UI to users and invokes the functionality from your service as needed. This has two additional advantages:

This also means that you do not have to worry about vehicle-specific hardware differences such as screen resolutions, software interfaces, knobs and touch controls.

Testing Your App on an Android Device

The Android Auto SDK includes an APK with a media client implementation, which is similar to those available in compatible vehicles. To test your app with this client:

  1. Get an Android device with a similar form factor to a dashboard screen (like a Nexus 7).
  2. Configure the device for Android development.
  3. Install the APK for the media client from the Android Auto SDK on the device.
  4. Install the APK for your app on the device.
  5. Open the media client app from the Android Auto SDK on the device.
  6. Select your app from the list of available services.

The customized UI for your app appears on the client. You can navigate the content library and play media. If your app provides app-specific actions, these actions appear in the UI controls.

Running Your App on Android Auto

Media apps are available on the Google Play Store for compatible Android devices. When users connect their Android device to a compatible vehicle, the Android Auto media client shows a list of all the Android apps installed on the phone that implement the media service interfaces.

When users select one of these apps, the Android Auto media client uses the app’s service to respond to user input and invoke the methods in the media service interfaces to build the UI, navigate the content library, and play media.