447 lines
18 KiB
Plaintext
447 lines
18 KiB
Plaintext
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>
|