page.title=Android 2.3 Platform Highlights

@jd:body


<style type="text/css">
#jd-content {
  max-width:1200px;
}
#jd-content div.screenshot {
  float:left;
  clear:left;
  padding:15px 30px 15px 0;
}
#jd-content div.video {
  float:right;
  padding:0 60px 40px;
  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">
<object width="278" height="180">
<param name="movie" value="http://www.youtube.com/v/Jx3pdWBlZ34?hl=en&fs=1"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess"
value="always"></param>
<embed src="http://www.youtube.com/v/Jx3pdWBlZ34?hl=en&fs=1" type="application/x-shockwave-flash"
allowscriptaccess="always" allowfullscreen="true" width="278" height="180"></embed>
</object>
</div>

<p>The Android 2.3 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.3. For detailed information about the new developer APIs, see the <a
href="android-2.3.html">Android 2.3 version notes</a>.</p>

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


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

<div>
<img style="float:right;padding-bottom:2em;" src="images/2.3/home-menu.png" alt="" height="280" />
<img style="float:right;padding-bottom:2em;" src="images/2.3/home-plain.png" alt="" height="280" />

<h3>UI refinements for simplicity and speed</h3>

<p>The user interface is refined in many ways across the system, making it
easier to learn, faster to use, and more power-efficient. A simplified
visual theme of colors against black brings vividness and contrast to the
notification bar, menus, and other parts of the UI.  Changes in menus and
settings make it easier for the user to navigate and control the features
of the system and device. </p>

<h3>Faster, more intuitive text input</h3>

<p>The Android soft keyboard is redesigned and optimized for faster text input
and editing. The keys themselves are reshaped and repositioned for improved
targeting, making them easier to see and press accurately, even at high speeds.
The keyboard also displays the current character and dictionary suggestions in a
larger, more vivid style that is easier to read.</p>

<p>The keyboard adds the capability to correct entered words from suggestions in
the dictionary. As the user selects a word already entered, the keyboard
displays suggestions that the user can choose from, to replace the selection.
The user can also switch to voice input mode to replace the selection. Smart
suggestions let the user accept a suggestion and then return to correct it
later, if needed, from the original set of suggestions.</p>

<p>New multitouch key-chording lets the user quickly enter numbers and symbols
by pressing Shift+&lt;<em>letter</em>&gt; and ?123+&lt;<em>symbol</em>&gt;,
without needing to manually switch input modes. From certain keys, users can
also access a popup menu of accented characters, numbers, and symbols by holding
the key and sliding to select a character.</p>
</div>

<div  style="padding-top:1em;">
<div style="margin-right:1em;float:left;"><img src="images/2.3/onetouch.png" alt="" height="260" /></div>
<div style="padding-right:2em;float:left;"><img src="images/2.3/selection.png" alt="" height="160" /></div>


<h3>One-touch word selection and copy/paste</h3>

<p>When entering text or viewing a web page, the user can quickly select a word
by press-hold, then copy to the clipboard and paste. Pressing on a word enters a
free-selection mode &mdash; the user can adjust the selection area as needed by
dragging a set of bounding arrows to new positions, then copy the bounded area
by pressing anywhere in the selection area. For text entry, the user can
slide-press to enter a cursor mode, then reposition the cursor easily and
accurately by dragging the cursor arrow. With both the selection and cursor
modes, no use of a trackball is needed.</p>

</div>

<div style="clear:left">
<div style="padding-right:2em;float:right;"><img src="images/2.3/running.png" alt="" height="280" /></div>
<div style="padding-left:1em;float:right;"><img src="images/2.3/power.png" alt="" height="280" /></div>

<h3>Improved power management </h3>

<p>The Android system takes a more active role in managing apps that are keeping
the device awake for too long or that are consuming CPU while running in the
background. By managing such apps &mdash; closing them if appropriate &mdash;
the system helps ensure best possible performance and maximum battery life.</p>

<p>The system also gives the user more visibility over the power being consumed
by system components and running apps. The Application settings provides an
accurate overview of how the battery  is being used, with details of the usage
and relative power consumed  by each component or application.</p>

<h3>Control over applications</h3>

<p>A shortcut to the Manage Applications control now appears in the Options Menu
in the Home screen and Launcher, making it much easier to check and manage
application activity. Once the user enters Manage Applications, a new Running
tab displays a list of active applications and the storage and memory being used
by each. The user can read further details about each application and if
necessary stop an application or report feedback to its developer. </p>
</div>

<h3>New ways of communicating, organizing</h3>

<p>An updated set of standard applications lets the user take new approaches to
managing information and relationships. </p>

<div  style="padding-top:1em;">
<div style="padding-right:1.5em;float:left;"><img src="images/2.3/sipcall.png" alt="" height="190" align="left"/><br>
<img src="images/2.3/ffc.png" alt="" height="190" align="left" style="margin-bottom:1.5em;margin-top:.75em;"/><div></div>
</div>

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

