page.title=Android 4.0 Platform Highlights

@jd:body


<style type="text/css">
#jd-content {
  max-width:1024px;
}
#jd-content div.screenshot {
  float:left;
  clear:left;
  padding:15px 30px 15px 0;
}
#jd-content div.video {
  float:right;
  margin-top:-15px;
}
#jd-content table.columns {
  margin:0 0 1em 0;
}
#jd-content table.columns td {
  padding:0;
}
#jd-content table.columns td+td {
  padding:0 2em;
}
#jd-content table.columns td img {
  margin:0;
}
#jd-content table.columns td+td>*:first-child {
  margin-top:-2em;
}
.green {
  color:#8db529;
  font-weight:bold;
}
</style>

<div class="video" style="margin:1.5em 0 1.5em 1.5em">
<iframe width="380" height="223" src="http://www.youtube.com/embed/-F_ke3rxopc?hd=1" frameborder="0"
allowfullscreen></iframe>
</div>

<p>Welcome to Android 4.0!</p>

<p>Android 4.0 delivers a refined, unified UI for phones and tablets and introduces innovative features for users and developers. This document provides a glimpse of the many new features and technologies that make Android 4.0 simple, beautiful, and beyond smart. <!--For technical details about
new developer APIs described below, see the <a
href="{@docRoot}sdk/android-4.0.html">Android 4.0 API Overview</a> document.--></p>

<ul>
  <li><a href="#UserFeatures">Android 4.0 for Users</a></li>
  <li><a href="#DeveloperApis">Android 4.0 for Developers</a></li>
</ul>

<h2 id="UserFeatures" style="clear:right">Android 4.0 for Users</h2>

<div style="padding-bottom:0em;">
<a href="{@docRoot}sdk/images/4.0/home-lg.png" target="_android"><img style="float:right;xborder:1px solid #ddd;border-radius: 5px;" src="{@docRoot}sdk/images/4.0/home.png" alt="" height="300" width="180" /></a>
<a href="{@docRoot}sdk/images/4.0/lock-lg.png" target="_android"><img style="float:right;border:1px solid #ddd;border-radius: 5px;" src="{@docRoot}sdk/images/4.0/lock.png" alt="" height="300"  width="180" /></a>
</div>


<h3 id="simple" style="color:#172861">Simple, beautiful, beyond smart</h3>

<p>Android 4.0 builds on the things people love most about Android &mdash; easy
multitasking, rich notifications, customizable home screens, resizable widgets,
and deep interactivity &mdash; and adds powerful new ways of communicating and
sharing.</p>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Refined, evolved UI</strong></p>

<p>Focused on bringing the power of Android to the surface, Android 4.0 makes
<strong>common actions more visible</strong> and lets users navigate with
simple, intuitive gestures. Refined <strong>animations</strong> and feedback
throughout the system make interactions engaging and interesting. An entirely
<strong>new typeface</strong> optimized for high-resolution screens improves
readability and brings a polished, modern feel to the user interface.</p>

<p>Virtual buttons in the System Bar let users navigate instantly to Back, Home,
and Recent Apps. The <strong>System Bar</strong> and virtual buttons are present
across all apps, but can be dimmed by applications for full-screen viewing.
Users can access each application's contextual options in the <strong>Action
Bar</strong>, displayed at the top (and sometimes also at the bottom) of the
screen.</p>

<p><strong>Multitasking</strong> is a key strength of Android and it's made even
easier and more visual on Android 4.0. The Recent Apps button lets users jump
instantly from one task to another using the list in the System Bar. The list
pops up to show thumbnail images of apps used recently &mdash; tapping a
thumbnail switches to the app.</p>

<div  style="padding-top:0em;">
<div style="margin-right:.5em;float:left;width:182px;padding-top:.5em;">
<a href="{@docRoot}sdk/images/4.0/tasks-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/tasks.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1em;font-size:.9em;padding-right:1em;">The Recent Apps list makes multitasking simple.</div>
<a href="{@docRoot}sdk/images/4.0/lock-camera-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/lock-camera.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1em;font-size:.9em;padding-right:1.75em;">Jump to the camera or see notifications without unlocking.</div>
<a href="{@docRoot}sdk/images/4.0/contact-call-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/contact-call.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a>
<!--<a href="{@docRoot}sdk/images/4.0/quick-response-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/quick-responses-new.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>-->
<div style="padding-left:1em;padding-bottom:.5em;font-size:.9em;padding-right:1.75em;">For incoming calls, you can respond instantly by&nbsp;text.</div>
</div>
</div>

<p>Rich and interactive <strong>notifications</strong> let users keep in
constant touch with incoming messages, play music tracks, see real-time updates
from apps, and much more. On smaller-screen devices, notifications appear at the
top of the screen, while on larger-screen devices they appear in the System
Bar.</p>

<div  style="padding-top:0em;">
<div style="margin-right:1em;float:right;margin-left:1em;margin-top:.5em;margin-bottom:0;padding-bottom:0;width:326px">
<a href="{@docRoot}sdk/images/4.0/allapps-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/allapps.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<a href="{@docRoot}sdk/images/4.0/calendar-widget-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/calendar-widget.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure 3.</strong>-->The All Apps launcher (left) and resizable widgets (right) give you apps and rich content from the home screen.</div>
</div>
</div>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Home screen folders and
favorites tray</strong></p>

