Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3158e1a6 authored by Robert Ly's avatar Robert Ly Committed by Android (Google) Code Review
Browse files

Merge "docs: Addressed reviews and fixes for Auto dev overview" into klp-modular-dev

parents 619c8961 98375d04
Loading
Loading
Loading
Loading
−39.2 KiB (9.78 KiB)
Loading image diff...
+64 −45
Original line number Diff line number Diff line
@@ -89,27 +89,33 @@ page.metaDescription=Android Auto

<h1>Android Auto Developer Overview</h1>

<p>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.</p>
<p>Android Auto extends the Android platform into the car. When users connect
their Android handheld device to a compatible vehicle, Android Auto provides a car-optimized
Android experience on the vehicle's screen. Users interact with compatible apps and services
through voice actions and the vehicle's input controls.</p>

<p>The Android Auto SDK lets you easily extend your existing apps to work in the car, without
having to worry about vehicle-specific hardware differences. You can use many Android APIs and
services you are already familiar with. Android Auto provides easy to use UI templates and
supports notifications and voice actions:</p>

<dl>
<dt style="margin-bottom:10px"><strong>UI Templates</strong></dt>
<dd style="margin-bottom:20px">
Android Auto defines interaction models and UI templates for several app categories. The
Android Auto defines interaction models and UI templates for apps. 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.
audio news apps.
</dd>
<dt style="margin-bottom:10px"><strong>Notifications</strong></dt>
<dd style="margin-bottom:20px">
The platform will integrate with existing Android APIs for notifications. Users will get
some notifications from Android apps on the vehicles screen.</dd>
car appropiate notifications from Android apps on the vehicle's screen.</dd>

<dt style="margin-bottom:10px"><strong>Voice Actions</strong></dt>
<dd style="margin-bottom:20px">
Android Auto supports voice search and voice actions for media apps. Future versions
will support additional voice actions.</dd>
Android Auto supports a set of voice actions to interact with compatible apps and services.
Apps can respond to the voice actions they're interested in, such as playing a particular song
or taking a note.</dd>

<dt style="margin-bottom:10px"><strong>Easy Development Workflow</strong></dt>
<dd style="margin-bottom:20px">
@@ -124,39 +130,52 @@ Android Auto experience on a regular Android device.</p>

<h2 id="design">Design</h2>

<p>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.</p>
<p>Android Auto extends users' digital ecosystem into their cars, allowing drivers to stay
connected to their virtual worlds while staying focused on the road ahead.</p>

<p>Because driving is the primary activity in the car, any digital experiences should be designed
to complement and augment that activity. They should never demand the user's attention.</p>

<h3 id="designprinciples">Design Principles</h3>
<p>Designing for cars is fundamentally different than designing for phones or tablets, and
requires rethinking how experiences unfold. Because attention is limited and not all tasks are
possible in the car, effective apps leverage the entire set of devices that drivers have,
leveraging the app experience on those devices, outside of the car, to set the stage for simple
experiences while driving.</p>

<p><strong>Glanceable</strong>. 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.</p>
<p>Android Auto experiences are:</p>

<p><strong>Glanceable and simple</strong>. Driving requires users' full attention. In-car software
should not. Android Auto was designed to simplify not only the UI, but to optimize interactions
and require less thinking, induce lower cognitive load, and ultimately, be safer. Effective apps
provide just enough information in the minimum amount of time the user needs to glance at it and
return their attention back to the road. Apps should also reduce the number of features to only
those that are safe and drive-appropriate.</p>

<p><strong>Predictive, yet predictable</strong>. 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.</p>
to keep the driver informed about important situations during the drive. Rich, timely help is
combined with predictable functions. Effective apps make use of the patterns for common tasks and
show timely information only when relevant.</p>

<p><strong>Connected</strong>. By leveraging the user's personal ecosystem of apps and services,
Android Auto promotes a continuous experience from phone to car to other devices. The user's
music, destinations, and virtual ecosystem are always available to augment the drive. Experiences
that leverage personal context and other devices are naturally part of Android Auto.</p>

<p><strong>Connected</strong>. 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.</p>
<p><strong>Naturally integrated</strong>. Android Auto blends the user's apps with the car,
creating a truly integrated experience that leverages what is unique about each car. By using
the screens, controls, and capabilities of the vehicle, Android Auto feels like an extension of
the car.</p>

<p><strong>Integrated</strong>. 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.</p>



<h2 id="architecture">Architecture</h2>

<p>The Android Auto app projects your app's customized UI on the vehicle's screen. To communicate
<p>The Android Auto app shows 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.</p>

<div style="width:750px;margin:0 auto">
<img src="{@docRoot}auto/images/figure01.png" alt="" id="figure1" />
<img src="{@docRoot}auto/images/figure01.png" alt="" />
<p class="img-caption">
  <strong>Figure 1</strong> - Architecture of Android Auto.
</p>
@@ -215,11 +234,9 @@ Android device and lets users select one of them from an scrollable list:</p>

<h3>Primary App Template</h3>

<p>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:</p>

<p>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:</p>
<p>After the user selects a media app, the display shows the primary app template.
You can customize this template to show your own icons, app name, and
background images. Figure 3 shows an example of a customized template:</p>

<div class="cols">
<div class="auto-col-2">
@@ -236,7 +253,7 @@ background images. Figure 4 shows an example of a customized template:</p>
</div>
</div>
<p class="img-caption">
  <strong>Figure 4.</strong> A customized template.
  <strong>Figure 3.</strong> A customized template.
</p>


@@ -245,7 +262,7 @@ background images. Figure 4 shows an example of a customized template:</p>

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

<div class="auto-img-container-single">
  <div class="auto-img-container">
@@ -253,18 +270,14 @@ the actions and icons, as shown in Figure 5.</p>
    <img class="auto-img-shot-cols" src="/auto/images/assets/do_03_more.png" />
  </div>
  <p class="img-caption" style="margin-top:0px">
    <strong>Figure 5.</strong> Custom extra actions.
    <strong>Figure 4.</strong> Custom extra actions.
  </p>
</div>

<h3 id="drawertransitions">Drawer Transitions</h3>

<p>For browse actions, the display shows the drawer transition and template:</p>

<p>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.</p>
<p>For browse actions, the display shows the drawer transition and template, as shown in
Figure 5.</p>

<div class="cols">
<div class="auto-col-2">
@@ -281,13 +294,19 @@ with icons for list items.</p>
</div>
</div>
<p class="img-caption">
  <strong>Figure 4.</strong> Generic and customized drawer templates.
  <strong>Figure 5.</strong> Generic and customized drawer templates.
</p>

<p>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.</p>


<h3 id="daynighttransitions">Day and Night Transitions</h3>

<p>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.</p>
<p>All the templates support different color schemes for day and night.
The platform provides the state (day or night) and makes adjustments automatically.</p>

<h3 id="customizetemplates">Customizing Templates</h3>