<p>The user can make voice calls over the internet to other users who have SIP
accounts. The user can add an internet calling number (a SIP address) to any
Contact and can initiate a call from Quick Contact or Dialer. To use internet
calling, the user must create an account at the SIP provider of their choice
&mdash; SIP accounts are not provided as part of the internet calling feature.
Additionally, support for the platform's SIP and internet calling features on
specific devices is determined by their manufacturers and associated carriers.
</p>

<div style="padding-right:1.5em;float:right;;"><img src="images/2.3/nfc.png" alt="" height="190" /> </div>

<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Near-field communications</strong></p>

<p>An NFC Reader application lets the user read and interact with near-field
communication (NFC)  tags. For example, the user can “touch” or “swipe” an NFC
tag that might be embedded in a poster, sticker, or advertisement, then act on
the data read from the tag. A typical use would be to read a tag at a
restaurant, store, or event and then rate or register by jumping to a web site
whose URL is included in the tag data. NFC communication relies on wireless
technology in the device hardware, so support for the platform's NFC features on
specific devices is determined by their manufacturers.
</p>
</div>

<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Downloads management</strong></p>

<p>The Downloads application gives the user easy access to any file downloaded from
the browser, email, or another application. Downloads is built on an completely new
download manager facility in the system that any other applications can use, to
more easily manage and store their downloads.</p>

<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Camera</strong></p>

<p>The application now lets the user access multiple cameras on the device,
including a front-facing camera, if available. </p>


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

<p>Android 2.3 delivers a variety of features and APIs that
let developers bring new types of applications to the Android
platform.</p>

 <ul>
<li><a href="#gaming">Enhancements for gaming</a></li>
<li><a href="#communication">New forms of communication</a></li>
<li><a href="#multimedia">Rich multimedia</a></li>
</ul>

<h3 id="gaming">Enhancements for gaming</h3>

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

<p>Android 2.3 includes a variety of improvements across the system that make
common operations faster and more efficient for all applications. Of particular
interest to game developers are:</p>

<ul>
<li>Concurrent garbage collector &mdash; The Dalivik VM introduces a new,
concurrent garbage collector that minimizes application pauses, helping to
ensure smoother animation and increased responsiveness in games and similar
applications. </li>
<li>Faster event distribution &mdash; The plaform now handles touch and keyboard
events faster and more efficiently, minimizing CPU utilization during event
distribution. The changes improve responsiveness for all applications, but
especially benefit games that use touch events in combination with 3D graphics
or other CPU-intensive operations. </li>
<li>Updated video drivers &mdash; The platform uses updated third-party video
drivers that improve the efficiency of OpenGL ES operations, for faster overall
3D graphics performance. </li>
</ul>


<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native input and
sensor events</strong></p>

<p>Applications that use native code can now receive and process input and
sensor events directly in their native code, which dramatically improves
efficiency and responsiveness. </p>

<p>Native libraries exposed by the platform let applications handle the same
types of input events as those available through the framework. Applications
can receive events from all supported sensor types and can enable/disable
specific sensors and manage event delivery rate and queueing. </p>


<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Gyroscope and other
new sensors, for improved 3D motion processing</strong></p>

<p>Android 2.3 adds API support for several new sensor types, including
gyroscope, rotation vector, linear acceleration, gravity, and barometer sensors.
Applications can use the new sensors in combination with any other sensors
available on the device, to track three-dimensional device motion and
orientation change with high precision and accuracy. For example, a game
application could use readings from a gyroscope and accelerometer on the device
to recognize complex user gestures and motions, such as tilt, spin, thrust, and
slice.  </p>


<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Open API for native
audio</strong></p>

<p>The platform provides a software implementation of <a
href="http://www.khronos.org/opensles/">Khronos OpenSL ES</a>, a standard API
that gives applications access to powerful audio controls and effects from
native code. Applications can use the API to manage audio devices and control
audio input, output, and processing directly from native code.</p>

<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native graphics
management</strong></p>

<p>The platform provides an interface to its <a
href="http://www.khronos.org/egl/">Khronos EGL</a> library, which lets
applications manage graphics contexts and create and manage OpenGL ES textures
and surfaces from native code.</p>


<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native access to
Activity lifecycle, window management</strong></p>

<p>Native applications can declare a new type of Activity class,
<code>NativeActivity</code> whose lifecycle callbacks are implemented directly
in native code. The <code>NativeActivity</code> and its underlying native code
run in the system just as do other Activities &mdash; they run in the
application's system process and execute on the application's main UI thread,
and they receive the same lifecycle callbacks as do other Activities. </p>

<p>The platform also exposes native APIs for managing windows, including the
ability to lock/unlock the pixel buffer to draw directly into it. Through the
API, applications can obtain a native window object associated with a framework
Surface object and interact with it directly in native code.</p>


<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native access to
assets, storage</strong></p>

<p>Applications can now access a native Asset Manager API to retrieve
application assets directly from native code without needing to go through JNI.
If the assets are compressed, the platform does streaming decompression as the
application reads the asset data. There is no longer a limit on the size of
compressed <code>.apk</code> assets that can be read.</p>