<p>New <strong>home screen folders</strong> offer a new way for users to group
their apps and shortcuts logically, just by dragging one onto another. From the
All Apps launcher, users can now simply drag an app to get information about it
or immediately uninstall it, or disable a pre-installed app.</p>

<p>On smaller-screen devices, the home screen now includes a customizable
<strong>favorites tray</strong> visible from all home screens. Users can drag
apps, shortcuts, folders, and other priority items in or out of the favorites
tray for instant access from any home screen.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Resizable
widgets</strong></p>

<p>Home screens in Android 4.0 are designed to be content-rich and customizable.
Users can do much more than add shortcuts &mdash; they can embed live
application content directly through interactive <strong>widgets</strong>.
Widgets let users check email, flip through a calendar, play music, check social
streams, and more &mdash; right from the home screen, without having to launch
apps. Widgets are resizable, so users can expand them to show more content or
shrink them to save space.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>New lock screen
actions</strong></p>

<p>The lock screens now let users do more without unlocking. From the slide lock
screen, users can <strong>jump directly to the camera</strong> for a picture or
<strong>pull down the notifications window</strong> to check for messages. When
listening to music, users can even manage music tracks and see album art. </p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Quick responses for
incoming calls</strong></p>

<p>When an incoming call arrives, users can now quickly <strong>respond by text
message</strong>, without needing to pick up the call or unlock the device. On
the incoming call screen, users simply slide a control to see a list of text
responses and then tap to send and end the call. Users can add their own
responses and manage the list from the Settings app.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Swipe to dismiss
notifications, tasks, and browser tabs</strong></p>

<p>Android 4.0 makes managing notifications, recent apps, and brwoser tabs even
easier. Users can now dismiss individual notifications, apps from the Recent
Apps list, and browser tabs with a simple swipe of a finger. </p>

<div  style="padding-top:0em;">
<div style="margin-right:1em;float:right;margin-left:1em;margin-top:1.5em;margin-bottom:0;padding-bottom:0;width:200px">
<a href="{@docRoot}sdk/images/4.0/text-replace-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/text-replace.png" alt="" width="190" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure 3.</strong>-->A spell-checker lets you find errors and fix them faster. </div>
<a href="{@docRoot}sdk/images/4.0/tts-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/tts.png" alt="" width="190" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em">A powerful voice input engine lets you dictate continously.</div>
</div>
</div>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Improved text input and
spell-checking</strong></p>
  
<p>The soft keyboard in Android 4.0 makes text input even faster and more
accurate. Error correction and word suggestion are improved through a new set of
default dictionaries and more accurate heuristics for handling cases such as
double-typed characters, skipped letters, and omitted spaces. Word suggestion is
also improved and the suggestion strip is simplified to show only three words at
a time.</p>

<p>To fix misspelled words more easily, Android 4.0 adds a spell-checker that
locates and underlines errors and suggests replacement words. With one tap,
users can choose from multiple spelling suggestions, delete a word, or add it to
the dictionary. Users can even tap to see replacement suggestions for words that
are spelled correctly. For specialized features or additional languages, users
can now download and install third-party dictionaries, spell-checkers, and other
text services.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Powerful voice input
engine</strong></p>

<p>Android 4.0 introduces a powerful new voice input engine that offers a
continuous "open microphone" experience and streaming voice recognition. The new
voice input engine lets users dictate the text they want, for as long as they
want, using the language they want. Users can speak continously for a prolonged
time, even pausing for intervals if needed, and dictate punctuation to create
correct sentences. As the voice input engine enters text, it underlines possible
dictation errors in gray. After dictating, users can tap the underlined words to
quickly replace them from a list of suggestions.</p>

<div  style="padding-top:0em;">
<div style="margsin-right:.8em;float:left;width:350px;padding-top:1em;">
<a href="{@docRoot}sdk/images/4.0/usage-all-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/usage-all.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<a href="{@docRoot}sdk/images/4.0/usage-maps-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/usage-maps.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1em;font-size:.9em;padding-right:1.75em;"><!--<strong>Figure 3.</strong>--> Data usage controls let you monitor total usage by network type and application and then set limits if needed.</div>
</div>
</div>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Control over network
data</strong></p>

<p>Mobile devices can make extensive use of network data for streaming content,
synchronizing data, downloading apps, and more. To meet the needs of users with
<strong>tiered or metered data plans</strong>, Android 4.0 adds new controls for
managing network data usage.</p>

<p>In the Settings app, colorful charts show the total data usage on each
network type (mobile or Wi-Fi), as well as amount of data used by each running
application. Based on their data plans, users can optionally set warning levels
or hard limits on data usage or disable mobile data altogether. Users can also
manage the background data used by individual applications as needed.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Designed for
accessibility</strong></p>

