| 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+<<em>letter</em>> and ?123+<<em>symbol</em>>, |
| 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 — 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 — closing them if appropriate — |
| 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 |
| — 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 — 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 — 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 — 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 — 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 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> |