<p>Additionally, applications can access a native Storage Manager API to work
directly with OBB files downloaded and managed by the system. Note that although
platform support for OBB is available in Android 2.3, development tools for
creating and managing OBB files will not be available until early 2011.</p>


<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Robust native
development environment</strong></p>

<p>The Android NDK (r5 or higher) provides a complete set of tools, toolchains,
and libraries for developing applications that use the rich native environment
offered by the Android 2.3 platform. For more information or to download the
NDK, please see the <a
href="http://developer.android.com/sdk/ndk/index.html">Android&nbsp;NDK</a>
page. </p>


<h3 id="communication">New forms of communication</h3>

<p style="margin-top:.75em;margin-bottom:.75em;"><strong>Internet
telephony</strong></p>

<p>Developers can now add SIP-based internet telephony features to their
applications. Android 2.3 includes a full SIP protocol stack and integrated call
management services that let applications easily set up outgoing and incoming
voice calls, without having to manage sessions, transport-level communication,
or audio record or playback directly. </p>

<p>Support for the platform's SIP and internet calling features on specific
devices is determined by their manufacturers and associated carriers.</p>


<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Near Field
Communications (NFC)</strong></p>

<p>The platform's support for Near Field Communications (NFC) lets developers
get started creating a whole new class of applications for Android. Developers
can create new applications that offer proximity-based information and services
to users, organizations, merchants, and advertisers. </p>

<p>Using the NFC API,
applications can read and respond to NFC tags “discovered” as the user “touches” an
NFC-enabled device to elements embedded in stickers, smart posters, and even
other devices. When a tag of interest is collected, applications can respond to
the tag, read messages from it, and then store the messages, prompting
the user as needed. </p>

<p>Starting from Android 2.3.3, applications can also write to tags and
set up peer-to-peer connections with other NFC devices.</p>

<p>NFC communication relies on wireless technology in the device hardware, so
support for the platform's NFC features on specific devices is determined by
their manufacturers.</p>


<h3 id="multimedia">Rich multimedia</h3>

<p style="margin-top:.75em;margin-bottom:.75em;"><strong>Mixable audio
effects</strong></p>

<p>A new audio effects API lets developers easily create rich audio environments
by adding equalization, bass boost, headphone virtualization (widened
soundstage), and reverb to audio tracks and sounds. Developers can mix multiple
audio effects in a local track or apply effects globally, across multiple
tracks.</p>

<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Support for new media
formats</strong></p>

<p>The platform now offers built-in support for the VP8 open video compression
format and the WebM open container format. The platform also adds support for
AAC encoding and AMR wideband encoding (in software), so that applications can
capture higher quality audio than narrowband. </p>

<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Access to multiple
cameras</strong></p>

<p>The Camera API now lets developers access any cameras that are available on a
device, including a front-facing camera. Applications can query the platform for
the number of cameras on the device and their types and characteristics, then
open the camera needed. For example, a video chat application might want to access a
front-facing camera that offers lower-resolution, while a photo application
might prefer a back-facing camera that offers higher-resolution.</p>


<h2 id="PlatformTechnologies">New Platform Technologies</h2>

<h3>Media Framework</h3>

<ul>
<li>New media framework fully replaces OpenCore, maintaining all previous
codec/container support for encoding and decoding.</li>
<li>Integrated support for the VP8 open video compression format and the WebM
open container format</li>
<li>Adds AAC encoding and AMR wideband encoding</li>
</ul>

<h3>Linux Kernel </h3>
<ul>
<li>Upgraded to 2.6.35</li>
</ul>

<h3>Networking</h3>
<ul>
<li>SIP stack, configurable by device manufacturer
<li>Support for Near Field Communications (NFC), configurable by device manufacturer</li>
<li>Updated BlueZ stack</li>
</ul>

<h3>Dalvik runtime</h3>

<ul>
<li>Dalvik VM:
<ul>
<li>Concurrent garbage collector (target sub-3ms pauses)</li>
<li>Adds further JIT (code-generation) optimizations</li>
<li>Improved code verification</li>
<li>StrictMode debugging, for identifying performance and memory issues</li>
</ul>
</li>


<li>Core libraries:
<ul>
  <li>Expanded I18N support (full worldwide encodings, more locales)
  <li>Faster Formatter and number formatting. For example, float formatting is 2.5x faster.</li>
  <li>HTTP responses are gzipped by default. XML and JSON API response sizes may be reduced by 60% or more.</li>
  <li>New collections and utilities APIs</li>
  <li>Improved network APIs</li>
  <li>Improved file read and write controls</li>
  <li>Updated JDBC</li>
</ul>
</li>

<li>Updates from upstream projects:
  <ul>
  <li>OpenSSL 1.0.0a</li>
  <li>BouncyCastle 1.45</li>
  <li>ICU 4.4</li>
  <li>zlib 1.2.5</li>
  </ul>
</li>


</ul>

<p>For more information about the new developer APIs, see the <a
href="android-2.3.html">Android 2.3 version notes</a> and the <a
href="{@docRoot}sdk/api_diff/9/changes.html">API Differences Report</a>.</p>