<p>A variety of new features greatly enhance the accessibility of Android 4.0
for blind or visually impaired users. Most important is a new
<strong>explore-by-touch mode</strong> that lets users navigate without having
to see the screen. Touching the screen once triggers audible feedback that
identifies the UI component below; a second touch in the same component
activates it with a full touch event. The new mode is especially important to
support users on new devices that use virtual buttons in the System Bar, rather
than dedicated hardware buttons or trackballs. Also, standard apps are updated
to offer an improved accessibility experience. The <strong>Browser</strong>
supports a script-based screen reader for reading favorite web content and
navigating sites. For improved readability, users can also increase the default
font size used across&nbsp;the&nbsp;system.</p>

<p>The accessibility experience begins at first setup &mdash; a simple
<strong>touch gesture</strong> during setup (clockwise square from upper left)
activates all accessibility features and loads a setup tutorial. Once
accessibility features are active, everything visible on the screen can be
spoken aloud by the standard screen reader.</p>


<h3 id="comms" style="color:#172861">Communication and sharing</h3>

<div  style="padding-top:0em;">
<div style="margin-right:1em;float:right;margin-left:.5em;margin-top:1.5em;margin-bottom:0;padding-bottom:0;width:490px">
<!--<img src="{@docRoot}sdk/images/4.0/contact-call.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" />-->
<a href="{@docRoot}sdk/images/4.0/contact-faves-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/contact-faves.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a>
<a href="{@docRoot}sdk/images/4.0/contact-connect-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/contact-connect.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a>
<a href="{@docRoot}sdk/images/4.0/contact-email-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/contact-email.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a>

<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure 3.</strong>-->Contacts and profiles are integrated across apps and social networks, for a consistent, personal experience everywhere &mdash; from incoming calls to emails.</div>
</div>
</div>

<p>Designed for the way people live, Android 4.0 integrates rich social
communication and sharing touchpoints across the system, making it easy to talk,
email, text, and share.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>People and
profiles</strong></p>

<p>Throughout the system, a user’s social groups, profiles, and contacts are
linked together and integrated for easy accessibility. At the center is a new
<strong>People app</strong> that offers richer profile information, including a
large profile picture, phone numbers, addresses and accounts, status updates,
events, and a new button for connecting on integrated social networks. </p>

<p>The user's own contact information is stored in a new <strong>"Me"
profile</strong>, allowing easier sharing with apps and people. All of the
user's integrated contacts are displayed in an easy to manage list, including
controls over which contacts are shown from any integrated account or social
network. Wherever the user navigates across the system, tapping a profile photo
displays Quick Contacts, with large profile pictures, shortcuts to phone numbers,
text messaging, and more. </p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Unified calendar, visual
voicemail</strong></p>

<p>To help organize appointments and events, an updated <strong>Calendar
app</strong> brings together personal, work, school, and social agendas. With
user permission, other applications can contribute events to the calendar and
manage reminders, for an integrated view across multiple calendar providers. The
app is redesigned to let users manage events more easily. Calendars are
color-coded and users can <strong>swipe left or right</strong> to change dates
and pinch to zoom in or out agendas. </p>

<p>In the phone app, a new <strong>visual voicemail</strong> features integrates
incoming messages, voice transcriptions, and audio files from one or more
providers. Third-party applications can integrate with the Phone app to add
their own voice messages, transcriptions, and more to the visual voicemail
inbox. </p>

<div  style="padding-top:0em;">
<div style="margsin-right:0em;float:left;width:282px;padding-top:1em;">
<a href="{@docRoot}sdk/images/4.0/camera-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/camera.png" alt="" width="240" height="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<a href="{@docRoot}sdk/images/4.0/gallery-edit-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/gallery-edit.png" alt="" width="240" height="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<a href="{@docRoot}sdk/images/4.0/gallery-share-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/gallery-share.png" alt="" width="240" height="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1em;font-size:.9em;padding-right:2.75em;">Capture the picture you want, edit, and share instantly. </div>
</div>
</div>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Rich and versatile camera
capabilities</strong></p>

<p>The Camera app includes many new features that let users capture special moments
with great photos and videos. After capturing images, they can edit and share
them easily with friemds. </p>

<p>When taking pictures, <strong>continuous focus</strong>, <strong>zero shutter
lag exposure</strong>, and decreased shot-to-shot speed help capture clear,
precise images. <strong>Stabilized image zoom</strong> lets users compose photos
and video in the way they want, including while video is recording. For new
flexibility and convenience while shooting video, users can now take
<strong>snapshots at full video resolution</strong> just by tapping the screen
as video continues to record.</p>

<p>To make it easier to take great pictures of people, built-in <strong>face
detection</strong> locates faces in the frame and automatically sets focus. For
more control, users can <strong>tap to focus</strong> anywhere in the preview
image. </p>

<p>For capturing larger scenes, the Camera introduces a <strong>single-motion
panorama</strong> mode. In this mode, the user starts an exposure and then
slowly turns the Camera to encompass as wide a perspective as needed. The Camera
assembles the full range of continuous imagery into a single panoramic
photo.</p>

<p>After taking a picture or video, users can quickly share it by email, text
message, bluetooth, social networks, and more, just by tapping the thumbnail in
the camera controls. </p>


