page.title=Android 2.0 Platform Highlights
sdk.date=October 2009

@jd:body


<style type="text/css">
#jd-content div.screenshot,
#jd-content div.video {
  float:right;
  clear:right;
  padding:15px 60px;
  font-size:.9em;
  font-weight:bold;
  line-height:1.7em;
}
#jd-content div.video {
  padding-top:0;
  margin-top:-15px;
}
#jd-content div.screenshot.second {
  clear:none;
  padding:15px 0 15px 60px;
}
#jd-content div.screenshot img {
  margin:0;
  border:1px solid #ccc;
}
</style>

<div class="video">
<object width="278 height="180">
<param name="movie" value="http://www.youtube.com/v/opZ69P-0Jbc&hl=en&fs=1&"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/opZ69P-0Jbc&hl=en&fs=1&" type="application/x-shockwave-flash" 
allowscriptaccess="always" allowfullscreen="true" width="278" height="180"></embed>
</object>
</div>


<p>The Android 2.0 platform introduces many new and exciting features for
users and developers. This document provides a glimpse at some of the new features
and technologies in Android 2.0.</p>

<ul>
  <li><a href="#UserFeatures">New User Features</a></li>
  <li><a href="#PlatformTechnologies">New Platform Technologies</a></li>
</ul>


    
<h2 id="UserFeatures" style="clear:right">New User Features</h2>

<!-- screenshots float right -->

<div class="screenshot">
  <img src="{@docRoot}sdk/images/2.0/quick-connect.png" class="screenshot" alt="" /><br/>
  Quick Contact for Android
</div>

<div class="screenshot second">
  <img src="{@docRoot}sdk/images/2.0/multiple-accounts.png" class="screenshot" alt="" /><br/>
  Multiple Accounts
</div>

<div class="screenshot">
  <img src="{@docRoot}sdk/images/2.0/mms-search.png" class="screenshot" alt="" /><br/>
  Messaging Search
</div>

<div class="screenshot second">
  <img src="{@docRoot}sdk/images/2.0/email-inbox.png" class="screenshot" alt="" /><br/>
  Email Combined Inbox
</div>

<div class="screenshot">
  <img src="{@docRoot}sdk/images/2.0/camera-modes.png" class="screenshot" alt="" /><br/>
  Camera Modes
</div>



<h3 id="Contacts">Contacts and accounts</h3>

<ul>
  <li>Multiple accounts can be added to a device for email and contact
synchronization, including Exchange accounts. (Handset manufacturers can
choose whether to include Exchange support in their devices.)</li>
  <li>Developers can create sync adapters that provide synchronization with
additional data sources.</li>
  <li>Quick Contact for Android provides instant access to
a contact's information and communication modes. For example, a user can tap a
contact photo and select to call, SMS, or email the person. Other applications
such as Email, Messaging, and Calendar can also reveal the Quick Contact widget
when you touch a contact photo or status icon.</li>
</ul>


<!--
<ul>
  <li>Sync support for contacts from multiple data sources including Exchange. 
  Handset manufacturers can choose whether or not to include Exchange support 
  in their devices.</li>
  <li>New way to hover on a person to see more info and select communication 
  mode (for example, phone, SMS, email).</li>
</ul>
-->

<h3 id="Email">Email</h3>

<ul>
  <li>Exchange support.</li>
  <li>Combined inbox to browse email from multiple accounts in one page.</li>
</ul>


<h3 id="Messaging">Messaging</h3>

<ul>
  <li>Search functionality for all saved SMS and MMS messages.</li>
  <li>Auto delete the oldest messages
  in a conversation when a defined limit is reached.</li>
</ul>


<h3 id="Camera">Camera</h3>

<ul>
  <li>Built-in flash support</li>
  <li>Digital zoom</li>
  <li>Scene mode</li>
  <li>White balance</li>
  <li>Color effect</li>
  <li>Macro focus</li>
</ul>

<h3 id="Keyboard">Android virtual keyboard</h3>

<ul>
  <li>An improved keyboard layout to makes it easier to hit the correct characters
  and improve typing speed.</li>
  <li>The framework's multi-touch support ensures that key presses aren't missed
  while typing rapidly with two fingers.</li>
  <li>A smarter dictionary learns from word usage and automatically includes
  contact names as suggestions.</li>
</ul>


<h3 id="Browser">Browser</h3>

<ul>
  <li>Refreshed UI with actionable browser URL bar enables users to directly 
  tap the address bar for instant searches and navigation.</li>
  <li>Bookmarks with web page thumbnails.</li>
  <li>Support for double-tap zoom.</li>
  <li>Support for HTML5:</p>
    <ul>
      <li>Database API support, for client-side databases using SQL.</li>
      <li>Application cache support, for offline applications.</li>
      <li>Geolocation API support, to provide location information about the device.</li>
      <li>{@code &lt;video>} tag support in fullscreen mode.</li>
    </ul>
  </li>
</ul>


<h3 id="Calendar">Calendar</h3>
<ul>
  <li>Agenda view provides infinite scrolling.</li>
  <li>Events indicate the attending status for each invitee.</li>
  <li>Invite new guests to events.</li>
</ul>


<h2 id="PlatformTechnologies" style="clear:right">New Platform Technologies</h2>

<h3 id="MediaFramework">Media Framework</h3>

<p>Revamped graphics architecture for improved performance that enables better
hardware acceleration.</p>


<h3 id="Bluetooth">Bluetooth</h3>

<ul>
  <li>Bluetooth 2.1</li>
  <li>New BT profiles: Object Push Profile (OPP) and Phone Book Access Profile (PBAP)</li>
</ul>


<h3 id="DeveloperAPIs">New Framework APIs</h3>

<p>Android 2.0 includes several new developer APIs.
For an overview of new APIs, see the 
<a href="{@docRoot}about/versions/android-2.0.html#api">Android 2.0 version notes</a>.</p>

<p>For a complete report of all API changes, see the 
<a href="{@docRoot}sdk/api_diff/5/changes.html">API Differences Report</a>.</p>



