page.title=Gingerbread

@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 0 0 40px;
}
#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>

<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;margin-left:20px;padding-bottom:2em;"
src="{@docRoot}sdk/images/2.3/home-menu.png" alt="" height="280" />
<img style="float:right;margin-left:20px;padding-bottom:2em;"
src="{@docRoot}sdk/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="{@docRoot}sdk/images/2.3/onetouch.png" alt=""
height="260" /></div>
<div style="padding-right:2em;float:left;"><img src="{@docRoot}sdk/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;margin-left:20px;"><img
src="{@docRoot}sdk/images/2.3/running.png" alt="" height="280" /></div>
<div style="padding-left:1em;float:right;margin-left:20px;"><img
src="{@docRoot}sdk/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="{@docRoot}sdk/images/2.3/sipcall.png" alt=""
height="190" align="left"/><br>
<img src="{@docRoot}sdk/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;margin-left:20px;;"><img
src="{@docRoot}sdk/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>