<div  style="padding-top:0em;">
<div style="margin-right:1em;float:right;margin-left:1em;padding-top:1em;margin-bottom:1em;padding-bottom:0;width:160px">
<img src="{@docRoot}sdk/images/4.0/gallery-widget.png" alt="" width="144" style="border:1px solid #ddd;border-radius: 6px;" />
<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em">A Photo Gallery widget on the home screen.</div>
</div>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Redesigned Gallery app
with photo editor</strong></p>

<p>The Gallery app now makes it easier to manage, show, and share photos and
videos. For managing collections, a <strong>redesigned album layout</strong>
shows many more albums and offers larger thumbnails. There are many ways to sort
albums, including by time, location, people, and tags. To help pictures look
their best, the Gallery now includes a powerful <strong>photo editor</strong>.
Users can crop and rotate pictures, set levels, remove red eyes, add effects,
and much more. After retouching, users can select one or multiple pictures or
videos to share instantly over email, text messaging, bluetooth, social
networks, or other apps.</p>

<p>An improved <strong>Picture Gallery widget</strong> lets users look at
pictures directly on their home screen. The widget can display pictures from a
selected album, shuffle pictures from all albums, or show a single image. After
adding the widget to the home screen, users can flick through the photo stacks
to locate the image they want, then tap to load it in Gallery. </p>

<div  style="padding-top:0em;clear:right;">
<div style="margin-right:1em;float:right;margin-left:1em;padding-top:1em;margin-bottom:1em;padding-bottom:0;width:320px">
<img src="{@docRoot}sdk/images/4.0/live-effects.png" alt="" width="297" style="border:1px solid #ddd;border-radius: 6px;" />
<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Live Effects let you change backgrounds and use Silly Faces during video.</div>
</div>
</div>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Live Effects for transforming video</strong></p>

<p>Live Effects is a collection of graphical transformations that add interest
and fun to videos captured in the Camera app. For example, users can change the
background behind them to any stock or custom image, for just the right setting
when shooting video or using Google Talk video chat. Also available is Silly
Faces, a set of morphing effects that use state-of-the-art face recognition and
GPU filters to add great effects to facial features during video capture. For
example, you can use effects such as small eyes, big mouth, big nose, face
squeeze, and more. Outside of the Camera app, Live Effects is available during
video chat in the Google Talk app.</p>

<div  style="padding-top:0em;">
<div style="margsin-right:.8em;float:left;width:186px;padding-top:1em;">
<a href="{@docRoot}sdk/images/4.0/screenshot-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/screenshot.png" alt="" height="240"  width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"> Snapping a screenshot.</div>
</div>
</div>
</div>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Sharing with screenshots</strong></p>

<p>Users can now share what's on their screens more easily by taking
screenshots. Hardware buttons let them snap a <strong>screenshot</strong> and
store it locally. Afterward, they can view, edit, and share the screen shot in
Gallery or a similar app.</p>


<h3 id="cloud" style="color:#172861">Cloud-connected experience</h3>

<div  style="padding-top:0em;">
<div style="margin-right:1em;float:right;margin-left:1em;padding-top:1em;margin-bottom:0;padding-bottom:0;width:326px">
<a href="{@docRoot}sdk/images/4.0/browser-tabs-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/browser-tabs.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<a href="{@docRoot}sdk/images/4.0/browser-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/browser.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure 3.</strong>-->The Browser tabs menu <em>(left)</em> lets you quickly switch browser tabs. The options menu <em>(right)</em> gives you new ways to manage your browsing experience.</div>
<img src="{@docRoot}sdk/images/4.0/bbench.png" alt="" width="310" />
<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Benchmark comparisons of Android Browser.</div>
</div>
</div>

<p>Android has always been cloud-connected, letting users browse the web and
sync photos, apps, games, email, and contacts &mdash; wherever they are and
across all of their devices. Android 4.0 adds new browsing and email
capabilities to let users take even more with them and keep communication
organized.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Powerful web
browsing</strong></p>

<p>The Android Browser offers an experience that’s as rich and convenient as a
desktop browser. It lets users instantly sync and manage <strong>Google Chrome
bookmarks</strong> from all of their accounts, jump to their favorite content
faster, and even save it for reading later in case there's no network
available.</p>

<p>To get the most out of web content, users can now request full
<strong>desktop versions</strong> of web sites, rather than their mobile
versions. Users can set their preference for web sites separately for each
<strong>browser tab</strong>. For longer content, users can save a copy for
<strong>offline reading</strong>. To find and open saved pages, users can browse
a visual list that’s included with browser bookmarks and history.  For better
readability and accessibility, users can increase the browser’s <strong>zoom
levels</strong> and override the system default <strong>text sizes</strong>.</p>

<p>Across all types of content, the Android Browser offers dramatically improved
<strong>page rendering performance</strong> through updated versions of the
WebKit core and the V8 Crankshaft compilation engine for JavaScript. In
benchmarks run on a Nexus S device, the Android 4.0 browser showed an
improvement of nearly 220% over the Android 2.3 browser in the V8 Benchmark
Suite and more than 35% in the SunSpider 9.1 JavaScript Benchmark. When run on a
Galaxy Nexus device, the Android 4.0 browser showed improvement of nearly 550%
in the V8 benchmark and nearly 70% in the SunSpider benchmark.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Improved
email</strong></p>

