diff options
Diffstat (limited to 'docs/html/auto/overview.jd')
-rw-r--r-- | docs/html/auto/overview.jd | 411 |
1 files changed, 0 insertions, 411 deletions
diff --git a/docs/html/auto/overview.jd b/docs/html/auto/overview.jd deleted file mode 100644 index ae1efec..0000000 --- a/docs/html/auto/overview.jd +++ /dev/null @@ -1,411 +0,0 @@ -fullpage=true -page.viewport_width=970 -no_footer_links=true -excludeFromSuggestions=true -page.metaDescription=Android Auto - -@jd:body - -<style> -.jd-descr { - height:auto; -} -#copyright { - margin-top:-35px; -} -.auto-img-container { - position:relative; -} -.auto-img-frame { - z-index:2; - position:relative; -} -.auto-img-shot { - position:absolute; - top:9px; - left:8px; - z-index:1; -} -.auto-img-container-cols { - position:relative; - margin-top:10px; -} -.auto-img-frame-cols { - width:380px; - z-index:2; - position:relative; -} -.auto-img-shot-cols { - width:369px; - position:absolute; - top:7px; - left:6px; - z-index:1; -} -.auto-col-2 { - width:380px; - display: inline; - float: left; - margin-left: 10px; - margin-right: 10px; -} -.auto-img-container-single { - width:380px; - margin:0 auto; - margin-top:20px; -} -</style> - -<div style="width:780px; margin:0 auto;"> - -<div id="qv-wrapper"> -<div id="qv"> -<h2>In this document</h2> -<ol> - <li><a href="#design">Design</a> - <ol> - <li><a href="#designprinciples">Design Principles</a></li> - <li><a href="#uioverview">UI Overview</a></li> - </ol> - </li> - <li><a href="#architecture">Architecture</a></li> - <li><a href="#ui">User Interface</a> - <ol> - <li><a href="#launchapp">Launch App</a></li> - <li><a href="#useractions">User Actions</a></li> - <li><a href="#drawertransitions">Drawer Transitions</a></li> - <li><a href="#daynighttransitions">Day and Night Transitions</a></li> - <li><a href="#customizeui">Customizing the UI</a></li> - </ol> - </li> - <li><a href="#devprocess">Development Process</a></li> - <li><a href="#emulator">Testing Your App</a></li> - <li><a href="#running">Running Your App</a></li> -</ol> -</div> -</div> - -<h1>Android Auto Developer Overview</h1> - -<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 an easy to use UI model and -supports notifications and voice actions:</p> - -<dl> -<dt style="margin-bottom:10px"><strong>Media UI</strong></dt> -<dd style="margin-bottom:20px"> -Android Auto defines interaction models and car-specific UI patterns for apps. The -first version of Android Auto supports media apps, such as music, podcast, live radio, and -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 -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 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"> -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.</dd> -</dl> - -<p>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.</p> - - -<h2 id="design">Design</h2> - -<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> - -<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>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 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>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> - - - - -<h2 id="architecture">Architecture</h2> - -<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="" /> -<p class="img-caption"> - <strong>Figure 1</strong> - Architecture of Android Auto. -</p> -</div> - -<p>The architecture consists of the following components:</p> - -<p><strong>Media App</strong> - 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.</p> - -<p><strong>Android Auto App</strong> - Creates the 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.</p> - -<p><strong>Vehicle Display</strong> - Shows app content and supports user interaction via -on-screen soft buttons and other components, such as physical buttons or steering -wheel controls.</p> - -<p>Android media apps must implement binders to these APIs:</p> - -<ul> -<li><strong>Browsing</strong> - Enables a media client to browse a hierarchy of a user’s -media collection, presented as a virtual file system with containers (similar to directories) -and items (similar to files).</li> -<li><strong>Playback</strong> - Enables a media client to control media playback and monitor -playback state through callbacks.</li> -</ul> - - -<h2 id="ui">User Interface</h2> - -<p>The Android Auto app uses a car-specific UI model to display content and user interaction -opportunities. Android Auto provides you with a standard UI designed to minimize driver -distraction. You do not have to test a custom UI for driver distraction, which is a -lengthy and expensive process involving multiple legislations across the globe and different -standards for each vehicle OEM.</p> - -<p>The UI defines interfaces for browsing, searching, and listening to content from -media apps. You can customize the UI colors, action icons, background images, and more.</p> - -<h3 id="launchapp">Launcher</h3> - -<p>The launcher shows all the compatible media apps installed on the user’s -Android device and lets users select one of them from a scrollable list:</p> - -<div class="auto-img-container-single"> - <div class="auto-img-container"> - <img class="auto-img-frame-cols" src="/auto/images/assets/00_frame.png" /> - <img class="auto-img-shot-cols" src="/auto/images/assets/do_01_switcher.png" /> - </div> - <p class="img-caption" style="margin-top:0px"> - <strong>Figure 2.</strong> The launcher. - </p> -</div> - -<h3>Primary App UI</h3> - -<p>After the user selects a media app, the display shows the primary app UI. -You can customize this UI to show your own icons, app name, and -background images. Figure 3 shows an example of a customized UI:</p> - -<div class="cols"> -<div class="auto-col-2"> - <div class="auto-img-container-cols"> - <img class="auto-img-frame-cols" src="{@docRoot}auto/images/assets/00_frame.png" /> - <img class="auto-img-shot-cols" src="{@docRoot}auto/images/assets/do_05_template.png" /> - </div> -</div> -<div class="auto-col-2"> - <div class="auto-img-container-cols"> - <img class="auto-img-frame-cols" src="{@docRoot}auto/images/assets/00_frame.png" /> - <img class="auto-img-shot-cols" src="{@docRoot}auto/images/assets/do_02_music.png" /> - </div> -</div> -</div> -<p class="img-caption"> - <strong>Figure 3.</strong> A customized UI. -</p> - - - -<h3 id="useractions">User Actions</h3> - -<p>The primary app UI 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 4.</p> - -<div class="auto-img-container-single"> - <div class="auto-img-container"> - <img class="auto-img-frame-cols" src="/auto/images/assets/00_frame.png" /> - <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 4.</strong> Custom extra actions. - </p> -</div> - -<h3 id="drawertransitions">Drawer Transitions</h3> - -<p>For browse actions, the display shows the drawer transition as shown in Figure 5.</p> - -<div class="cols"> -<div class="auto-col-2"> - <div class="auto-img-container-cols"> - <img class="auto-img-frame-cols" src="{@docRoot}auto/images/assets/00_frame.png" /> - <img class="auto-img-shot-cols" src="{@docRoot}auto/images/assets/do_06_gdrawer.png" /> - </div> -</div> -<div class="auto-col-2"> - <div class="auto-img-container-cols"> - <img class="auto-img-frame-cols" src="{@docRoot}auto/images/assets/00_frame.png" /> - <img class="auto-img-shot-cols" src="{@docRoot}auto/images/assets/do_04_mdrawer.png" /> - </div> -</div> -</div> -<p class="img-caption"> - <strong>Figure 5.</strong> Generic and customized drawers. -</p> - -<p>After the transition from the primary app UI to the drawer UI, the drawer -appears on the center. The customized drawer UI 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 UIs support different color schemes for day and night. -The platform provides the state (day or night) and makes adjustments automatically.</p> - -<div class="cols"> -<div class="auto-col-2"> - <div class="auto-img-container-cols"> - <img class="auto-img-frame-cols" src="{@docRoot}auto/images/assets/00_frame.png" /> - <img class="auto-img-shot-cols" src="{@docRoot}auto/images/assets/do_02_music.png" /> - </div> -</div> -<div class="auto-col-2"> - <div class="auto-img-container-cols"> - <img class="auto-img-frame-cols" src="{@docRoot}auto/images/assets/00_frame.png" /> - <img class="auto-img-shot-cols" src="{@docRoot}auto/images/assets/do_02_music_night.png" /> - </div> -</div> -</div> -<p class="img-caption"> - <strong>Figure 6.</strong> Day and night modes. -</p> - -<h3 id="customizeui">Customizing UIs</h3> - -<p>To customize the UI, you provide the following app-specific resources and actions -to the Android Auto media client:</p> - -<ul> -<li><strong>Resources</strong> - App logo, app name, theme colors, and background images.</li> -<li><strong>Actions</strong> - Multiple custom actions; for example: <em>Thumbs Up/Down</em>, -<em>Favorite</em>, and <em>Bookmark</em>. These actions are app-specific.</li> -</ul> - -<p>If provided, the media client automatically uses them in the UI.</p> - - -<h2 id="devprocess">Development Process</h2> - -<p class="note"><strong>Note:</strong> 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.</p> - -<p>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, and performing app-specific actions.</p> - -<p>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, and -invoke app-specific actions.</p> - -<p>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:</p> - -<ul> -<li>You do not have to maintain a separate project for Android Auto</li> -<li>You can reuse existing functionality from your Android app</li> -</ul> - -<p>The Android Auto client presents the customized UI to users and invokes the -functionality from your service as needed. This has two additional advantages:</p> - -<ul> -<li>Your app does not implement a UI for Android Auto</li> -<li>Your app does not manage user interactions directly</li> -</ul> - -<p>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.</p> - - -<h2 id="emulator">Testing Your App on an Android Device</h2> - -<p>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:</p> - -<ol> -<li>Get an Android device with a similar form factor to a dashboard screen (like a -Nexus 7).</li> -<li>Configure the device for Android development.</li> -<li>Install the APK for the media client from the Android Auto SDK on the device.</li> -<li>Install the APK for your app on the device.</li> -<li>Open the media client app from the Android Auto SDK on the device.</li> -<li>Select your app from the list of available services.</li> -</ol> - -<p>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.</p> - - -<h2 id="running">Running Your App on Android Auto</h2> - -<p>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.</p> - -<p>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.</p> - -<div style="margin-bottom:40px"> </div> -</div> |