Home | History | Annotate | Download | only in versions
      1 page.title=Gingerbread
      2 
      3 @jd:body
      4 
      5 
      6 <style type="text/css">
      7 #jd-content {
      8   max-width:1200px;
      9 }
     10 #jd-content div.screenshot {
     11   float:left;
     12   clear:left;
     13   padding:15px 30px 15px 0;
     14 }
     15 #jd-content div.video {
     16   float:right;
     17   padding:0 0 0 40px;
     18 }
     19 #jd-content table.columns {
     20   margin:0 0 1em 0;
     21 }
     22 #jd-content table.columns td {
     23   padding:0;
     24 }
     25 #jd-content table.columns td+td {
     26   padding:0 2em;
     27 }
     28 #jd-content table.columns td img {
     29   margin:0;
     30 }
     31 #jd-content table.columns td+td>*:first-child {
     32   margin-top:-2em;
     33 }
     34 .green {
     35   color:#8db529;
     36   font-weight:bold;
     37 }
     38 </style>
     39 
     40 <p>The Android 2.3 platform introduces many new and exciting features for
     41 users and developers. This document provides a glimpse at some of the new features
     42 and technologies in Android 2.3. For detailed information about the new developer APIs, see the <a
     43 href="android-2.3.html">Android 2.3 version notes</a>.</p>
     44 
     45 <ul>
     46   <li><a href="#UserFeatures">New User Features</a></li>
     47   <li><a href="#DeveloperApis">New Developer Features</a></li>
     48   <li><a href="#PlatformTechnologies">New Platform Technologies</a></li>
     49 </ul>
     50 
     51 
     52 <h2 id="UserFeatures" style="clear:right">New User Features</h2>
     53 
     54 <div>
     55 <img style="float:right;margin-left:20px;padding-bottom:2em;"
     56 src="{@docRoot}sdk/images/2.3/home-menu.png" alt="" height="280" />
     57 <img style="float:right;margin-left:20px;padding-bottom:2em;"
     58 src="{@docRoot}sdk/images/2.3/home-plain.png" alt="" height="280" />
     59 
     60 <h3>UI refinements for simplicity and speed</h3>
     61 
     62 <p>The user interface is refined in many ways across the system, making it
     63 easier to learn, faster to use, and more power-efficient. A simplified
     64 visual theme of colors against black brings vividness and contrast to the
     65 notification bar, menus, and other parts of the UI.  Changes in menus and
     66 settings make it easier for the user to navigate and control the features
     67 of the system and device. </p>
     68 
     69 <h3>Faster, more intuitive text input</h3>
     70 
     71 <p>The Android soft keyboard is redesigned and optimized for faster text input
     72 and editing. The keys themselves are reshaped and repositioned for improved
     73 targeting, making them easier to see and press accurately, even at high speeds.
     74 The keyboard also displays the current character and dictionary suggestions in a
     75 larger, more vivid style that is easier to read.</p>
     76 
     77 <p>The keyboard adds the capability to correct entered words from suggestions in
     78 the dictionary. As the user selects a word already entered, the keyboard
     79 displays suggestions that the user can choose from, to replace the selection.
     80 The user can also switch to voice input mode to replace the selection. Smart
     81 suggestions let the user accept a suggestion and then return to correct it
     82 later, if needed, from the original set of suggestions.</p>
     83 
     84 <p>New multitouch key-chording lets the user quickly enter numbers and symbols
     85 by pressing Shift+&lt;<em>letter</em>&gt; and ?123+&lt;<em>symbol</em>&gt;,
     86 without needing to manually switch input modes. From certain keys, users can
     87 also access a popup menu of accented characters, numbers, and symbols by holding
     88 the key and sliding to select a character.</p>
     89 </div>
     90 
     91 <div  style="padding-top:1em;">
     92 <div style="margin-right:1em;float:left;"><img src="{@docRoot}sdk/images/2.3/onetouch.png" alt=""
     93 height="260" /></div>
     94 <div style="padding-right:2em;float:left;"><img src="{@docRoot}sdk/images/2.3/selection.png" alt=""
     95 height="160" /></div>
     96 
     97 
     98 <h3>One-touch word selection and copy/paste</h3>
     99 
    100 <p>When entering text or viewing a web page, the user can quickly select a word
    101 by press-hold, then copy to the clipboard and paste. Pressing on a word enters a
    102 free-selection mode &mdash; the user can adjust the selection area as needed by
    103 dragging a set of bounding arrows to new positions, then copy the bounded area
    104 by pressing anywhere in the selection area. For text entry, the user can
    105 slide-press to enter a cursor mode, then reposition the cursor easily and
    106 accurately by dragging the cursor arrow. With both the selection and cursor
    107 modes, no use of a trackball is needed.</p>
    108 
    109 </div>
    110 
    111 <div style="clear:left">
    112 <div style="padding-right:2em;float:right;margin-left:20px;"><img
    113 src="{@docRoot}sdk/images/2.3/running.png" alt="" height="280" /></div>
    114 <div style="padding-left:1em;float:right;margin-left:20px;"><img
    115 src="{@docRoot}sdk/images/2.3/power.png" alt="" height="280" /></div>
    116 
    117 <h3>Improved power management </h3>
    118 
    119 <p>The Android system takes a more active role in managing apps that are keeping
    120 the device awake for too long or that are consuming CPU while running in the
    121 background. By managing such apps &mdash; closing them if appropriate &mdash;
    122 the system helps ensure best possible performance and maximum battery life.</p>
    123 
    124 <p>The system also gives the user more visibility over the power being consumed
    125 by system components and running apps. The Application settings provides an
    126 accurate overview of how the battery  is being used, with details of the usage
    127 and relative power consumed  by each component or application.</p>
    128 
    129 <h3>Control over applications</h3>
    130 
    131 <p>A shortcut to the Manage Applications control now appears in the Options Menu
    132 in the Home screen and Launcher, making it much easier to check and manage
    133 application activity. Once the user enters Manage Applications, a new Running
    134 tab displays a list of active applications and the storage and memory being used
    135 by each. The user can read further details about each application and if
    136 necessary stop an application or report feedback to its developer. </p>
    137 </div>
    138 
    139 <h3>New ways of communicating, organizing</h3>
    140 
    141 <p>An updated set of standard applications lets the user take new approaches to
    142 managing information and relationships. </p>
    143 
    144 <div  style="padding-top:1em;">
    145 <div style="padding-right:1.5em;float:left;"><img src="{@docRoot}sdk/images/2.3/sipcall.png" alt=""
    146 height="190" align="left"/><br>
    147 <img src="{@docRoot}sdk/images/2.3/ffc.png" alt="" height="190" align="left"
    148 style="margin-bottom:1.5em;margin-top:.75em;"/><div></div>
    149 </div>
    150 
    151 <p style="margin-top:1em;margin-bottom:.75em;"><strong>Internet calling</strong></p>
    152 
    153 <p>The user can make voice calls over the internet to other users who have SIP
    154 accounts. The user can add an internet calling number (a SIP address) to any
    155 Contact and can initiate a call from Quick Contact or Dialer. To use internet
    156 calling, the user must create an account at the SIP provider of their choice
    157 &mdash; SIP accounts are not provided as part of the internet calling feature.
    158 Additionally, support for the platform's SIP and internet calling features on
    159 specific devices is determined by their manufacturers and associated carriers.
    160 </p>
    161 
    162 <div style="padding-right:1.5em;float:right;margin-left:20px;;"><img
    163 src="{@docRoot}sdk/images/2.3/nfc.png" alt="" height="190" /> </div>
    164 
    165 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Near-field communications</strong></p>
    166 
    167 <p>An NFC Reader application lets the user read and interact with near-field
    168 communication (NFC)  tags. For example, the user can touch or swipe an NFC
    169 tag that might be embedded in a poster, sticker, or advertisement, then act on
    170 the data read from the tag. A typical use would be to read a tag at a
    171 restaurant, store, or event and then rate or register by jumping to a web site
    172 whose URL is included in the tag data. NFC communication relies on wireless
    173 technology in the device hardware, so support for the platform's NFC features on
    174 specific devices is determined by their manufacturers.
    175 </p>
    176 </div>
    177 
    178 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Downloads management</strong></p>
    179 
    180 <p>The Downloads application gives the user easy access to any file downloaded from
    181 the browser, email, or another application. Downloads is built on an completely new
    182 download manager facility in the system that any other applications can use, to
    183 more easily manage and store their downloads.</p>
    184 
    185 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Camera</strong></p>
    186 
    187 <p>The application now lets the user access multiple cameras on the device,
    188 including a front-facing camera, if available. </p>
    189 
    190 
    191 <h2 id="DeveloperApis" style="clear:both">New Developer Features</h2>
    192 
    193 <p>Android 2.3 delivers a variety of features and APIs that
    194 let developers bring new types of applications to the Android
    195 platform.</p>
    196 
    197  <ul>
    198 <li><a href="#gaming">Enhancements for gaming</a></li>
    199 <li><a href="#communication">New forms of communication</a></li>
    200 <li><a href="#multimedia">Rich multimedia</a></li>
    201 </ul>
    202 
    203 <h3 id="gaming">Enhancements for gaming</h3>
    204 
    205 <p style="margin-top:.75em;margin-bottom:.75em;"><strong>Performance</strong></p>
    206 
    207 <p>Android 2.3 includes a variety of improvements across the system that make
    208 common operations faster and more efficient for all applications. Of particular
    209 interest to game developers are:</p>
    210 
    211 <ul>
    212 <li>Concurrent garbage collector &mdash; The Dalivik VM introduces a new,
    213 concurrent garbage collector that minimizes application pauses, helping to
    214 ensure smoother animation and increased responsiveness in games and similar
    215 applications. </li>
    216 <li>Faster event distribution &mdash; The plaform now handles touch and keyboard
    217 events faster and more efficiently, minimizing CPU utilization during event
    218 distribution. The changes improve responsiveness for all applications, but
    219 especially benefit games that use touch events in combination with 3D graphics
    220 or other CPU-intensive operations. </li>
    221 <li>Updated video drivers &mdash; The platform uses updated third-party video
    222 drivers that improve the efficiency of OpenGL ES operations, for faster overall
    223 3D graphics performance. </li>
    224 </ul>
    225 
    226 
    227 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native input and
    228 sensor events</strong></p>
    229 
    230 <p>Applications that use native code can now receive and process input and
    231 sensor events directly in their native code, which dramatically improves
    232 efficiency and responsiveness. </p>
    233 
    234 <p>Native libraries exposed by the platform let applications handle the same
    235 types of input events as those available through the framework. Applications
    236 can receive events from all supported sensor types and can enable/disable
    237 specific sensors and manage event delivery rate and queueing. </p>
    238 
    239 
    240 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Gyroscope and other
    241 new sensors, for improved 3D motion processing</strong></p>
    242 
    243 <p>Android 2.3 adds API support for several new sensor types, including
    244 gyroscope, rotation vector, linear acceleration, gravity, and barometer sensors.
    245 Applications can use the new sensors in combination with any other sensors
    246 available on the device, to track three-dimensional device motion and
    247 orientation change with high precision and accuracy. For example, a game
    248 application could use readings from a gyroscope and accelerometer on the device
    249 to recognize complex user gestures and motions, such as tilt, spin, thrust, and
    250 slice.  </p>
    251 
    252 
    253 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Open API for native
    254 audio</strong></p>
    255 
    256 <p>The platform provides a software implementation of <a
    257 href="http://www.khronos.org/opensles/">Khronos OpenSL ES</a>, a standard API
    258 that gives applications access to powerful audio controls and effects from
    259 native code. Applications can use the API to manage audio devices and control
    260 audio input, output, and processing directly from native code.</p>
    261 
    262 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native graphics
    263 management</strong></p>
    264 
    265 <p>The platform provides an interface to its <a
    266 href="http://www.khronos.org/egl/">Khronos EGL</a> library, which lets
    267 applications manage graphics contexts and create and manage OpenGL ES textures
    268 and surfaces from native code.</p>
    269 
    270 
    271 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native access to
    272 Activity lifecycle, window management</strong></p>
    273 
    274 <p>Native applications can declare a new type of Activity class,
    275 <code>NativeActivity</code> whose lifecycle callbacks are implemented directly
    276 in native code. The <code>NativeActivity</code> and its underlying native code
    277 run in the system just as do other Activities &mdash; they run in the
    278 application's system process and execute on the application's main UI thread,
    279 and they receive the same lifecycle callbacks as do other Activities. </p>
    280 
    281 <p>The platform also exposes native APIs for managing windows, including the
    282 ability to lock/unlock the pixel buffer to draw directly into it. Through the
    283 API, applications can obtain a native window object associated with a framework
    284 Surface object and interact with it directly in native code.</p>
    285 
    286 
    287 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Native access to
    288 assets, storage</strong></p>
    289 
    290 <p>Applications can now access a native Asset Manager API to retrieve
    291 application assets directly from native code without needing to go through JNI.
    292 If the assets are compressed, the platform does streaming decompression as the
    293 application reads the asset data. There is no longer a limit on the size of
    294 compressed <code>.apk</code> assets that can be read.</p>
    295 
    296 <p>Additionally, applications can access a native Storage Manager API to work
    297 directly with OBB files downloaded and managed by the system. Note that although
    298 platform support for OBB is available in Android 2.3, development tools for
    299 creating and managing OBB files will not be available until early 2011.</p>
    300 
    301 
    302 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Robust native
    303 development environment</strong></p>
    304 
    305 <p>The Android NDK (r5 or higher) provides a complete set of tools, toolchains,
    306 and libraries for developing applications that use the rich native environment
    307 offered by the Android 2.3 platform. For more information or to download the
    308 NDK, please see the <a
    309 href="http://developer.android.com/sdk/ndk/index.html">Android&nbsp;NDK</a>
    310 page. </p>
    311 
    312 
    313 <h3 id="communication">New forms of communication</h3>
    314 
    315 <p style="margin-top:.75em;margin-bottom:.75em;"><strong>Internet
    316 telephony</strong></p>
    317 
    318 <p>Developers can now add SIP-based internet telephony features to their
    319 applications. Android 2.3 includes a full SIP protocol stack and integrated call
    320 management services that let applications easily set up outgoing and incoming
    321 voice calls, without having to manage sessions, transport-level communication,
    322 or audio record or playback directly. </p>
    323 
    324 <p>Support for the platform's SIP and internet calling features on specific
    325 devices is determined by their manufacturers and associated carriers.</p>
    326 
    327 
    328 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Near Field
    329 Communications (NFC)</strong></p>
    330 
    331 <p>The platform's support for Near Field Communications (NFC) lets developers
    332 get started creating a whole new class of applications for Android. Developers
    333 can create new applications that offer proximity-based information and services
    334 to users, organizations, merchants, and advertisers. </p>
    335 
    336 <p>Using the NFC API,
    337 applications can read and respond to NFC tags discovered as the user touches an
    338 NFC-enabled device to elements embedded in stickers, smart posters, and even
    339 other devices. When a tag of interest is collected, applications can respond to
    340 the tag, read messages from it, and then store the messages, prompting
    341 the user as needed. </p>
    342 
    343 <p>Starting from Android 2.3.3, applications can also write to tags and
    344 set up peer-to-peer connections with other NFC devices.</p>
    345 
    346 <p>NFC communication relies on wireless technology in the device hardware, so
    347 support for the platform's NFC features on specific devices is determined by
    348 their manufacturers.</p>
    349 
    350 
    351 <h3 id="multimedia">Rich multimedia</h3>
    352 
    353 <p style="margin-top:.75em;margin-bottom:.75em;"><strong>Mixable audio
    354 effects</strong></p>
    355 
    356 <p>A new audio effects API lets developers easily create rich audio environments
    357 by adding equalization, bass boost, headphone virtualization (widened
    358 soundstage), and reverb to audio tracks and sounds. Developers can mix multiple
    359 audio effects in a local track or apply effects globally, across multiple
    360 tracks.</p>
    361 
    362 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Support for new media
    363 formats</strong></p>
    364 
    365 <p>The platform now offers built-in support for the VP8 open video compression
    366 format and the WebM open container format. The platform also adds support for
    367 AAC encoding and AMR wideband encoding (in software), so that applications can
    368 capture higher quality audio than narrowband. </p>
    369 
    370 <p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Access to multiple
    371 cameras</strong></p>
    372 
    373 <p>The Camera API now lets developers access any cameras that are available on a
    374 device, including a front-facing camera. Applications can query the platform for
    375 the number of cameras on the device and their types and characteristics, then
    376 open the camera needed. For example, a video chat application might want to access a
    377 front-facing camera that offers lower-resolution, while a photo application
    378 might prefer a back-facing camera that offers higher-resolution.</p>
    379 
    380 
    381 <h2 id="PlatformTechnologies">New Platform Technologies</h2>
    382 
    383 <h3>Media Framework</h3>
    384 
    385 <ul>
    386 <li>New media framework fully replaces OpenCore, maintaining all previous
    387 codec/container support for encoding and decoding.</li>
    388 <li>Integrated support for the VP8 open video compression format and the WebM
    389 open container format</li>
    390 <li>Adds AAC encoding and AMR wideband encoding</li>
    391 </ul>
    392 
    393 <h3>Linux Kernel </h3>
    394 <ul>
    395 <li>Upgraded to 2.6.35</li>
    396 </ul>
    397 
    398 <h3>Networking</h3>
    399 <ul>
    400 <li>SIP stack, configurable by device manufacturer
    401 <li>Support for Near Field Communications (NFC), configurable by device manufacturer</li>
    402 <li>Updated BlueZ stack</li>
    403 </ul>
    404 
    405 <h3>Dalvik runtime</h3>
    406 
    407 <ul>
    408 <li>Dalvik VM:
    409 <ul>
    410 <li>Concurrent garbage collector (target sub-3ms pauses)</li>
    411 <li>Adds further JIT (code-generation) optimizations</li>
    412 <li>Improved code verification</li>
    413 <li>StrictMode debugging, for identifying performance and memory issues</li>
    414 </ul>
    415 </li>
    416 
    417 
    418 <li>Core libraries:
    419 <ul>
    420   <li>Expanded I18N support (full worldwide encodings, more locales)
    421   <li>Faster Formatter and number formatting. For example, float formatting is 2.5x faster.</li>
    422   <li>HTTP responses are gzipped by default. XML and JSON API response sizes may be reduced by 60% or more.</li>
    423   <li>New collections and utilities APIs</li>
    424   <li>Improved network APIs</li>
    425   <li>Improved file read and write controls</li>
    426   <li>Updated JDBC</li>
    427 </ul>
    428 </li>
    429 
    430 <li>Updates from upstream projects:
    431   <ul>
    432   <li>OpenSSL 1.0.0a</li>
    433   <li>BouncyCastle 1.45</li>
    434   <li>ICU 4.4</li>
    435   <li>zlib 1.2.5</li>
    436   </ul>
    437 </li>
    438 
    439 
    440 </ul>
    441 
    442 <p>For more information about the new developer APIs, see the <a
    443 href="android-2.3.html">Android 2.3 version notes</a> and the <a
    444 href="{@docRoot}sdk/api_diff/9/changes.html">API Differences Report</a>.</p>
    445