<p>In Android 4.0, email is easier to send, read, and manage. For composing
email, <strong>improved auto-completion</strong> of recipients helps with
finding and adding frequent contacts more quickly. For easier input of frequent
text, users can now create <strong>quick responses</strong> and store them in
the app, then enter them from a convenient menu when composing. When replying to
a message, users can now toggle the message to Reply All and Forward without
changing screens.</p>

<p>For easier browsing across accounts and labels, the app adds an
<strong>integrated menu</strong> of accounts and recent labels. To help users
locate and organize IMAP and Exchange email, the Email app now supports
<strong>nested mail subfolders</strong>, each with synchronization rules. Users
can also search across folders on the server, for faster results. </p>

<p>For <strong>enterprises</strong>, the Email app supports EAS v14. It supports
EAS certificate authentication, provides ABQ strings for device type and mode,
and allows automatic sync to be disabled while roaming. Administrators can also
limit attachment size or disable attachments.</p>

<p>For keeping track of incoming email more easily, a <strong>resizable Email
widget</strong> lets users flick through recent email right from the home
screen, then jump into the Email app to compose or reply.</p>


<div  style="padding-top:0em;">
<div style="margsin-right:.8em;float:left;width:186px;padding-top:1em;">
<a href="{@docRoot}sdk/images/4.0/beam-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/beam.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em;padding-right:1.5em;">Android Beam lets users share what they are using with a single tap.</div>
</div>
</div>

<h3 id="innovation" style="color:#172861">Innovation</h3>

<p>Android is continously driving innovation forward, pushing the boundaries of
communication and sharing with new capabilities and interactions.</p>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Android Beam for
NFC-based sharing</strong></p>

<p>Android Beam is an innovative, convenient feature for sharing across two
NFC-enabled devices, It lets people instantly exchange favorite apps, contacts,
music, videos &mdash; almost anything. It’s incredibly simple and convenient to
use &mdash; there’s no menu to open, application to launch, or pairing needed.
Just touch one Android-powered phone to another, then tap to send.</p>

<p>For sharing apps, Android Beam pushes a link to the app's details page in
Android Market. On the other device, the Market app launches and loads the
details page, for easy downloading of the app. Individual apps can build on
Android Beam to add other types of interactions, such as passing game scores,
initiating a multiplayer game or chat, and more.</p>

<div  style="padding-top:0em;">
<div style="margin-right:1em;float:right;margin-left:1em;margin-top:.5em;margin-bottom:0;padding-bottom:0;width:160px">
<a href="{@docRoot}sdk/images/4.0/face-unlock-lg.png" target="_android">
<img src="{@docRoot}sdk/images/4.0/face-unlock.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>
<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Face recognition lets you unlock your phone with your face.</div>
</div>
</div>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Face Unlock</strong></p>

<p>Android 4.0 introduces a completely new approach to securing a device, making
it even more personal &mdash; Face Unlock is a new screen-lock option that lets
users unlock their devices with their faces. It takes advantage of
state-of-the-art facial recognition technology to register a face and to
recognize it later when unlocking the device. Users just hold their devices in
front of their faces to unlock, or use a backup PIN or pattern. </p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Wi-Fi Direct and Bluetooth HDP</strong></p>

<p>Support for <strong>Wi-Fi Direct</strong> lets users connect directly to
nearby peer devices over Wi-Fi, for more reliable, higher-speed communication.
No internet connection or tethering is needed. Through third-party apps, users
can connect to compatible devices to take advantage of new features such as
instant sharing of files, photos, or other media; streaming video or audio from
another device; or connecting to compatible printers or other devices.</p>

<p>Android 4.0 also introduces built-in support for connecting to <strong>Bluetooth Health Device Profile (HDP)</strong> devices. With support from third-party apps, users can connect to wireless medical devices and sensors in hospitals, fitness centers, homes, and elsewhere. In addition, for connecting to higher quality Bluetooth audio devices, Android 4.0 adds support for Bluetooth Hands Free Profile (HFP) 1.6.</p>


<h2 id="DeveloperApis" style="clear:right">New Developer Features</h2>

<!-- <ul>
<li><a href="#ui-dev">Unified UI framework for phones, tablets, and more</a></li>
<li><a href="#communication-dev">Communication and sharing</a></li>
<li><a href="#media-dev">New media capabilities</a></li>
<li><a href="#connectivity-dev">New types of connectivity</a></li>
<li><a href="#uicomp-dev">New UI components and capabilities</a></li>
<li><a href="input-dev">New input types and text services</a></li>
<li><a href="#accessibility-dev">Enhanced accessibility APIs</a></li>
<li><a href="#data-dev">Efficient network usage</a></li>
<li><a href="#security-dev">Security for apps and content</a></li>
<li><a href="#enterprise-dev">Enhancements for Enterprise</a></li>
</ul>-->

<h3 id="ui-dev">Unified UI framework for phones, tablets, and more</h3>

<p>Android 4.0 brings a unified UI framework that lets developers create
elegant, innovative apps for phones, tablets, and more. It includes all of the
familiar Android 3.x interface elements and APIs &mdash; fragments, content
loaders, Action Bar, rich notifications, resizable home screen widgets, and more
&mdash; as well as new elements and APIs.</p>

<p>For developers, the unified UI framework in Android 4.0 means new UI tools,
consistent design practices, simplified code and resources, and streamlined
development across the range of Android-powered devices.</p>

<div class="sidebox-wrapper">
<div class="sidebox" style="border-left:1px solid #22a5ca;background-color:#fff;">
  <h3>Key Android 3.x developer features, <br>now for phones too</h3>

<p>Core UI</p>
<ul>
<li>Fragments and content loaders</li>
<li>Resizeable home screen widgets</li>
<li>Rich notifications</li>
<li>Multi-selection, drag-drop, clipboard</li>
<li>Improved screen-support API</li>
<li>Hardware-accelerated 2D graphics</li>
</ul>

<p>Graphics and animation</p>
<ul>
<li>Property-based animation</li>
<li>Renderscript 3D graphics</li>
</ul>

<p>Media and connectivity</p>
<ul>
<li>HTTP Live streaming</li>
<li>Bluetooth A2DP and HSP devices</li>
<li>Support for RTP</li>
<li>MTP/PTP file transfer</li>
<li>DRM framework</li>
<li>Input from keyboard, mouse, gamepad, joystick</li>
</ul>

<p>Enterprise</p>
<ul>
<li>Full device encryption</li>
<li>DPM policies for encrypted storage and passwords</li>
</ul>
</div>
</div>

<h3 id="communication-dev">Communication and sharing</h3>

<p>Android 4.0 extends social and sharing features to any application on the
device. Applications can integrate contacts, profile data, and calendar events
from any of the user’s activities or social networks.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Social API</strong></p>

<p>A shared social provider and API provide a new unified store for contacts,
profile data, status updates, and photos. Any app or social network with user
permission can contribute raw contacts and make them accessible to other apps
and networks. Applications with user permission can also read profile data from
the provider and display it in their applications.</p>

<p>The social API lets applications store standard contact data as well as new
types of content for any given contact, including large profile photos and
recent activity feedback. Recent activity feedback is a standard way for
applications to “tag” a contact with common activity, such as when the user
calls the contact or sends an email or SMS message. The social provider uses the
recent activity feedback as a new signal in ranking, such as for name
auto-complete, to keep the most relevant contacts ranked closest to the top.</p>

<p>Applications can also let users set up a social connection to a contact from
the People app. When the user touches Add Connection in a contact, the app
sends a public intent that other apps can handle, displaying any UI needed
to create the social connection.</p>

<p>Building on the social API, developers can add powerful new interactions that
span multiple social networks and contacts sources.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Calendar API</strong></p>

<p>A shared calendar content provider and framework API make it easier for
developers to add calendar services to their apps.</p>

<p>With user permission, any application can add events to the shared database
and manage dates, attendees, alerts, and reminders. Applications can also read
entries from the database, including events contributed by other applications,
and handle the display of event alerts and reminders. Using the calendar
provider, applications can take advantage of event data sourced from a variety
of apps and protocols, to offer innovative ways of viewing and managing a user’s
events. Apps can also use calendar data to improve the relevance of their
other content.</p>

<p>For lighter-weight access to calendar services, the Calendar app defines a
set of public Intents for creating, viewing, and editing events. Rather than
needing to implement a calendar UI and integrate directly with the calendar
provider, applications can simply broadcast calendar Intents. When the Calendar
app receives the Intents, it launches the appropriate UI and stores any event
data entered. Using calendar Intents, for example, apps can let users add events
directly from lists, dialogs, or home screen widgets, such as for making
restaurant reservations or booking time with friends.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Visual voicemail
API</strong></p>

<p>A shared Voicemail provider and API allow developers to build applications
that contribute to a unified voicemail store.  Voicemails are displayed and
played in the call log tab of the platform’s Phone app.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Android Beam</strong></p>

<p>Android Beam is an NFC-based feature that lets users instantly share
information about the apps they are using, just by touching two NFC-enabled
phones together. When the devices are in range &mdash; within a few centimeters
&mdash; the system sets up an NFC connection and displays a sharing UI. To share
whatever they are viewing with the other device, users just touch the screen.
</p>

<p>For developers, Android Beam is a new way of triggering almost any type of
proximity-based interaction. For example, it can let users instantly exchange
contacts, set up multiplayer gaming, join a chat or video call, share a photo or
video, and more. The system provides the low-level NFC support and the sharing
UI, while the foreground app provides lightweight data to transfer to the other
device. Developers have complete control over the data that is shared and how it
is handled, so almost any interaction is possible. For larger payloads,
developers can even use Android Beam to initiate a connection and transfer the
data over Bluetooth, without the need for user-visible pairing.</p>

<p>Even if developers do not add custom interactions based on Android Beam they
can still benefit from it being deeply integrated into Android. By default the
system shares the app’s Android Market URL, so it’s easy for the user to
download or purchase the app right away.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Modular sharing
widget</strong></p>

<p>The UI framework includes a new widget, ShareActionProvider, that lets
developers quickly embed standard share functionality and UI in the Action Bar
of their applications. Developers simply add ShareActionProvider to the menu and
set an intent that describes the desired sharing action. The system handles the
rest, building up the list of applications that can handle the share intent and
dispatching the intent when the user chooses from the menu.</p>


<h3 id="media-dev">New media capabilities</h3>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Low-level streaming
multimedia</strong></p>

<p>Android 4.0 provides a direct, efficient path for low-level streaming
multimedia. The new path is ideal for applications that need to maintain
complete control over media data before passing it to the platform for
presentation. For example, media applications can now retrieve data from any
source, apply proprietary encryption/decryption, and then send the data to the
platform for display.</p>

<p>Applications can now send processed data to the platform as a multiplexed
stream of audio/video content in MPEG-2 transport stream format. The platform
de-muxes, decodes, and renders the content. The audio track is rendered to the
active audio device, while the video track is rendered to either a Surface or a
SurfaceTexture. When rendering to a SurfaceTexture, the application can apply
subsequent graphics effects to each frame using OpenGL.</p>

<p>To support this low-level streaming, the platform introduces a new native API
based on <a href="http://www.khronos.org/openmax/al/" target="_top">Khronos
OpenMAX AL 1.0.1</a>. The  API is implemented on the same underlying services as
the platform’s existing OpenSL ES API, so developers can make use of both APIs
together if needed. Tools support for low-level streaming multimedia will be
available in an upcoming release of the Android NDK.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>New camera
capabilities</strong></p>

<p>Developers can take advantage of a variety of new camera features in Android
4.0. ZSL exposure, continuous focus, and image zoom let apps capture better
still and video images, including during video capture. Apps can even capture
full-resolution snapshots while shooting video. Apps can now set custom metering
regions in a camera preview, then manage white balance and exposure dynamically
for those regions. For easier focusing and image processing, a face-detection
service identifies and tracks faces in a preview and returns their screen
coordinates.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Media effects for
transforming images and video</strong></p>

<p>A set of high-performance transformation filters let developers apply rich
effects to any image passed as an OpenGL ES 2.0 texture. Developers can adjust
color levels and brightness, change backgrounds, sharpen, crop, rotate, add lens
distortion, and apply other effects. The transformations are processed by the
GPU, so they are fast enough for processing image frames loaded from disk,
camera, or video stream.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Audio remote
controls</strong></p>

<p>Android 4.0 adds a new audio remote control API that lets media applications
integrate with playback controls that are displayed in a remote view. Media
applications can integrate with a remote music playback control that’s built
into in the platform’s lock screen, allowing users to control song selection and
playback without having to unlock and navigate to the music app.</p>

<p>Using the audio remote control API, any music or media app can register to
receive media button events from the remote control and then manage play state
accordingly. The application can also supply metadata to the remote control,
such as album art or image, play state, track number and description, duration,
genre, and more.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>New media codecs and
containers</strong></p>

<p>Android 4.0 adds support for additional media types and containers to give
developers access to the formats they need. For high-quality compressed images,
the media framework adds support for WebP content. For video, the framework now
supports streaming VP8 content. For streaming multimedia, the framework supports
HTTP Live streaming protocol version 3 and encoding of ADTS-contained AAC
content. Additionally, developers can now use Matroska containers for Vorbis and
VP8 content.</p>


<h3 id="connectivity-dev">New types of connectivity</h3>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Wi-Fi Direct</strong></p>

<p>Developers can use a framework API to discover and connect directly to nearby
devices over a high-performance, secure Wi-Fi Direct connection. No internet
connection or hotspot is needed.</p>

<p>Wi-Fi Direct opens new opportunities for developers to add innovative
features to their applications. Applications can use Wi-Fi Direct to share
files, photos, or other media between devices or between a desktop computer and
an Android-powered device. Applications could also use Wi-Fi Direct to stream
media content from a peer device such as a digital television or audio player,
connect a group of users for gaming, print files, and more.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Bluetooth Health Device
Profile (HDP)</strong></p>

<p>Developers can now build powerful medical applications that use Bluetooth to
communicate with wireless devices and sensors in hospitals, fitness centers,
homes, and elsewhere. Applications can collect and manage data from HDP source
devices and transmit it to backend medical applications such as records systems,
data analysis services, and others.</p>

<p>Using a framework API, applications can use Bluetooth to discover nearby
devices, establish reliable or streaming data channels, and manage data
transmission. Applications can supply any IEEE 11073 Manager to retrieve and
interpret health data from Continua-certified devices such as heart-rate
monitors, blood meters, thermometers, and scales. </p>


<h3 id="uicomp-dev">New UI components and capabilities</h3>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Layout
enhancements</strong></p>

<p>A new layout, GridLayout, improves the performance of Android applications by
supporting flatter view hierarchies that are faster to layout and render.
Because hierarchies are flatter, developers can also manage alignments between
components that are visually related to each other even when they are not
logically related, for precise control over application UI. GridLayout is also
specifically designed to be configured by drag-and-drop design tools such as the
ADT Plug-in for Eclipse.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>OpenGL ES texture
views</strong></p>

<p>A new TextureView object lets developers directly integrate OpenGL ES
textures as rendering targets in a UI hierarchy. The object lets developers
display and manipulate OpenGL ES rendering just as they would a normal view
object in the hierarchy, including moving, transforming, and animating the view
as needed. The TextureView object makes it easy for developers to embed camera
preview, decoded video, OpenGL game scenes, and more. TextureView can be viewed
as a more powerful version of the existing SurfaceView object, since it offers
the same benefits of access to a GL rendering surface, with the added advantage
of having that surface participate fully in the normal view hierarchy.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Hardware-accelerated 2D
drawing</strong></p>

<p>All Android-powered devices running Android 4.0 are required to support
hardware-accelerated 2D drawing. Developers can take advantage of this to add
great UI effects while maintaining optimal performance on high-resolution
screens, even on phones. For example, developers can rely on accelerated
scaling, rotation, and other 2D operations, as well as accelerated UI components
such as TextureView and compositing modes such as filtering, blending, and
opacity.</p>


<h3 id="input-dev">New input types and text services</h3>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Stylus input, button
support, hover events</strong></p>

<p>Android 4.0 includes full support for stylus input events, including tilt and
distance axes, pressure, and related motion event properties. To help
applications distinguish motion events from different sources, the platform adds
distinct tool types for stylus, finger, mouse, and eraser. For improved input
from multi-button pointing devices, the platform now provides distinct primary,
secondary, and tertiary buttons, as well as back and forward buttons.
Hover-enter and hover-exit events are also added, for improved navigation and
accessibility. Developers can build on these new input features to add powerful
interactions to their apps, such as precise drawing and gesturing, handwriting
and shape recognition, improved mouse input, and others.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Text services API for
integrating spelling checkers</strong></p>

<p>Android 4.0 lets applications query available text services such as
dictionaries and spell checkers for word suggestions, corrections, and similar
data. The text services are external to the active IME, so developers can create
and distribute dictionaries and suggestion engines that plug into the platform.
When an application receives results from a text service &mdash; for example,
word suggestions &mdash; it can display them in a dedicated suggestion popup
window directly inside the text view, rather than relying on the IME to display
them. </p>


<h3 id="accessibility-dev">Enhanced accessibility APIs</h3>

<p>Android 4.0 adds new accessibility features and an enhanced API to let
developers improve the user experience in their apps, especially on devices that
don’t have hardware buttons. For accessibility services such as screen readers
in particular, the platform offers new APIs to query window content, for easier
navigation, better feedback, and richer user interfaces.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Accessibility
API</strong></p>

<p>To let applications manage interactions more effectively when accessibility
features are enabled, the platform adds accessibility events for
explore-by-touch mode, scrolling, and text selection. For these and other
events, the platform can attach a new object called an accessibility record that
provides extra information about the event context.</p>

<p>Using the accessibility record and related APIs, applications can now access
the view hierarchy associated with an event. Applications can query for key
properties such as parent and child nodes, available states, supported actions,
screen position, and more. Applications can also request changes to certain
properties to help manage focus and selected state. For example, an
accessibility service could use these new capabilities to add convenient
features such as screen-search by text. </p> 


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Text-to-speech
API</strong></p>

<p>A new framework API lets developers write text-to-speech engines and make
them available to any app requesting TTS capabilities.</p>


<h3 id="data-dev">Efficient network usage</h3>

<p>In Android 4.0, users can see how much network data their running apps are
using. They can also set limits on data usage by network type and disable
background data usage for specific applications. In this context, developers
need to design their apps to run efficiently and follow best practices for
checking the network connection. Android 4.0 provides network APIs to let
applications meet those goals.</p>

<p>As users move between networks or set limits on network data, the platform
lets applications query for connection type and availability. Developers can use
this information to dynamically manage network requests to ensure the best
experience for users. Developers can also build custom network and data-usage
options into their apps, then expose them to users directly from Settings by
means of a new system Intent.</p>


<h3 id="security-dev">Security for apps and content</h3>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>Secure management of
credentials</strong></p>

<p>Android 4.0 makes it easier for applications to manage authentication and
secure sessions. A new keychain API and underlying encrypted storage let
applications store and retrieve private keys and their corresponding certificate
chains. Any application can use the keychain API to install and store user
certificates and CAs securely.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Address Space Layout
Randomization</strong></p>

<p>Android 4.0 now provides address space layout randomization (ASLR) to help
protect system and third party applications from exploitation due to
memory-management issues.</p>


<h3 id="enterprise-dev">Enhancements for Enterprise</h3>

<p style="margin-top:1em;margin-bottom:.75em;"><strong>VPN client
API</strong></p>

<p>Developers can now build or extend their own VPN solutions on the platform
using a new VPN API and underlying secure credential storage. With user
permission, applications can configure addresses and routing rules, process
outgoing and incoming packets, and establish secure tunnels to a remote server.
Enterprises can also take advantage of a standard VPN client built into the
platform that provides access to L2TP and IPSec protocols.</p>


<p style="margin-top:1em;margin-bottom:.75em;"><strong>Device policy management
for camera</strong></p>

<p>The platform adds a new policy control for administrators who manage devices
using an installed Device Policy Manager. Administrators can now remotely
disable the camera on a managed device for users working in sensitive
environments.</p>





