diff options
author | Scott Main <smain@google.com> | 2012-06-21 17:14:39 -0700 |
---|---|---|
committer | Scott Main <smain@google.com> | 2012-06-21 21:27:30 -0700 |
commit | 50e990c64fa23ce94efa76b9e72df7f8ec3cee6a (patch) | |
tree | 52605cd25e01763596477956963fabcd087054b0 /docs/html/sdk | |
parent | a2860267cad115659018d636bf9203a644c680a7 (diff) | |
download | frameworks_base-50e990c64fa23ce94efa76b9e72df7f8ec3cee6a.zip frameworks_base-50e990c64fa23ce94efa76b9e72df7f8ec3cee6a.tar.gz frameworks_base-50e990c64fa23ce94efa76b9e72df7f8ec3cee6a.tar.bz2 |
Massive clobber of all HTML files in developer docs for new site design
Change-Id: Idc55a0b368c1d2c1e7d4999601b739dd57f08eb3
Diffstat (limited to 'docs/html/sdk')
69 files changed, 784 insertions, 19708 deletions
diff --git a/docs/html/sdk/OLD_RELEASENOTES.jd b/docs/html/sdk/OLD_RELEASENOTES.jd index 7751681..6865db2 100644 --- a/docs/html/sdk/OLD_RELEASENOTES.jd +++ b/docs/html/sdk/OLD_RELEASENOTES.jd @@ -173,9 +173,9 @@ specify which port the emulator should bind to for the console. <port> mus <p>The SDK includes several new development tools, such as</p> <ul> - <li><a href="{@docRoot}guide/developing/tools/hierarchy-viewer.html">HierarchyViewer</a> is a visual tool for inspecting and debugging your user interfaces and layout. </li> - <li><a href="{@docRoot}guide/developing/tools/draw9patch.html">Draw 9-patch</a> allows you to easily create a NinePatch graphic using a WYSIWYG editor. </li> - <li>The <a href="{@docRoot}guide/developing/tools/monkey.html">UI/Application Exerciser Monkey</a> generates pseudo-random system and user events, for testing your application. </li> + <li><a href="{@docRoot}tools/help/hierarchy-viewer.html">HierarchyViewer</a> is a visual tool for inspecting and debugging your user interfaces and layout. </li> + <li><a href="{@docRoot}tools/help/draw9patch.html">Draw 9-patch</a> allows you to easily create a NinePatch graphic using a WYSIWYG editor. </li> + <li>The <a href="{@docRoot}tools/help/monkey.html">UI/Application Exerciser Monkey</a> generates pseudo-random system and user events, for testing your application. </li> </ul> <p> <b>Application Signing</b> @@ -326,7 +326,7 @@ specify which port the emulator should bind to for the console. <port> mus <h4>traceview</h4> <ul> - <li>The <a href="{@docRoot}guide/developing/tools/traceview.html">traceview</a> tool is now included in the SDK.</li> + <li>The <a href="{@docRoot}tools/help/traceview.html">traceview</a> tool is now included in the SDK.</li> </ul> <h3>Resolved Issues</h3> @@ -387,13 +387,13 @@ specify which port the emulator should bind to for the console. <port> mus <ul> <li>Now provides support for emulating inbound SMS messages. The ADT plugin and DDMS provide integrated access to this capability. For more information about how to emulate inbound SMS from the console, -see <a href="{@docRoot}guide/developing/tools/emulator.html#sms">SMS Emulation</a>. </li> +see <a href="{@docRoot}tools/help/emulator.html#sms">SMS Emulation</a>. </li> </ul> <h4>Emulator</h4> <ul><li>The default emulator skin has been changed to HVGA-P from QVGA-L. For information about emulator skins and how to load a specific skin when starting the emulator, see -<a href="{@docRoot}guide/developing/tools/emulator.html#skins">Using Emulator Skins</a>.</li> +<a href="{@docRoot}tools/help/emulator.html#skins">Using Emulator Skins</a>.</li> </ul> <h3>Resolved Issues</h3> diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd index 91eb57f..c7ece42 100644 --- a/docs/html/sdk/RELEASENOTES.jd +++ b/docs/html/sdk/RELEASENOTES.jd @@ -37,15 +37,15 @@ now available from the "SDK" tab, under "Downloadable SDK Components."</p> <ul> <li>Notes for the Android 2.0.1 platform are in the <a -href="{@docRoot}sdk/android-2.0.1.html">Android 2.0.1, Release 1</a> document. </li> +href="{@docRoot}about/versions/android-2.0.1.html">Android 2.0.1, Release 1</a> document. </li> <li>You can find information about tools changes in the <a -href="{@docRoot}sdk/tools-notes.html#notes">SDK Tools</a> and <a -href="{@docRoot}sdk/eclipse-adt.html#notes">ADT Plugin for Eclipse</a>.</li> +href="{@docRoot}tools/sdk/tools-notes.html#notes">SDK Tools</a> and <a +href="{@docRoot}tools/sdk/eclipse-adt.html#notes">ADT Plugin for Eclipse</a>.</li> </ul> <p>To get started with the SDK, review the Quick Start summary on the <a href="{@docRoot}sdk/index.html">Android SDK download page</a> or read <a -href="{@docRoot}sdk/installing.html">Installing the SDK</a> for detailed +href="{@docRoot}sdk/installing/index.html">Installing the SDK</a> for detailed installation instructions. </p> @@ -64,7 +64,7 @@ changes include: </p> skins. </li> <li>Android SDK and AVD Manager, a graphical UI to let you manage your SDK and AVD environments more easily. The tool lets you create and manage -your <a href="{@docRoot}guide/developing/devices/managing-avds.html">Android Virtual +your <a href="{@docRoot}tools/devices/managing-avds.html">Android Virtual Devices</a> and download new SDK packages (such as platform versions and add-ons) into your environment.</li> <li>Improved support for test packages in New Project Wizard</li> @@ -72,7 +72,7 @@ add-ons) into your environment.</li> capability that lets you display only the parts of the API that are actually available to your application, based on the <code>android:minSdkVersion</code> value the application declares in its manifest. For more information, see -<a href="{@docRoot}guide/appendix/api-levels.html">Android API Levels</a></li> +<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">Android API Levels</a></li> </ul> <p>For details about the Android platforms included in the SDK — including @@ -109,7 +109,7 @@ Plugin (0.9.3 or higher). </p> <p>The new version of ADT is downloadable from the usual remote update site or is separately downloadable as a .zip archive. For instructions on how to download the plugin, please see <a -href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>. </p> +href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>. </p> <h3>Android SDK and AVD Manager</h3> @@ -222,7 +222,7 @@ skins, including: </p> density for each skin, to create any combination of resolution/density (WVGA with medium density, for instance). To do so, use the <code>android</code> tool command line to create a new AVD that uses a custom hardware configuration. See -<a href="{@docRoot}guide/developing/devices/managing-avds.html#createavd">Creating an +<a href="{@docRoot}tools/devices/managing-avds.html#createavd">Creating an AVD</a> for more information.</p> <h3>Other Notes and Resolved Issues</h3> @@ -330,7 +330,7 @@ changes include: </p> Android 1.5). The tools are updated to let you deploy your application on any platform in the SDK, which helps you ensure forward-compatibility and, if applicable, backward-compatibility.</li> - <li>Introduces <a href="{@docRoot}guide/developing/devices/managing-avds.html">Android + <li>Introduces <a href="{@docRoot}tools/devices/managing-avds.html">Android Virtual Devices</a> — (AVD) configurations of options that you run in the emulator to better model actual devices. Each AVD gets its own dedicated storage area, making it much easier to work with multiple emulators @@ -352,7 +352,7 @@ Android project.</li> <p>For details about the Android platforms included in the SDK — including bug fixes, features, and API changes — please read the <a -href="{@docRoot}sdk/android-1.5.html">Android 1.5 version notes</a>.</p> +href="{@docRoot}about/versions/android-1.5.html">Android 1.5 version notes</a>.</p> <h3>Installation and Upgrade Notes</h3> @@ -407,7 +407,7 @@ that can run in the emulator. available to use.</p> <p>For more information about AVDs, see <a -href="{@docRoot}guide/developing/devices/index.html">Creating and Managing Virtual Devices</a> +href="{@docRoot}tools/devices/index.html">Creating and Managing Virtual Devices</a> <h3>Other Notes</h3> @@ -491,7 +491,7 @@ as well as a few minor API changes from the 1.0 version. </p> <p>For details about the Android 1.1 system image included in the SDK — including bug fixes, features, and API changes — please read the <a -href="{@docRoot}sdk/android-1.1.html">Android 1.1 version notes</a>.</p> +href="{@docRoot}about/versions/android-1.1.html">Android 1.1 version notes</a>.</p> <h3>App Versioning for Android 1.1</h3> @@ -545,7 +545,7 @@ testing.</p> Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a previous version of ADT, you should update to the latest version for use with this SDK. For information about how to update your ADT plugin, see -<a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p> +<a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p> <h3>Installation and Upgrade Notes</h3> @@ -585,7 +585,7 @@ these USB drivers that you can install, to let you develop on the device:</p> <p>The USB driver files are located in the <code><SDK>/usb_driver</code> directory. For details and installation instructions, see <a -href="{@docRoot}guide/developing/device.html#setting-up">Connecting Hardware Devices</a>.</p> +href="{@docRoot}tools/device.html#setting-up">Connecting Hardware Devices</a>.</p> </p> <h3>Resolved Issues, Changes</h3> @@ -650,7 +650,7 @@ added.</p> Development Tools (ADT) Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a previous version of ADT, you should update to the latest version for use with this SDK. For information about how to update your ADT plugin, see <a -href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p> +href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p> <h3>Other Notes</h3> diff --git a/docs/html/sdk/adding-components.jd b/docs/html/sdk/adding-components.jd deleted file mode 100644 index 599b2a8..0000000 --- a/docs/html/sdk/adding-components.jd +++ /dev/null @@ -1,209 +0,0 @@ -page.title=Adding SDK Packages -@jd:body - - -<div id="qv-wrapper"> -<div id="qv"> -<h2>Quickview</h2> -<ul> - <li>Use the Android SDK Manager to - set up your SDK and keep it up-to-date.</li> -</ul> - -<h2>In this document</h2> -<ol> - <li><a href="#launching">Launching the Android SDK Manager</a> - <li><a href="#InstallingComponents">Installing SDK Packages</a> - <li><a href="#UpdatingComponents">Updating SDK Packages</a> - <li><a href="#dependencies">Package Dependencies</a></li> - <li><a href="#AddingSites">Adding New Sites</a></li> - <li><a href="#troubleshooting">Troubleshooting</a></li> -</ol> -</div> -</div> - -<p>Adding and updating packages in your Android SDK is fast and easy. To add or -update the individual SDK packages that you need, use the <em>Android SDK -Manager</em> (included in the SDK Tools).</p> - -<p>It only takes a couple of clicks to install individual versions of the -Android platform, new development tools, new documentation, and SDK add-ons. The -new SDK packages are automatically installed into your existing SDK directory, -so you don't need to update your development environment to specify a new SDK -location.</p> - -<p>If you're setting up your Android SDK for the first time, -see <a href="{@docRoot}sdk/installing.html#components">Installing the SDK</a> for information about -what packages to install.</p> - -<p class="note"><strong>Note:</strong> If you develop in Eclipse, you might also need -to update your ADT plugin when you update your development tools. See the revisions listed in the -<a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a> document.</p> - -<img src="{@docRoot}images/sdk_manager_packages.png" alt="" /> -<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager's -<strong>Available Packages</strong> panel, which shows the SDK packages that are -available for you to download into your environment. </p> -</div> - -<h2 id="launching">Launching the Android SDK Manager</h2> - -<p>The Android SDK Manager is the tool that you use to install and -upgrade SDK packages in your development environment. </p> - -<p>You can launch the Android SDK Manager in one of the following ways.</p> - -<h4>Launching from Eclipse/ADT</h4> - -<p>If you are developing in Eclipse and have already installed the ADT Plugin, -follow these steps to access the Android SDK Manager tool:</p> - -<ol> -<li>Open Eclipse</li> -<li>Select <strong>Window</strong> > <strong>Android SDK -Manager</strong>.</li> -</ol> - -<h4>Launching from the SDK Manager script (Windows only)</h4> - -<p>For Windows only, the SDK includes a script that invokes the Android SDK Manager. To launch the -tool using the script, double-click {@code SDK -Manager.exe} at the root of the the SDK directory.</p> - -<h4>Launching from a command line</h4> - -<p>In all development environments, follow these steps to access the Android SDK Manager tool from -the command line: </p> - -<ol> -<li>Navigate to the <code><<em>sdk</em>>/tools/</code> directory.</li> -<li>Execute the {@code android} tool command with no options. - <pre style="width:400px">$ android</pre></li> -</ol> - - -<h2 id="InstallingComponents">Installing SDK Packages</h2> - -<p class="caution"><strong>Caution:</strong> Before you install SDK packages, -we recommend that you disable any antivirus software that may be running on -your computer. There are cases in which antivirus software on Windows is known to interfere with the -installation process, so we suggest you disable your antivirus until installation is -complete.</p> - -<p>Follow these steps to install new SDK packages in your environment:</p> - -<ol> - <li>Launch the Android SDK Manager as described in the section above.</li> - <li>Select <strong>Available Packages</strong> in the left panel. - This will reveal all of the packages that are currently available for download - from the SDK repository.</li> - <li>Select the package(s) you'd like to install and click <strong>Install - Selected</strong>. (If you aren't sure which packages to select, read <a - href="installing.html#which">Recommended Packages</a>.)</li> - <li>Verify and accept the packages you want (ensure each one is selected with a green -checkmark) and click <strong>Install</strong>. The packages will now be installed into -your existing Android SDK directories.</li> -</ol> - -<p>New platforms are automatically saved into the -<code><sdk>/platforms/</code> directory of your SDK; -new add-ons are saved in the <code><sdk>/add-ons/</code> -directory; samples are saved in the -<code><sdk>/samples/android-<level>/</code>; -and new documentation is saved in the existing -<code><sdk>/docs/</code> directory (old docs are replaced).</p> - - -<h2 id="UpdatingComponents">Updating SDK Packages</h2> - -<p>From time to time, new revisions of existing SDK packages are released and -made available to you through the SDK repository. In most cases, if you have those -packages installed in your environment, you will want -to download the new revisions as soon as possible. </p> - -<p>You can learn about the release of new revisions in two ways: </p> - -<ul> -<li>You can watch for updates listed in the "SDK" tab of the Android Developers -site, in the "Downloadable SDK Packages" section. </li> -<li>You can watch for updates listed in the <strong>Available Packages</strong> -panel of the Android SDK Manager. </li> -</ul> - -<p>When you see that a new revision is available, you can use the Android SDK Manager to quickly -download it to your environment. Follow the same -procedure as given in <a href="#InstallingComponents">Installing SDK Packages</a>, above. The new -package is installed in place of the old, but without impacting your -applications. </p> - -<p class="note"><strong>Tip:</strong> -Use the "Display updates only" checkbox to show only the packages -you do not have.</p> - - -<h2 id="dependencies">SDK Package Dependencies</h2> - -<p>In some cases, an SDK package may require a specific minimum revision of -another package or SDK tool. Where such dependencies exist, they are -documented in the revision notes for each package, available from the links in -the "Downloadable SDK packages" section at left.</p> - -<p>For example, there may be a dependency between the ADT Plugin for Eclipse and -the SDK Tools package. When you install the SDK Tools -package, you should also upgrade to the required version of ADT (if you -are developing in Eclipse). In this case, the major version number for your ADT plugin should -always match the revision number of your SDK Tools (for example, ADT 8.x requires SDK Tools r8). -</p> - -<p>Also make sure that, each time you install a new version of the Android platform, you have -the latest version of the SDK Platform-tools package. The SDK Platform-tools contain -tools that are backward compatible with all versions of the Android platform and are -often updated to support new features in the latest version of the Android platform.</p> - -<p>The development tools will notify you with debug warnings if there is dependency that you need to -address. The Android SDK Manager also enforces dependencies by requiring that you download any -packages that are needed by those you have selected.</p> - - -<h2 id="AddingSites">Adding New Sites</h2> - -<p>By default, <strong>Available Packages</strong> displays packages available from the -<em>Android Repository</em> and <em>Third party Add-ons</em>. You can add other sites that host -their own Android SDK add-ons, then download the SDK add-ons -from those sites.</p> - -<p>For example, a mobile carrier or device manufacturer might offer additional -API libraries that are supported by their own Android-powered devices. In order -to develop using their libraries, you must install their Android SDK add-on, if it's not already -available under <em>Third party Add-ons</em>. </p> - -<p>If a carrier or device manufacturer has hosted an SDK add-on repository file -on their web site, follow these steps to add their site to the Android SDK -Manager:</p> - -<ol> - <li>Select <strong>Available Packages</strong> in the left panel.</li> - <li>Click <strong>Add Add-on Site</strong> and enter the URL of the -{@code repository.xml} file. Click <strong>OK</strong>.</li> -</ol> -<p>Any SDK packages available from the site will now be listed under a new item named -<strong>User Add-ons</strong>.</p> - - -<h2 id="troubleshooting">Troubleshooting</h2> - -<p><strong>Problems connecting to the SDK repository</strong></p> - -<p>If you are using the Android SDK Manager to download packages and are encountering -connection problems, try connecting over http, rather than https. To switch the -protocol used by the Android SDK Manager, follow these steps: </p> - -<ol> - <li>With the Android SDK Manager window open, select "Settings" in the - left pane. </li> - <li>On the right, in the "Misc" section, check the checkbox labeled "Force - https://... sources to be fetched using http://..." </li> - <li>Click <strong>Save & Apply</strong>.</li> -</ol> - - diff --git a/docs/html/sdk/adt-notes.jd b/docs/html/sdk/adt-notes.jd deleted file mode 100644 index 291b543..0000000 --- a/docs/html/sdk/adt-notes.jd +++ /dev/null @@ -1,5 +0,0 @@ -page.title=ADT Plugin for Eclipse -sdk.redirect=true -sdk.redirect.path=eclipse-adt.html - -@jd:body diff --git a/docs/html/sdk/adt_download.html b/docs/html/sdk/adt_download.html deleted file mode 100644 index 5ba2ef5..0000000 --- a/docs/html/sdk/adt_download.html +++ /dev/null @@ -1,10 +0,0 @@ -<html> -<head> -<meta http-equiv="refresh" content="0;url=http://developer.android.com/sdk/eclipse-adt.html"> -<title>Redirecting...</title> -</head> -<body> -<p>You should be redirected. Please <a -href="http://developer.android.com/sdk/eclipse-adt.html">click here</a>.</p> -</body> -</html>
\ No newline at end of file diff --git a/docs/html/sdk/android-1.1.jd b/docs/html/sdk/android-1.1.jd deleted file mode 100644 index b61f186..0000000 --- a/docs/html/sdk/android-1.1.jd +++ /dev/null @@ -1,246 +0,0 @@ -page.title=Android 1.1 Version Notes -sdk.version=1.1_r1 -sys.date=February 2009 -@jd:body - -<p> -<em>Date:</em> February 2009<br /> -<em>API Level:</em> <strong>2</strong></p> - - -<p>This document provides version notes for the Android 1.1 system image included in the SDK. - -<ul> -<li><a href="#overview">Overview</a> -<li><a href="#overview">External Libraries</a> -<li><a href="#comp">Device Compatibility</a> -<li><a href="#apps">Built-in Applications</a> -<li><a href="#locs">UI Localizations</a> -<li><a href="#resolved-issues">Resolved Issues</a> -<li><a href="#features">New Features</a> -<li><a href="#api-changes">API Changes</a> -</ul></p> - -<h2 id="overview">Overview</h2> - -<p>The Android 1.1 system image delivered in the SDK is the development -counterpart to the Android 1.1 production system image, deployable to -Android-powered handsets starting in February 2009. </p> - -<p>The Android 1.1 system image delivers an updated version of the framework -API. As with the Android 1.0 API, the Android 1.1 API -is assigned an integer identifier — <strong>2</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>Applications indicate the lowest system API Level that they are compatible with by adding -a value to the <code>android:minSdkVersion</code> attribute. -The value of the attribute is an integer corresponding to an API Level -identifier. Prior to installing an application, the system checks the value of -<code>android:minSdkVersion</code> and allows the install only -if the referenced integer is less than or equal to the API Level integer stored -in the system itself. </p> - -<p>If you use the Android 1.1 system image to build an application -compatible with Android-powered devices running the Android 1.1 -platform, you <strong style="color:red">must</strong> set the -<code>android:minSdkVersion</code> attribute to "2" in order to specify that your application -is compatible only with devices using the Android 1.1 (or greater) system image. -</p> - -<p>Specifically, you specify the <code>android:minSdkVersion</code> -attribute in a <code><uses-sdk></code> element as a child of -<code><manifest></code> in the manifest file. When set, the -attribute looks like this: </p> - -<pre><code><manifest> - ... - <uses-sdk android:minSdkVersion="2" /> - ... -</manifest></code> -</pre> - -<p>By setting <code>android:minSdkVersion</code> in this way, you ensure -that users will only be able to install your application if their -devices are running the Android 1.1 platform. In turn, this ensures that -your application will function properly on their devices, especially if -it uses <a href="#apichange">APIs introduced in Android 1.1</a>. </p> - -<p>If your application uses APIs introduced in Android 1.1 but does not -declare <code><uses-sdk android:minSdkVersion="2" /></code>, then it will -run properly on Android 1.1 devices but <em>not</em> on Android 1.0 -devices. In the latter case, the application will crash at runtime when -it tries to use the Android 1.1 APIs.</p> - -<p>If your application does not use any new APIs introduced in Android -1.1, you can indicate Android 1.0 compatibility by removing -<code>android:minSdkVersion</code> or setting the attribute to "1". However, -before publishing your application, you must make sure to compile your -application against the Android 1.0 system image (available in the -Android 1.0 SDK), to ensure that it builds and functions properly for -Android 1.0 devices. You should test the application against system -images corresponding to the API Levels that the application is designed -to be compatible with.</p> - -<p>If you are sure your application is not using Android 1.1 APIs and -has no need to use them, you might find it easier to keep working in the -Android 1.0 SDK, rather than migrating to the Android 1.1 SDK and having -to do additional testing.</p> - - -<h2 id="extlibs">External Libraries</h2> - -<p>The system image includes these external libraries, which you can -access from your application by adding a <a -href="{@docRoot}guide/topics/manifest/uses-library-element.html"> -<uses-library></a>.</p> - <ul> - <li>com.google.android.maps — gives your -application access to Google Maps data. Note that, to use Google Maps -data, a Maps API Key is required.</li> - </ul> - -<h2 id="comp">Device Compatibility</h2> - -<p>The Android 1.1 system image was tested for compatability with the -Android-powered devices listed below:</p> - <ul> - <li>T-Mobile G1</li> - </ul> - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image includes these built-in applications:</p> - <ul> - <li>Alarm Clock</li> - <li>API Demos</li> - <li>Browser</li> - <li>Calculator</li> - <li>Camera</li> - <li>Contacts</li> - <li>Dev Tools</li> - <li>Dialer</li> - <li>Email</li> - <li>Maps (and StreetView)</li> - <li>Messaging</li> - <li>Music</li> - <li>Pictures</li> - <li>Settings</li> - </ul> - -<h2 id="locs">UI Localizations</h2> - -<p>The system image provides localized UI strings for the languages -listed below.</p> - <ul> - <li>English, US (en_US)</li> - <li>German (de) </li> - </ul> - -<p>Localized UI strings match the locales that are displayable in -the emulator, accessible through the device Settings application.</p> - -<h2 id="resolved-issues">Resolved Issues</h2> -<ul> -<li>AlarmClock alert now plays audio/vibe directly, rather than through -AlarmManager. AlarmClock alert starts playing audio/vibe in its -IntentReceiver, rather than on activity start. These changes should -prevent alarms from being blocked by modal dialogs.</li> -<li>Fixes to device sleep. </li> -<li>Single tap no longer opens the in-call dialpad; users now need to -touch and drag it. </li> -<li>Fixes a bug causing approximately 1 in 25 outbound messages to -freeze up the IMAP connection (to a Gmail based server) when transferred -to the Sent folder.</li> -<li>Removes automatic account setup entries that were broken or not -testable. Adds minor fixes to a few of the remaining entries. Makes -improvements to warning dialogs used for a few special cases. </li> -<li>Changes default mail checking interval to every 15 minutes (instead -of defaulting to "never").</li> -<li>Fixes password-quoting bugs in IMAP, so that users can include -special characters in passwords (e.g. spaces).</li> -<li>Fixes various errors in auto and manual account setup </li> -<li>Improves reporting for various connection errors, making it easier -for the user to diagnose failed account setups.</li> -<li>Fixes new-mail notifications for POP3 accounts.</li> -<li>Ensures proper auto-checking of accounts marked as "never -check".</li> -<li>Now displays date and time using user preference (e.g. 24 hr vs. -AM/PM).</li> -<li>Now shows cc: in message view.</li> -<li>Improves recovery from POP3 connection failures.</li> -<li>POP3 parser rules loosened, so the application can work with -non-compliant email servers.</li> -</ul> - -<h2 id="features">New Features</h2> - -<ul> -<li>Maps: Adds details and reviews when a user does a search on Maps and -clicks on a business to view its details.</li> -<li>Dialer: In-call screen timeout default is now longer when using the -speakerphone.</li> -<li>Dialer: Adds a "Show dialpad" / "Hide dialpad" item to the in-call -menu, to make it easier to discover the DTMF dialpad. </li> -<li>Adds support for saving attachments from MMS</li> -<li>Adds support for marquee in layouts.</li> -</ul> - -<h2 id="api-changes">API Changes</h2> - -<h3>Overview</strong></h3> - -<ul> -<li>Adds annotations for test systems, no actual (non-test) API -changes.</li> -<li>Adds a method to allow a process to easily determine its UID. -<li>Adds support for marquee in layouts.</li> -<li>Adds new methods for determining padding in views. Useful if you are -writing your own -subclasses of {@link android.view.View View}.</li> -<li>Adds new permissions that allow an application to broadcast an SMS -or WAP Push message. </li> -<li>API cleanup: removes protected constructor from -SDK-bound system images. </li> -</ul> - -<h3>API Change Details</h3> - -<table> -<tr> -<th>Module or Feature</th><th>Change Description</th> -</tr> -<tr><td rowspan="4">Annotations for test systems</td></tr> - <tr><td>Added {@link android.test.suitebuilder.annotation.LargeTest LargeTest} annotation.</td></tr> - <tr><td>Added {@link android.test.suitebuilder.annotation.MediumTest MediumTest} annotation.</td></tr> - <tr><td>Added {@link android.test.suitebuilder.annotation.SmallTest SmallTest} annotation.</td></tr> - -<tr><td rowspan="2">Allow a process to easily know its UID.</td></tr> - <tr><td>Added public method {@link android.os.Process#myUid} to class {@link android.os.Process android.os.Process}</td></tr> - -<tr><td rowspan="6">Padding in views</td></tr> - <tr><td>Added public method {@link android.view.View#getBottomPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr> - <tr><td>Added public method {@link android.view.View#getLeftPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr> - <tr><td>Added public method {@link android.view.View#getRightPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr> - <tr><td>Added public method {@link android.view.View#getTopPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr> - <tr><td>Added public method {@link android.view.View#isPaddingOffsetRequired} to class {@link android.view.View android.view.View}.</td></tr> - -<tr><td rowspan="3">Marquee support</td></tr> - <tr><td>Added public method {@link android.widget.TextView#setMarqueeRepeatLimit} to class {@link android.widget.TextView}</td></tr> - <tr><td>Added public field {@link android.R.attr#marqueeRepeatLimit android.R.attr.marqueeRepeatLimit}</td></tr> - -<tr><td rowspan="3">New permissions</td></tr> - <tr><td>Added public field {@link android.Manifest.permission#BROADCAST_SMS android.Manifest.permission.BROADCAST_SMS}</td></tr> - <tr><td>Added public field {@link android.Manifest.permission#BROADCAST_WAP_PUSH android.Manifest.permission.BROADCAST_WAP_PUSH}</td></tr> - -<tr><td rowspan="2">API cleanup</td></tr> - <tr><td>Removed protected constructor java.net.ServerSocket.ServerSocket(java.net.SocketImpl).</td></tr> - -</table> - - - - - - diff --git a/docs/html/sdk/android-1.5-highlights.jd b/docs/html/sdk/android-1.5-highlights.jd deleted file mode 100644 index ff64e8c..0000000 --- a/docs/html/sdk/android-1.5-highlights.jd +++ /dev/null @@ -1,208 +0,0 @@ -page.title=Android 1.5 Platform Highlights -@jd:body - -<p> -<em>April 2009</em> -</p> - - -<p>The Android 1.5 platform introduces many new features for users and developers. -The list below provides an overview of the changes. </p> - -<ul> -<li><a href="#ui">User Interface Refinements</a> -<li><a href="#perf">Performance Improvements</a> -<li><a href="#features">New Features</a> -<li><a href="#apis">New APIs and Manifest Elements</a> -</ul> - -<h2 id="ui">User Interface Refinements</h2> -<ul> - <li>System-wide: - <ul> - <li>Refinement of all core UI elements</li> - <li>Animated window transitions (off by default)</li> - <li>Accelerometer-based application rotations</li> - </ul> - </li> - <li>UI polish for: - <ul> - <li>In-call experience</li> - <li>Contacts, Call log, and Favorites</li> - <li>SMS & MMS</li> - <li>Browser</li> - <li>Gmail</li> - <li>Calendar</li> - <li>Email</li> - <li>Camera & Gallery</li> - <li>Application management</li> - </ul> - </li> -</ul> - -<h2 id="perf">Performance Improvements</h2> - -<ul> -<li>Faster Camera start-up and image capture</li> -<li>Much faster acquisition of GPS location (powered by SUPL AGPS)</li> -<li>Smoother page scrolling in Browser</li> -<li>Speedier GMail conversation list scrolling</li> -</ul> - -<h2 id="features">New Features</h2> - -<ul> - <li>On-screen soft keyboard - <ul> - <li>Works in both portrait and landscape orientation</li> - <li>Support for user installation of 3rd party keyboards</li> - <li>User dictionary for custom words</li> - </ul> -</li> - -<li>Home screen - <ul> - <li>Widgets - <ul> - <li>Bundled home screen widgets include: analog clock, calendar, - music player, picture frame, and search</li> - </ul></li> - <li>Live folders</li> - </ul> -</li> - -<li>Camera & Gallery - <ul> - <li>Video recording</li> - <li>Video playback (MPEG-4 & 3GP formats)</li> - </ul> -</li> - -<li>Bluetooth - <ul> - <li>Stereo Bluetooth support (A2DP and AVCRP profiles)</li> - <li>Auto-pairing</li> - <li>Improved handsfree experience</li> - </ul> -</li> - -<li>Browser - <ul> - <li>Updated with latest Webkit browser & Squirrelfish Javascript engines</li> - <li>Copy 'n paste in browser</li> - <li>Search within a page</li> - <li>User-selectable text-encoding</li> - <li>UI changes include: - <ul> - <li>Unified Go and Search box</li> - <li>Tabbed bookmarks/history/most-visited screen</li> - </ul> - </li> - </ul> -</li> - -<li>Contacts - <ul> - <li>Shows user picture for Favorites</li> - <li>Specific date/time stamp for events in call log</li> - <li>One-touch access to a contact card from call log event</li> - </ul> -</li> - -<li>System -<ul> - <li>New Linux kernel (version 2.6.27)</li> - <li>SD card filesystem auto-checking and repair</li> - <li>SIM Application Toolkit 1.0 </li> -</ul> -</li> - -<li>Google applications (not available in the Android 1.5 System Image that is -included in the Android SDK) - <ul> - <li>View Google Talk friends' status in Contacts, SMS, MMS, GMail, and - Email applications</li> - <li>Batch actions such as archive, delete, and label on Gmail messages</li> - <li>Upload videos to Youtube</li> - <li>Upload photos on Picasa</li> - </ul> -</li> -</ul> - -<h2 id="apis">New APIs and Manifest Elements</h2> - -<ul> -<li>UI framework - <ul> - <li>Framework for easier background/UI thread interaction</li> - <li>New {@link android.widget.SlidingDrawer SlidingDrawer} widget</li> - <li>New {@link android.widget.HorizontalScrollView HorizontalScrollview} widget</li> - </ul> -</li> - -<li>AppWidget framework - <ul> - <li>APIs for creating secure home screen {@link android.appwidget -AppWidgets}. For information about how to use AppWidgets, see the Developer's -Guide <a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a> -documentation. Also see <a -href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html"> -Introducing home screen widgets and the AppWidget -framework</a> on the Android Developer's Blog.</li> - <li>APIs for populating {@link android.provider.LiveFolders Live Folders} - with custom content.</li> - </ul> -</li> - -<li>Media framework - <ul> - <li>Raw audio recording and playback APIs</li> - <li>Interactive MIDI playback engine</li> - <li>{@link android.media.MediaRecorder Video Recording APIs} for developers (3GP format).</li> - <li>Video and photo sharing Intents</li> - <li>Media search Intent</li> - </ul> -</li> - -<li>Input Method framework - <ul> - <li>{@link android.inputmethodservice.InputMethodService Input Method - Service} framework</li> - <li>Text-prediction engine</li> - <li>Ability to provide downloadable IMEs to users</li> - </ul> -</li> - -<li>Application-defined hardware requirements - <p>Applications can now use a new element in their manifest files, <a -href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses- -configuration></a> to indicate to the Android system what hardware features -they require in order to function properly. For example, an application might -use the element to specify that it requires a physical keyboard or a particular -navigation device, such as a trackball. Prior to installing the application, the -Android system checks the attributes defined for the -<code><uses-configuration></code> element and allows the installation to -continue only if the required hardware is present.</p> -</li> - -<li>Speech recognition framework - <ul> - <li>Support for using speech recognition libraries via Intent. See {@link -android.speech.RecognizerIntent RecognizerIntent}.</li> - </ul> -</li> - -<li>Miscellaneous API additions - <ul> - <li>LocationManager - Applications can get location change updates via - Intent</li> - <li>WebView - Touch start/end/move/cancel DOM event support</li> - <li>Redesigned {@link android.hardware.SensorManager Sensor Manager - APIs}</li> - <li>GLSurfaceView - convenience framework for creating OpenGL - applications</li> - <li>Broadcast Intent for app update install succeeded - for smoother app - upgrade experience</li> - </ul> -</li> -</ul> diff --git a/docs/html/sdk/android-1.5.jd b/docs/html/sdk/android-1.5.jd deleted file mode 100644 index 9ed798c..0000000 --- a/docs/html/sdk/android-1.5.jd +++ /dev/null @@ -1,375 +0,0 @@ -page.title=Android 1.5 Platform -sdk.platform.version=1.5 -sdk.platform.apiLevel=3 -sdk.platform.majorMinor=major - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#features">Platform Highlights</a></li> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#api">Framework API Changes</a> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> - - </ol> - </li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> -</ol> - -</div> -</div> - -<p> -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release -deployable to Android-powered handsets starting in May 2009. -The release includes new features for users and developers, as well as changes -in the Android framework API. </p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes a -fully compliant Android library and system image, as well as a set of emulator -skins, sample applications, and more. The downloadable platform is fully -compliant and includes no external libraries. </p> - -<p>To get started developing or testing against the Android -{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to -download the platform into your Android 1.6 or later SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>.</p> - - -<h2 id="features">Platform Highlights</h2> - -<p>For a list of new user features and platform highlights, see the <a -href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android -{@sdkPlatformVersion} Platform Highlights</a> document.</p> - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { - padding: .25em 1em 0em 1em; - margin-bottom: 0; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleme a { - text-decoration:underline; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div class="toggleable opened"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" /> - Android 1.5, Revision 4</a> <em>(May 2010)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r6 or higher.</p> -</dd> - -<dt>Tools:</dt> -<dd> -<ul> -<li>Adds support for library projects in the Ant build system.</li> -<li>Fixes test project build in the Ant build system.</li> -</ul> -</dd> - -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> - Android 1.5, Revision 3</a> <em>(July 2009)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r3 or higher.</p> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> - Android 1.5, Revision 2</a> <em>(May 2009)</em></a> - <div class="toggleme"> -<p>Not available as an SDK component — please use Android 1.5, r3 instead. </p> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> - Android 1.5, Revision 1</a> <em>(April 2009)</em></a> - <div class="toggleme"> -<p>Not available as an SDK component — please use Android 1.5, r3 instead. </p> - </div> -</div> - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your -application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the -<code>android:minSdkVersion</code> attributes of the <code><uses-sdk></code> -element in your application's manifest. </p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h2 id="api">Framework API Changes</h2> - -<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p> - -<h3>UI framework</h3> - <ul> - <li>Framework for easier background/UI thread interaction</li> - <li>New {@link android.widget.SlidingDrawer SlidingDrawer} widget</li> - <li>New {@link android.widget.HorizontalScrollView HorizontalScrollview} widget</li> - </ul> - -<h3>AppWidget framework</h3> - <ul> - <li>APIs for creating secure home screen {@link android.appwidget -AppWidgets}. For information about how to use AppWidgets, see the Developer's -Guide <a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a> -documentation. Also see <a -href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html"> -Introducing home screen widgets and the AppWidget -framework</a> on the Android Developer's Blog.</li> - <li>APIs for populating {@link android.provider.LiveFolders Live Folders} - with custom content.</li> - </ul> - -<h3>Media framework</h3> - <ul> - <li>Raw audio recording and playback APIs</li> - <li>Interactive MIDI playback engine</li> - <li>Video recording APIs for developers (3GP format)</li> - <li>Video and photo sharing Intents</li> - <li>Media search Intent</li> - </ul> - -<h3>Input Method framework </h3> - <ul> - <li>{@link android.inputmethodservice.InputMethodService Input Method - Service} framework</li> - <li>Text-prediction engine</li> - <li>Ability to provide downloadable IMEs to users</li> - </ul> - -<h3>Application-defined hardware requirements</h3> - -<p>Applications can now use a new element in their manifest files, <a -href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code><uses-configuration></code></a> - to indicate to the Android system what hardware features -they require in order to function properly. For example, an application might -use the element to specify that it requires a physical keyboard or a particular -navigation device, such as a trackball. Prior to installing the application, the -Android system checks the attributes defined for the -<code><uses-configuration></code> element and allows the installation to -continue only if the required hardware is present.</p> - -<h3>Speech recognition framework</h3> - <ul> - <li>Support for using speech recognition libraries via Intent. See {@link -android.speech.RecognizerIntent RecognizerIntent}.</li> - </ul> - -<h3>Miscellaneous API additions</h3> - <ul> - <li>LocationManager - Applications can get location change updates via - Intent</li> - <li>WebView - Touch start/end/move/cancel DOM event support</li> - <li>Redesigned {@link android.hardware.SensorManager Sensor Manager - APIs}</li> - <li>GLSurfaceView - convenience framework for creating OpenGL - applications</li> - <li>Broadcast Intent for app update install succeeded - for smoother app - upgrade experience</li> - </ul> - - -<h3 id="api-diff">API differences report</h3> - -<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to -the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a>.</p> - - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> - <ul> - <li>Alarm Clock</li> - <li>Browser</li> - <li>Calculator</li> - <li>Camcorder</li> - <li>Camera</li> - <li>Contacts</li> - <li>Custom Locale (developer app)</li> - <li>Dev Tools (developer app)</li> - </ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> - <ul> - <li>Dialer</li> - <li>Email</li> - <li>Gallery</li> - <li>IME for Japanese text input</li> - <li>Messaging</li> - <li>Music</li> - <li>Settings</li> - <li>Spare Parts (developer app)</li> - </ul> -</td> -</tr> -</table> - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> -locale descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -<li>Czech (cs_CZ)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>English, US (en_US)</li> -<li>English, Britain (en_GB)</li> -<li>English, Canada (en_CA)</li> -<li>English, Australia (en_AU)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>French, France (fr_FR)</li> -<li>French, Belgium (fr_BE)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Italian, Italy (it_IT)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Polish (pl_PL)</li> -<li>Russian (ru_RU)</li> -<li>Spanish (es_ES)</li> -</td> -</tr> -</table> - -<p>Localized UI strings match the locales that are accessible -through Settings.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can use for modeling your application in different screen sizes and resolutions. The emulator skins are: </p> - -<ul> - <li> - QVGA-P (240x320, low density, small screen) - </li> - <li> - QVGA-L (320x480, low density, small screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - HVGA-P (320x480, medium density, normal screen) - </li> - <li> - HVGA-L (320x480, medium density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p> diff --git a/docs/html/sdk/android-1.6-highlights.jd b/docs/html/sdk/android-1.6-highlights.jd deleted file mode 100644 index f0a50fb..0000000 --- a/docs/html/sdk/android-1.6-highlights.jd +++ /dev/null @@ -1,213 +0,0 @@ -page.title=Android 1.6 Platform Highlights -sdk.date=September 2009 - -@jd:body - - -<style type="text/css"> -#jd-content div.screenshot, -#jd-content div.video { - float:right; - clear:right; - padding:15px 70px; - font-size:.9em; - font-weight:bold; - line-height:1.7em; -} -#jd-content div.video { - padding-top:0; - margin-top:-15px; -} -#jd-content div.screenshot img { - margin:0; -} -</style> - -<div class="video"> -<object width="278" height="180"> -<param name="movie" value="http://www.youtube.com/v/MBRFkLKRwFw&hl=en&fs=1&"></param> -<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param> -<embed src="http://www.youtube.com/v/MBRFkLKRwFw&hl=en&fs=1&" type="application/x-shockwave-flash" -allowscriptaccess="always" allowfullscreen="true" width="278" height="180"></embed> -</object> -</div> - - -<p>The Android 1.6 platform introduces new features for users and developers. -This page provides an overview of some new features and technologies.</p> - -<ul> - <li><a href="#UserFeatures">New User Features</a></li> - <li><a href="#GooglePlayUpdates">Google Play Updates</a></li> - <li><a href="#PlatformTechnologies">New Platform Technologies</a></li> -</ul> - - - -<h2 id="UserFeatures" style="clear:right">New User Features</h2> - -<!-- screenshots float right --> - -<div class="screenshot"> -<img src="images/search.png" class="screenshot" alt="" /><br/> -Quick Search Box -</div> - -<div class="screenshot"> -<img src="images/camera.png" class="screenshot" alt="" /><br/> -New Camera/Camcorder UI -</div> - -<div class="screenshot"> -<img src="images/battery.png" class="screenshot" alt="" /><br/> -Battery Usage Indicator -</div> - - -<h3 id="QuickSearchBox">Quick Search Box for Android</h3> - -<p>Android 1.6 includes a redesigned search framework that provides a quick, -effective, and consistent way for users to search across multiple sources—such as -browser bookmarks & history, contacts, and the web—directly from -the home screen.</p> - -<p>The system constantly learns which search results are more relevant based on what is -clicked. So popular contacts or apps that have previously been picked will bubble up to -the top when a user types the first few letters of a relevant query.</p> - -<p>The search framework also provides developers a way to easily expose relevant -content from their applications in Quick Search Box.</p> - -<h3 id="Camera">Camera, Camcorder, and Gallery</h3> - -<p>An updated user interface provides an integrated camera, camcorder, and gallery experience. -Users can quickly toggle between still and video capture modes. Additionally, the gallery -enables users to select multiple photos for deletion.</p> - -<p>Android 1.6 also provides a much faster camera experience. -Compared to the previous release, launching the camera is now 39% faster, -and there is a 28% improvement in the time from completing one shot to the next.</p> - - -<h3 id="VPN">VPN, 802.1x</h3> - -<p>A new Virtual Private Network (VPN) control panel in Settings allows users -to configure and connect to the following types of VPNs:</p> - -<ul> - <li>L2TP/IPSEC pre-shared key based VPN</li> - <li>L2TP/IPsec certificate based VPN</li> - <li>L2TP only VPN</li> - <li>PPTP only VPN</li> -</ul> - - -<h3 id="Battery">Battery usage indicator</h3> - -<p>A new battery usage screen lets users see which apps and services are consuming -battery power. If the user determines that a particular service or application is -using too much power, they can take action to save the battery by -adjusting settings, stopping the application, or uninstalling the application.</p> - - -<h3 id="A11y">Accessibility</h3> - -<p>Users will be able to download new accessibility services built -on the new accessibility framework and enable them in Settings.</p> - - - - -<h2 id="GooglePlayUpdates" style="clear:right">Google Play Updates</h2> - -<div class="screenshot" style="margin-top:-35px"> -<img src="images/market.png" class="screenshot" alt="" /><br/> -New Google Play UI -</div> - -<p>For devices with Google Play, the latest version improves the overall user experience and makes -it easier for users to discover great apps and games from developers.</p> - -<ul> - <li>At the homescreen, users can choose among <em>Apps</em>, <em>Games</em>, and <em>Downloads</em>.</li> - <li>Inside a category, users can explore titles that are <em>Top paid</em>, <em>Top free</em>, and <em>Just in</em>.</li> - <li>For each title, users can now see screenshots submitted by developers in addition to - reviews from other users.</li> -</ul> - - - - -<h2 id="PlatformTechnologies" style="clear:right">New Platform Technologies</h2> - -<h3 id="SearchFramework">Expanded Search Framework</h3> - -<p>The Android search framework has been redesigned and expanded to provide -third-party applications the opportunity to surface -content from their applications in Quick Search Box, the global search tool. -To do this, developers will need to make their app "searchable" and provide -suggestions in response to user queries. -To enable application search suggestions, users simply select each application from which -they'd like to receive suggestions, under Searchable items in the Search settings.</p> - - -<h3 id="TTS">Text-to-speech engine</h3> - -<p>Android 1.6 features a multi-lingual speech synthesis engine called Pico. -It allows any Android application to "speak" a string of text with an accent that matches the language. -The engine supports the following languages: English (American and British accents), French, -Italian, German and Spanish. If you're using a T-Mobile G1 or Dream device, you'll need to download the -SpeechSynthesis Data Installer from Google Play, which includes the "voices" needed by the -text-to-speech engine.</p> - - -<h3 id="Gestures">Gestures</h3> - -<p>A new gestures framework provides application developers with a framework for creating, storing, -loading, and recognizing gestures and associating them with specific actions.</p> - -<p>Developers can use the new GestureBuilder tool included in the Android 1.6 SDK to generate libraries -of gestures to include with their application.</p> - - -<h3 id="A11y">Accessibility</h3> - -<p>Android 1.6 provides a new accessibility framework. -With this framework, developers can create accessibility plugins that respond to user input, -such as making a sound when a new window is shown, vibrating when navigating to the top of -a list, and providing spoken feedback.</p> - - -<h3 id="Screens">Expanded support for screen densities and resolutions</h3> - -<p>Android 1.6 adds screen support that enables applications to be rendered properly on different -display resolutions and densities. Developers can also specify the types of screens supported by their -application.</p> - - -<h3 id="CDMA">Telephony support for CDMA</h3> - -<p>Android 1.6 includes support for CDMA in the telephony stack.</p> - - -<h3 id="OpenCore">New version of OpenCore</h3> - -<p>Android 1.6 includes the updated OpenCore 2 media engine, which has:</p> - -<ul> - <li>Support for OpenMAX encoders</li> - <li>Support for additional audio codecs in AuthorEngine</li> - <li>Improved buffering model supports shared buffers allocated in the decoder</li> -</ul> - -<h3 id="LinuxKernel">2.6.29 Linux kernel</h3> - -<p>Android 1.6 upgrades the Linux kernel from 2.6.27 to 2.6.29.</p> - - -<h3 id="DeveloperAPIs">New Framework APIs</h3> - -<p>For a detailed overview of new APIs, see the -<a href="{@docRoot}sdk/android-1.6.html#api-changes">Version Notes</a>. -For a complete report of all API changes, see the -<a href="{@docRoot}sdk/api_diff/4/changes.html">API Differences Report</a>. diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd deleted file mode 100644 index a01a5f6..0000000 --- a/docs/html/sdk/android-1.6.jd +++ /dev/null @@ -1,505 +0,0 @@ -page.title=Android 1.6 Platform -sdk.platform.version=1.6 -sdk.platform.apiLevel=4 -sdk.platform.majorMinor=minor - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#features">Platform Highlights</a></li> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#api">Framework API Changes</a> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> - - </ol> - </li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> -</ol> - -</div> -</div> - -<p> -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release -deployable to Android-powered handsets since October 2009. -The platform includes new features for users and developers, as well as changes -in the Android framework API. </p> - -<p>For developers, a new release of the Android {@sdkPlatformVersion} platform -is available as a downloadable component for the Android SDK. The platform -— Android 1.6 r2 — includes a fully compliant Android library and -system image, as well as a set of emulator skins, sample applications, and minor -development updates. The downloadable platform is fully compliant (API Level 4) -and includes no external libraries.</p> - -<p>To get started developing or testing against the Android -{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to -download the latest Android 1.6 platform into your Android 1.6 or later SDK. For -more information, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>.</p> - - -<h2 id="features">Platform Highlights</h2> - -<p>For a list of new user features and platform highlights, see the <a -href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android -{@sdkPlatformVersion} Platform Highlights</a> document.</p> - - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { - padding: .25em 1em 0em 1em; - margin-bottom: 0; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleme a { - text-decoration:underline; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div class="toggleable opened"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" /> - Android 1.6, Revision 3</a> <em>(May 2010)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r6 or higher.</p> -</dd> -<dt>Tools:</dt> -<dd> -<ul> -<li>Adds support for library projects in the Ant build system.</li> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> - Android 1.6, Revision 2</a> <em>(December 2009)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r4 or higher.</p> -</dd> - -<dt>API related:</dt> -<dd> -<ul> -<li>Properly exposes CDMA-related constants in <code><a href="{@docRoot}reference/android/telephony/TelephonyManager.html">android.telephony.TelephonyManager</a></code>: <code>DATA_ACTIVITY_DORMANT</code>, -<code>PHONE_TYPE_CDMA</code>, <code>NETWORK_TYPE_CDMA</code>, -<code>NETWORK_TYPE_EVDO_0</code>, <code>NETWORK_TYPE_EVDO_A</code>, and -<code>NETWORK_TYPE_1xRTT</code>.</li> -</ul> -</dd> -<dt>System image:</dt> -<dd> -<ul> -<li>Fixes bug so that Bitmap's density is now propagated through Parcelable.</li> -<li>Fixes NinePatchDrawable to properly scale its reported padding for compatibility mode.</li> -<li>Fixes TextView to properly compute styled font metrics based on the screen density.</li> -<li>Updates kernel to 2.6.29, to match kernel on commercially -available Android-powered devices.</li> -</ul> -</dd> -<dt>Tools:</dt> -<dd> -<ul> -<li>Adds new Ant build system with support for Emma instrumentation projects -(code coverage).</li> -<li>Fixes emulator skins to properly emulate d-pad in landscape mode.</li> -<li>Fixes density rendering in the layout editor in ADT.</li> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> - Android 1.6, Revision 1</a> <em>(September 2009)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies</dt> -<dd> -<p>Requires SDK Tools r3 or higher.</p> -</dd> -</dl> - </div> -</div> - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your -application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the -<code>android:minSdkVersion</code> attributes of the <code><uses-sdk></code> -element in your application's manifest. </p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h2 id="api">Framework API Changes</h2> - -<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p> - -<h3 id="UIFramework">UI framework</h3> - <ul> - <li>New classes in {@link android.view.animation} - to control the behavior of animations: - <ul> - <li><code>AnticipateInterpolator</code></li> - <li><code>AnticipateOvershootInterpolator</code></li> - <li><code>BounceInterpolator</code></li> - <li><code>OvershootInterpolator</code></li> - </ul> - </li> - <li>New XML attribute <code>android:onClick</code> to specify a View's -<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> -from a layout file. - </li> - <li>New support for dealing with varying screen densities. Density -information is associated with Bitmap and Canvas for performing the -correct scaling. The framework will automatically scale bitmaps and -nine-patches based on the density the resource was found under and the -density of the screen, etc. - </li><p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to -set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code><uses-sdk></code> -element in your application's manifest. </p> - </ul> - -<h3>Search framework</h3> - <ul> - <li>Applications can now expose relevant content to users as search -suggestions in the Quick Search Box, a new device-wide search capability that is -accessible from the home screen. To support this, the search framework adds new -attributes to the searchable metadata file. For complete information, see the -{@link android.app.SearchManager SearchManager} documentation. - </li> - </ul> - -<h3>Accessibility framework</h3> - <ul> - <li>New {@link android.view.accessibility android.accessibility} package -that includes classes for capturing accessibility events and forwarding them to -an {@link android.accessibilityservice AccessibilityService} handler. </li> - <li>New {@link android.accessibilityservice AccessibilityService} package -that lets your application track user events and provide visual, audible, or -haptic feedback to the user. </li> - </ul> - -<h3>Gesture input</h3> - <ul> - <li>New {@link android.gesture gesture} API for creating, recognizing, -loading, and saving gestures.</li> - </ul> - -<h3>Text-to-speech</h3> - <ul> - <li>New {@link android.speech.tts android.speech.tts} package provides -classes for synthesizing speech from text, for immediate playback or to create a -sound file.</li> - </ul> - -<h3>Graphics</h3> - <ul> - <li>Classes in {@link android.graphics android.graphics} now support scaling -for different screen densities.</li> - </ul> - -<h3>Telephony</h3> - <ul> - <li>New {@link android.telephony.SmsManager SmsManager} and other classes -for sending and receiving SMS messages.</li> - </ul> - -<h3>Utilities</h3> - <ul> - <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for -determining the density of the current device screen.</li> - </ul> - -<h3 id="AndroidManifest">Android Manifest elements</h3> - - <ul> - <li>New <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code - <supports-screens>}</a> element lets you specify the device screen sizes that your - application is designed and tested to support, where "size" is a combination - of resolution and density. If your application is run on a device whose screen - size is not specified in the <code><supports-screen></code> element, the system - displays the application in <em>compatibility mode</em>, which performs best-effort scaling - of the application UI to match the resolution and density of the screen. - - <p>The attributes available for defining an application's screen support are: - - <ul> - - <li><code>smallScreen</code>: Boolean value that indicates whether the - application is designed to run on devices with small screens. - Examples: QVGA low density; VGA high density. - </li> - <li><code>normalScreens</code>: Boolean value that indicates whether - the application is designed to run on devices with normal screens. - Examples: WQVGA low density; HVGA medium density; WVGA high density. - </li> - <li><code>largeScreens</code>: Boolean value that indicates whether - the application is designed to run on devices with significantly - larger screens, such that special care may be required on - the application's part to make proper use of the screen area. - Examples: VGA medium density; WVGA medium density. - </li> - <li><code>anyDensity</code>: Boolean value that indicates whether - the application can accommodate any screen density. - </li> - <li><code>resizable</code>: Boolean value that indicates whether - the application can expand its layout to fit slightly larger screens. - </li> - </ul> - </p> - </li> - - <li>New <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> - element lets an application specify hardware (or other) - features that it requires to function normally. When an application - specifies such features, the system allows the application to be installed only - on devices that offer the required features. The element supports these - attributes: - <ul> - <li><code>name</code>: The name of the feature required by the application. Currently accepts - "android.hardware.camera" and "android.hardware.camera.autofocus" values, which specify that a - camera and camera autofocus are required, respectively.</li> - <li><code>glEsVersion</code>: Indicates the minimum version of OpenGL ES required.</li> - </ul> - </li> - <li>New attributes for the - <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> element: - <ul> - <li><code>targetSdkVersion</code>: Indicates the API Level that the application is targeting. - It is able to run on older versions (down to minSdkVersion), but was explicitly tested to - work with the version specified here. Specifying this version allows the platform to - disable compatibility code that is not required or enable newer features that are not - available to older applications. </li> - <li><code>maxSdkVersion</code>: Indicates the maximum API Level on which an application is - designed to run. <strong>Important:</strong> Please read the <a - href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code><uses-sdk></code></a> - documentation before using this attribute. </li> - </ul> - </li> - - </li> - </ul> - -<h3>New permissions</h3> - - <ul> - <li>{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE - CHANGE_WIFI_MULTICAST_STATE}: Allows applications to enter Wi-Fi - Multicast mode. - </li> - <li>{@link android.Manifest.permission#GLOBAL_SEARCH}: Allows the - global search system to access the data of a specified content provider. - </li> - <li>{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER}: - Allows an application to install a location provider into the Location Manager. - </li> - <li>{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS}: - Allows an application to read (but not write) the user's browsing history - and bookmarks. - </li> - <li>{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}: - Allows an application to write (but not read) the user's browsing history - and bookmarks. - </li> - <li>{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}: - Allows an application to write to external storage. Applications using API Level 3 - and lower will be implicitly granted this permission (and this will be visible to - the user); Applications using API Level 4 or higher must explicitly request this - permission. - </li> - </ul> - - -<h3 id="api-diff">API differences report</h3> - -<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to -the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a>.</p> - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> - <ul> - <li>Alarm Clock</li> - <li>Browser</li> - <li>Calculator</li> - <li>Camcorder</li> - <li>Camera</li> - <li>Contacts</li> - <li>Custom Locale (developer app)</li> - <li>Dev Tools (developer app)</li> - <li>Dialer</li> - </ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> - <ul> - <li>Email</li> - <li>Gallery</li> - <li>Gestures Builder</li> - <li>IME for Japanese text input</li> - <li>Messaging</li> - <li>Music</li> - <li>Settings</li> - <li>Spare Parts (developer app)</li> - </ul> -</td> -</tr> -</table> - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> -locale descriptor).</p> - -<table style="border:0;margin-bottom:0;padding-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -<li>Czech (cs_CZ)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>English, US (en_US)</li> -<li>English, Britain (en_GB)</li> -<li>English, Canada (en_CA)</li> -<li>English, Australia (en_AU)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>French, France (fr_FR)</li> -<li>French, Belgium (fr_BE)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Italian, Italy (it_IT)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Polish (pl_PL)</li> -<li>Russian (ru_RU)</li> -<li>Spanish (es_ES)</li> -</td> -</tr> -</table> - -<p>Localized UI strings match the locales that are accessible -through Settings.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can -use for modeling your application in different screen sizes and resolutions. -The emulator skins are: </p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p> diff --git a/docs/html/sdk/android-2.0-highlights.jd b/docs/html/sdk/android-2.0-highlights.jd deleted file mode 100644 index d4d13fc..0000000 --- a/docs/html/sdk/android-2.0-highlights.jd +++ /dev/null @@ -1,201 +0,0 @@ -page.title=Android 2.0 Platform Highlights -sdk.date=October 2009 - -@jd:body - - -<style type="text/css"> -#jd-content div.screenshot, -#jd-content div.video { - float:right; - clear:right; - padding:15px 60px; - font-size:.9em; - font-weight:bold; - line-height:1.7em; -} -#jd-content div.video { - padding-top:0; - margin-top:-15px; -} -#jd-content div.screenshot.second { - clear:none; - padding:15px 0 15px 60px; -} -#jd-content div.screenshot img { - margin:0; - border:1px solid #ccc; -} -</style> - -<div class="video"> -<object width="278 height="180"> -<param name="movie" value="http://www.youtube.com/v/opZ69P-0Jbc&hl=en&fs=1&"></param> -<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param> -<embed src="http://www.youtube.com/v/opZ69P-0Jbc&hl=en&fs=1&" type="application/x-shockwave-flash" -allowscriptaccess="always" allowfullscreen="true" width="278" height="180"></embed> -</object> -</div> - - -<p>The Android 2.0 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.0.</p> - -<ul> - <li><a href="#UserFeatures">New User Features</a></li> - <li><a href="#PlatformTechnologies">New Platform Technologies</a></li> -</ul> - - - -<h2 id="UserFeatures" style="clear:right">New User Features</h2> - -<!-- screenshots float right --> - -<div class="screenshot"> - <img src="images/2.0/quick-connect.png" class="screenshot" alt="" /><br/> - Quick Contact for Android -</div> - -<div class="screenshot second"> - <img src="images/2.0/multiple-accounts.png" class="screenshot" alt="" /><br/> - Multiple Accounts -</div> - -<div class="screenshot"> - <img src="images/2.0/mms-search.png" class="screenshot" alt="" /><br/> - Messaging Search -</div> - -<div class="screenshot second"> - <img src="images/2.0/email-inbox.png" class="screenshot" alt="" /><br/> - Email Combined Inbox -</div> - -<div class="screenshot"> - <img src="images/2.0/camera-modes.png" class="screenshot" alt="" /><br/> - Camera Modes -</div> - - - -<h3 id="Contacts">Contacts and accounts</h3> - -<ul> - <li>Multiple accounts can be added to a device for email and contact -synchronization, including Exchange accounts. (Handset manufacturers can -choose whether to include Exchange support in their devices.)</li> - <li>Developers can create sync adapters that provide synchronization with -additional data sources.</li> - <li>Quick Contact for Android provides instant access to -a contact's information and communication modes. For example, a user can tap a -contact photo and select to call, SMS, or email the person. Other applications -such as Email, Messaging, and Calendar can also reveal the Quick Contact widget -when you touch a contact photo or status icon.</li> -</ul> - - -<!-- -<ul> - <li>Sync support for contacts from multiple data sources including Exchange. - Handset manufacturers can choose whether or not to include Exchange support - in their devices.</li> - <li>New way to hover on a person to see more info and select communication - mode (for example, phone, SMS, email).</li> -</ul> ---> - -<h3 id="Email">Email</h3> - -<ul> - <li>Exchange support.</li> - <li>Combined inbox to browse email from multiple accounts in one page.</li> -</ul> - - -<h3 id="Messaging">Messaging</h3> - -<ul> - <li>Search functionality for all saved SMS and MMS messages.</li> - <li>Auto delete the oldest messages - in a conversation when a defined limit is reached.</li> -</ul> - - -<h3 id="Camera">Camera</h3> - -<ul> - <li>Built-in flash support</li> - <li>Digital zoom</li> - <li>Scene mode</li> - <li>White balance</li> - <li>Color effect</li> - <li>Macro focus</li> -</ul> - -<h3 id="Keyboard">Android virtual keyboard</h3> - -<ul> - <li>An improved keyboard layout to makes it easier to hit the correct characters - and improve typing speed.</li> - <li>The framework's multi-touch support ensures that key presses aren't missed - while typing rapidly with two fingers.</li> - <li>A smarter dictionary learns from word usage and automatically includes - contact names as suggestions.</li> -</ul> - - -<h3 id="Browser">Browser</h3> - -<ul> - <li>Refreshed UI with actionable browser URL bar enables users to directly - tap the address bar for instant searches and navigation.</li> - <li>Bookmarks with web page thumbnails.</li> - <li>Support for double-tap zoom.</li> - <li>Support for HTML5:</p> - <ul> - <li>Database API support, for client-side databases using SQL.</li> - <li>Application cache support, for offline applications.</li> - <li>Geolocation API support, to provide location information about the device.</li> - <li>{@code <video>} tag support in fullscreen mode.</li> - </ul> - </li> -</ul> - - -<h3 id="Calendar">Calendar</h3> -<ul> - <li>Agenda view provides infinite scrolling.</li> - <li>Events indicate the attending status for each invitee.</li> - <li>Invite new guests to events.</li> -</ul> - - -<h2 id="PlatformTechnologies" style="clear:right">New Platform Technologies</h2> - -<h3 id="MediaFramework">Media Framework</h3> - -<p>Revamped graphics architecture for improved performance that enables better -hardware acceleration.</p> - - -<h3 id="Bluetooth">Bluetooth</h3> - -<ul> - <li>Bluetooth 2.1</li> - <li>New BT profiles: Object Push Profile (OPP) and Phone Book Access Profile (PBAP)</li> -</ul> - - -<h3 id="DeveloperAPIs">New Framework APIs</h3> - -<p>Android 2.0 includes several new developer APIs. -For an overview of new APIs, see the -<a href="{@docRoot}sdk/android-2.0.html#api">Android 2.0 version notes</a>.</p> - -<p>For a complete report of all API changes, see the -<a href="{@docRoot}sdk/api_diff/5/changes.html">API Differences Report</a>.</p> - - - diff --git a/docs/html/sdk/android-2.0.1.jd b/docs/html/sdk/android-2.0.1.jd deleted file mode 100644 index 0c8afb6..0000000 --- a/docs/html/sdk/android-2.0.1.jd +++ /dev/null @@ -1,361 +0,0 @@ -page.title=Android 2.0.1, Release 1 -sdk.platform.version=2.0.1 -sdk.platform.apiLevel=6 -sdk.platform.majorMinor=minor - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - - <h2>In this document</h2> - <ol> - <li><a href="#features">Platform Highlights</a></li> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> - <li><a href="#dev-features">Developer Features</a></li> - <li><a href="#api">Framework API</a> - <ol> - <li><a href="#api-level">API level</a></li> - <li><a href="#api-changes">API changes summary</a></li> - <li><a href="#behavior-changes">Behavior changes</a></li> - <li><a href="#bug-fixes">Bug fixes</a></li> - <li><a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -differences report »</a> </li> - </ol> - </li> - </ol> - - <h2>See Also</h2> - <ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> - </ol> - -</div> -</div> - -<p> - -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release -deployable to Android-powered handsets starting in December 2009. -This release includes minor API -changes, bug fixes and framework behavioral changes. For information on changes -and fixes, see the <a href="#api">Framework API</a> section.</p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes a -fully compliant Android library and system image, as well as a set of emulator -skins, sample applications, and more. The downloadable platform -includes no external libraries. </p> - -<p>To get started developing or testing against the Android -{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to -download the platform into your Android 1.6 or later SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>.</p> - - -<h2 id="features">Platform Highlights</h2> - -<p>For a list of new user features and platform highlights, see the <a -href="http://developer.android.com/sdk/android-2.0-highlights.html">Android -2.0 Platform Highlights</a> document.</p> - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { -padding: .25em 1em; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> - Android 2.0.1, Revision 1</a> <em>(December 2009)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r4 or higher.</p> -</dd> -</dl> - </div> -</div> - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> - <ul> - <li>Alarm Clock</li> - <li>Browser</li> - <li>Calculator</li> - <li>Camcorder</li> - <li>Camera</li> - <li>Contacts</li> - <li>Custom Locale (developer app)</li> - <li>Dev Tools (developer app)</li> - <li>Dialer</li> - </ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> - <ul> - <li>Email</li> - <li>Gallery</li> - <li>Gestures Builder</li> - <li>IME for Japanese text input</li> - <li>Messaging</li> - <li>Music</li> - <li>Settings</li> - <li>Spare Parts (developer app)</li> - </ul> -</td> -</tr> -</table> - -<p><span class="new">New with 2.0.1</span> The Dev Tools app now -includes a "Sync Tester" application to provide quick and easy testing of -third-party sync adapters.</p> - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -<li>Czech (cs_CZ)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>English, US (en_US)</li> -<li>English, Britain (en_GB)</li> -<li>English, Canada (en_CA)</li> -<li>English, Australia (en_AU)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>French, France (fr_FR)</li> -<li>French, Belgium (fr_BE)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Italian, Italy (it_IT)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Polish (pl_PL)</li> -<li>Russian (ru_RU)</li> -<li>Spanish (es_ES)</li> -</td> -</tr> -</table> - -<p>Localized UI strings match the locales that are accessible -through Settings.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can use for modeling your application in different screen sizes and resolutions. The emulator skins are: </p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA (240x400, low density, normal screen) - </li> - <li> - FWQVGA (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p> - -<h2 id="dev-features">Developer Features</h2> - -<p>The sections below provide information about new developer features offered by the downloadable Android 2.0 platform component.</p> - -<h3 id="ant">Ant Support</h3> - -<ul> -<li>Debug- and release-mode application signing. Release-mode signing includes integrated support for <code>zipalign</code> optimization. For more information, see <a href="{@docRoot}guide/publishing/app-signing.html#releasecompile">Signing Your Applications</a>.</li> - -<li>Adds new Ant build system with support for Emma instrumentation projects (code coverage).</li> -</ul> - -<h2 id="api">Framework API</h2> - -<p>The sections below provide information about changes made to the application -framework API provided by the Android {@sdkPlatformVersion} platform. Note, -however, that Android 2.0.1 is a minor release to Android 2.0, so for more -information about the changes made to in Android 2.0, please refer to the -<a href="{@docRoot}sdk/android-2.0.html#api">Android 2.0 version notes</a>.</p> - - -<h3 id="api-level">API level</h3> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of the framework -API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — <strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to -set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code><uses-sdk></code> -element in your application's manifest. </p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h3 id="api-changes">API changes summary</h3> - -<p>The following is a summary of changes to the framework APIs.</p> - -<ul> -<li>New {@code quickContactBadgeStyle*} attributes that let -applications apply necessary styles to the {@link -android.widget.QuickContactBadge} widget.</li> - -<li>Remove support for the {@link -android.content.Intent#ACTION_CONFIGURATION_CHANGED} broadcast when declared as -a filter in the manifest. To receive this broadcast, an application must -do so from the application at run-time, with {@link -android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter)}.</li> -</ul> - -<h3 id="behavior-changes">Behavior changes</h3> - -<p>The following is a summary of changes that affect the behavior of some -framework APIs but do not add or remove API functionality.</p> - -<h4>Bluetooth</h4> - -<p>Changes to the values returned by {@link -android.bluetooth.BluetoothAdapter#ACTION_REQUEST_ENABLE} and -{@link android.bluetooth.BluetoothAdapter#ACTION_REQUEST_DISCOVERABLE}:</p> - -<ul> -<li>{@link android.bluetooth.BluetoothAdapter#ACTION_REQUEST_ENABLE} now -returns {@link android.app.Activity#RESULT_OK} if Bluetooth was successfully -enabled and {@link android.app.Activity#RESULT_CANCELED} if the user rejected -the request to enable Bluetooth, rather than 0 and -1 (or -2), -respectively.</li> - -<li>{@link android.bluetooth.BluetoothAdapter#ACTION_REQUEST_DISCOVERABLE} -now returns {@link android.app.Activity#RESULT_CANCELED} if the user rejected -the request to enable discoverability or if Bluetooth is not enabled, rather -than -1 and -2, respectively.</li> -</ul> - -<h4>Contacts</h4> - -<p>The {@link android.content.Intent#ACTION_INSERT} Intent now returns {@link -android.app.Activity#RESULT_CANCELED} in cases where the contact was not -persisted (for example, if the save was trimmed to a no-op).</p> - - -<h3 id="bug-fixes">Bug fixes</h3> - -<p>The following is a summary of bug fixes that affect some framework APIs.</p> - -<h4>Resources</h4> - -<p>The framework now correctly selects application resources in project -folders that use the API Level qualifier. For example, {@code drawable-v4/} is a -folder of drawable resources for API Level 4 (or higher) devices. This version -matching did not work properly and has been fixed.</p> - -<h4>Contacts</h4> - -<p>The {@link android.content.Intent#ACTION_INSERT} Intent now returns the -appropriate kind of URI when the request is made using the (now -deprecated) {@link android.provider.Contacts} APIs.</p> - -<h4>Other Framework fixes</h4> - -<ul> -<li>{@link android.app.Activity#getCallingPackage()} now properly reports the -package name, rather than the process name.</li> -</ul> - - -<h3 id="api-diff">API differences report</h3> - -<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to -API Level 5, see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a>. There are very few API changes in API Level 6, -so you might also be interested in reviewing the <a -href="{@docRoot}sdk/api_diff/5/changes.html">API -differences between 4 and 5</a>.</p> - diff --git a/docs/html/sdk/android-2.0.jd b/docs/html/sdk/android-2.0.jd deleted file mode 100644 index 2c31923..0000000 --- a/docs/html/sdk/android-2.0.jd +++ /dev/null @@ -1,384 +0,0 @@ -page.title=Android 2.0, Release 1 -sdk.platform.version=2.0 -sdk.platform.apiLevel=5 -sdk.platform.majorMinor=major - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - - <h2>In this document</h2> - <ol> - <li><a href="#features">Platform Highlights</a></li> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> - <li><a href="#dev-features">Developer Features</a></li> - <li><a href="#api">Framework API</a> - <ol> - <li><a href="#api-level">API level</a></li> - <li><a href="#api-changes">API changes summary</a></li> - <li><a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API differences report »</a> </li> - </ol></li> - </ol> - - <h2>See Also</h2> - <ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> - </ol> - -</div> -</div> - -<p> -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release -deployable to Android-powered handsets starting in November 2009. -The release includes new features for users and developers, as well as changes -in the Android framework API. </p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes a -fully compliant Android library and system image, as well as a set of emulator -skins, sample applications, and more. The downloadable platform is fully -compliant and includes no external libraries. </p> - -<p>To get started developing or testing against the Android -{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to -download the platform into your SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>.</p> - - -<h2 id="features">Platform Highlights</h2> - -<p>For a list of new user features and platform highlights, see the <a -href="http://developer.android.com/sdk/android-{@sdkPlatformVersion}-highlights.html">Android -{@sdkPlatformVersion} Platform Highlights</a> document.</p> - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { -padding: .25em 1em; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div class="toggleable opened"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" /> - Android 2.0, Revision 1</a> <em>(October 2009)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r3 or higher.</p> -</dd> -</dl> - </div> -</div> - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> - <ul> - <li>Alarm Clock</li> - <li>Browser</li> - <li>Calculator</li> - <li>Camcorder</li> - <li>Camera</li> - <li>Contacts</li> - <li>Custom Locale (developer app)</li> - <li>Dev Tools (developer app)</li> - <li>Dialer</li> - </ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> - <ul> - <li>Email</li> - <li>Gallery</li> - <li>Gestures Builder</li> - <li>IME for Japanese text input</li> - <li>Messaging</li> - <li>Music</li> - <li>Settings</li> - <li>Spare Parts (developer app)</li> - </ul> -</td> -</tr> -</table> - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -<li>Czech (cs_CZ)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>English, US (en_US)</li> -<li>English, Britain (en_GB)</li> -<li>English, Canada (en_CA)</li> -<li>English, Australia (en_AU)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>French, France (fr_FR)</li> -<li>French, Belgium (fr_BE)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Italian, Italy (it_IT)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Polish (pl_PL)</li> -<li>Russian (ru_RU)</li> -<li>Spanish (es_ES)</li> -</td> -</tr> -</table> - -<p>Localized UI strings match the locales that are accessible -through Settings.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can use for modeling your application in different screen sizes and resolutions. The emulator skins are: </p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA (240x400, low density, normal screen) - </li> - <li> - FWQVGA (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p> - -<h2 id="dev-features">Developer Features</h2> - -<p>The sections below provide information about new developer features offered by the downloadable Android 2.0 platform component.</p> - -<h3 id="ant">Ant Support</h3> - -<ul> -<li>Debug- and release-mode application signing. Release-mode signing includes integrated support for <code>zipalign</code> optimization. For more information, see <a href="{@docRoot}guide/publishing/app-signing.html#releasecompile">Signing Your Applications</a>.</li> - -<li>Adds new Ant build system with support for Emma instrumentation projects (code coverage).</li> -</ul> - -<h2 id="api">Framework API</h2> - -<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p> - - -<h3 id="api-level">API level</h3> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of the framework -API. As with previous versions, the Android {@sdkPlatformVersion} API -is assigned an integer identifier — <strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need to -set the proper value, "{@sdkPlatformApiLevel}", in the attributes of the <code><uses-sdk></code> -element in your application's manifest. </p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h3 id="api-changes">API changes summary</h3> - -<h4>Bluetooth</h4> -<ul> -<li>Turn on/off Bluetooth</li> -<li>Device and service discovery</li> -<li>Connect to a remote device using RFCOMM and send/receive data</li> -<li>Advertise RFCOMM services and listen for incoming RFCOMM connection</li> -</ul> - -<h4>Sync adapters </h4> -<ul> -<li>New APIs for sync adapters to connect to any backend</li> -</ul> - -<h4>Account Manager</h4> -<ul> -<li>Centralized account manager API to securely store and access auth tokens/passwords </li> -</ul> - -<h4>Contacts</h4> -<ul> -<li>New contacts APIs that allow for data from multiple accounts</li> -<li>New Quick Contact framework APIs enable developers to create contact badges in their app. Clicking on the badge opens a window with a list of ways to contact the person with one click.</li> -</ul> - -<h4>WebView</h4> -<ul> -<li>Deprecated classes: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.</li> -</ul> - -<h4>Camera</h4> -<ul> -<li>New parameters for color effect, scene mode, flash mode, focus mode, white balance, rotation, and other settings.</li> -<li>New ZoomCallback interface to perform actions when the zoom level has changed.</li> -</ul> - -<h4>Media</h4> -<ul> -<li>MediaScanner now generates thumbnails for all images when they are inserted into MediaStore.</li> -<li>New Thumbnail API for retrieving image and video thumbnails on demand.</li> -</ul> - -<h4>Other Framework</h4> -<ul> -<li>New system themes in android.R.style to easily display activities on top of the current system wallpaper or keep the previous activity visible in the background. </li> -<li>New WallpaperManager API replaces and extends the wallpaper APIs that were previously in Context, to allow applications to request and set the system wallpaper.</li> -<li>New Service APIs to help applications correctly handle Service life-cycle, in particular low memory situations where a Service may be killed while it is running. - <ul> - <li>Service.setForeground() has been deprecated and now effectively performs no operation. This is replaced with a new API, startForeground(), that helps (and requires) associating an ongoing notification with the foreground state.</li> - </ul> -</li> -<li>MotionEvent can now report simultaneous-touch information for devices that support it. Up to three pointers can be tracked simultaneously. </li> -<li>KeyEvent has new key dispatching APIs, to help implement action-on-up and long press behavior, as well a new mechanism to cancel key presses (for virtual keys).</li> -<li>WindowManager.LayoutParams has new constants that allow a window to wake up the screen when it is displayed and show the window even if the screen is locked. This allows applications to more cleanly implement things like alarm clocks that should wake the device.</li> -<li>New Intent APIs that broadcast the docking state of the device and allow applications to launch special activities when the device is placed in a desktop or car dock.</li> -</ul> - -<h4>Key events executed on key-up</h4> - -<p>Android 2.0 is designed to run on devices that use virtual keys for HOME, -MENU, BACK, and SEARCH, rather than physical keys. To support the best user -experience on those devices, the Android platform now executes these buttons at -key-up, for a key-down/key-up pair, rather than key-down. This helps prevent -accidental button events and lets the user press the button area and then drag -out of it without generating an event. </p> - -<p>This change in behavior should only affect your application if it is -intercepting button events and taking an action on key-down, rather than on -key-up. Especially if your application is intercepting the BACK key, you should -make sure that your application is handling the key events properly. </p> - -<p>In general, intercepting the BACK key in an application is not recommended, -however, if your application is doing so and it invokes some action on -key-down, rather than key-up, you should modify your code. </p> - -<p>If your application will use APIs introduced in Android 2.0 (API Level 5), -you can take advantage of new APIs for managing key-event pairs:</p> - -<ul> -<li>If you are intercepting the BACK key in an activity or dialog, just -implement the new {@link android.app.Activity#onBackPressed()} method. </li> -<li>If you are intercepting the BACK key in a view, you should track the key -event on key-down (through the new {@link android.view.KeyEvent#startTracking} -method), then invoke the action at key up. Here's a pattern you can use:</li> - -<pre> public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK - && event.getRepeatCount() == 0) { - event.startTracking(); - return true; - } - return super.onKeyDown(keyCode, event); - } - - public boolean onKeyUp(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() - && !event.isCanceled()) { - // *** DO ACTION HERE *** - return true; - } - return super.onKeyUp(keyCode, event); - }</pre> - -</ul> - -<p>If you want to update a legacy application so that its handling of the BACK -key works properly for both Android 2.0 and older platform versions, you -can use an approach similar to that shown above. Your code can catch the -target button event on key-down, set a flag to track the key event, and -then also catch the event on key-up, executing the desired action if the tracking -flag is set. You'll also want to watch for focus changes and clear the tracking -flag when gaining/losing focus.</p> - -<h3 id="api-diff">API differences report</h3> - -<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to -the previous version, see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API Differences Report</a>.</p> - diff --git a/docs/html/sdk/android-2.1.jd b/docs/html/sdk/android-2.1.jd deleted file mode 100644 index 1ee833c..0000000 --- a/docs/html/sdk/android-2.1.jd +++ /dev/null @@ -1,373 +0,0 @@ -page.title=Android 2.1 Platform -sdk.platform.version=2.1 -sdk.platform.apiLevel=7 -sdk.platform.majorMinor=minor - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#features">Platform Highlights</a></li> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#api">Framework API Changes</a> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> - - </ol> - </li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> -</ol> - -</div> -</div> - -<p> -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release -deployable to Android-powered handsets starting in January 2010. -This release includes new API -changes and bug fixes. For information on changes, see the <a href="#api">Framework API</a> -section.</p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes a -fully compliant Android library and system image, as well as a set of emulator -skins, sample applications, and more. The downloadable platform -includes no external libraries. </p> - -<p>To get started developing or testing against the Android -{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to -download the platform into your SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>.</p> - - -<h2 id="features">Platform Highlights</h2> - -<p>Android {@sdkPlatformVersion} does not add significant user features, see the <a -href="http://developer.android.com/sdk/android-2.0-highlights.html">Android -2.0 Platform Highlights</a> document for the latest user features.</p> - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - - -<div class="toggle-content opened" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 3</a> <em>(July 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r12</a> or -higher.</p> -</dd> -<dt>Notes:</dt> -<dd> -<p>Improvements to the platform's rendering library to support the visual layout editor in the ADT -Eclipse plugin. This revision allows for more drawing features in ADT and fixes several -bugs in the previous rendering library. It also unlocks several editor features that were added in -ADT 12.</p> -</dd> -</dl> - -</div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 2</a> <em>(May 2010)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r6 or higher.</p> -</dd> - -<dt>Tools:</dt> -<dd> -<ul> -<li>Adds support for library projects in the Ant build system.</li> -<li>Adds improved layout rendering in ADT’s visual layout editor.</li> -</ul> -</dd> - -</dl> - </div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(January 2010)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r4 or higher.</p> -</dd> -</dl> - </div> -</div> - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your -application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the -<code>android:minSdkVersion</code> attributes of the <code><uses-sdk></code> -element in your application's manifest. </p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h2 id="api">Framework API Changes</h2> - -<p>The sections below provide information about changes made to the application -framework API provided by the Android {@sdkPlatformVersion} platform.</p> - -<h3>Live Wallpapers</h3> - -<p>The following additions provide APIs for you to develop animated wallpapers:</p> -<ul> -<li>New {@link android.service.wallpaper} package.</li> -<li>New {@link android.app.WallpaperInfo} class.</li> -<li>Updated {@link android.app.WallpaperManager}.</li> -</ul> - -<p>Additionally, if your application uses or provides Live Wallpapers, you must -remember to add a <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code></a> - element to the application's manifest, declaring the attribute -<code>android:name="android.software.live_wallpaper"</code>. For example:</p> - -<pre class="no-pretty-print"> -<uses-feature android:name="android.software.live_wallpaper" /> -</pre> - -<p>When you've published your application, Google Play checks for the -presence of this element and uses it as a filter, ensuring that your application -is not made available to users whose devices do not support Live Wallpapers. -</p> - -<h3>Telephony</h3> - -<ul> -<li>New {@link android.telephony.SignalStrength} class provides information -about the device's current network signal. This can be acquired from the -new {@link -android.telephony.PhoneStateListener#onSignalStrengthsChanged(SignalStrength)} -callback.</li> - -<li>New {@link -android.telephony.PhoneStateListener#onDataConnectionStateChanged(int,int)} -callback.</li> -</ul> - -<h3>Views</h3> - -<ul> -<li>New {@link android.view.View} methods {@link android.view.View#isOpaque()} -and {@link android.view.View#onDrawScrollBars(Canvas)}.</li> - -<li>New {@link android.widget.RemoteViews} methods {@link -android.widget.RemoteViews#addView(int,RemoteViews)} and {@link -android.widget.RemoteViews#removeAllViews(int)}.</li> - -<li>New {@link android.view.ViewGroup} methods {@link -android.view.ViewGroup#isChildrenDrawingOrderEnabled()} and {@link -android.view.ViewGroup#setChildrenDrawingOrderEnabled(boolean)}.</li> -</ul> - -<h3>WebKit</h3> - -<ul> -<li>New {@link android.webkit.WebStorage} methods to manipulate web -storage databases.</li> - -<li>New {@link android.webkit.GeolocationPermissions} methods to -get Geolocation permissions from, and set them on the WebView.</li> - -<li>New {@link android.webkit.WebSettings} methods to manage settings for -app cache, web storage, and zooming based on screen density.</li> - -<li>New {@link android.webkit.WebChromeClient} methods for handling video, -browsing history, custom Views, app cache limits, and more.</li> -</ul> - -</ul> - -<!-- -<h3 id="behavior-changes">Behavior changes</h3> - -<h3 id="bug-fixes">Bug fixes</h3> ---> - -<h3 id="api-diff">API differences report</h3> - -<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API -Level {@sdkPlatformApiLevel}), as compared to API Level 6, see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a>.</p> - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> - <ul> - <li>Alarm Clock</li> - <li>Browser</li> - <li>Calculator</li> - <li>Camera</li> - <li>Contacts</li> - <li>Custom Locale (developer app)</li> - <li>Dev Tools (developer app)</li> - <li>Email</li> - </ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> - <ul> - - <li>Gallery</li> - <li>IMEs for Japanese, Chinese, and Latin text input</li> - <li>Messaging</li> - <li>Music</li> - <li>Phone</li> - <li>Settings</li> - <li>Spare Parts (developer app)</li> - </ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -<li>Czech (cs_CZ)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>English, US (en_US)</li> -<li>English, Britain (en_GB)</li> -<li>English, Canada (en_CA)</li> -<li>English, Australia (en_AU)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>French, France (fr_FR)</li> -<li>French, Belgium (fr_BE)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Italian, Italy (it_IT)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Polish (pl_PL)</li> -<li>Russian (ru_RU)</li> -<li>Spanish (es_ES)</li> -</td> -</tr> -</table> - -<p>Localized UI strings match the locales that are accessible -through Settings.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can use -for modeling your application in different screen sizes and resolutions. The -emulator skins are:</p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA (240x400, low density, normal screen) - </li> - <li> - FWQVGA (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays -and functions properly on all Android-powered devices, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p> diff --git a/docs/html/sdk/android-2.2-highlights.jd b/docs/html/sdk/android-2.2-highlights.jd deleted file mode 100644 index 37a20d5..0000000 --- a/docs/html/sdk/android-2.2-highlights.jd +++ /dev/null @@ -1,298 +0,0 @@ -page.title=Android 2.2 Platform Highlights - -@jd:body - - -<style type="text/css"> -#jd-content { - max-width:800px; -} -#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/yAZYSVr2Bhc&hl=en&fs=1&"></param> -<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" -value="always"></param> -<embed src="http://www.youtube.com/v/yAZYSVr2Bhc&hl=en&fs=1&" type="application/x-shockwave-flash" -allowscriptaccess="always" allowfullscreen="true" width="278" height="180"></embed> -</object> -</div> - - -<p>The Android 2.2 platform introduces many new and exciting features for -users and developers. This document provides a glimpse at some of the new user features -and technologies in Android 2.2. For more information about the new developer APIs, see the <a -href="android-2.2.html#api">Android 2.2 version notes</a>.</p> - -<ul> - <li><a href="#UserFeatures">New User Features</a></li> - <li><a href="#PlatformTechnologies">New Platform Technologies</a></li> - <li><a href="#DeveloperServices">New Developer Services</a></li> - <li><a href="#DeveloperApis">New Developer APIs</a></li> -</ul> - - - -<h2 id="UserFeatures" style="clear:right">New User Features</h2> - -<h3>Home</h3> - -<table class="columns" style="max-width:800px"> -<tr> - <td> -<img src="images/2.2/22home.png" alt="" height=230 /> - </td> - <td> -<p style="margin-top:0">New Home screen <span class="green">tips widget</span> assists new users on -how to configure the -home screen with shortcuts and widgets and how to make use of multiple home screens.</p> -<p>The Phone, applications Launcher, and Browser now have <span class="green">dedicated -shortcuts</span> on the Home screen, making it easy to access them from any of the 5 home screen -panels.</p> - </td> -</tr> -</table> - - - -<h3>Exchange support</h3> - -<table class="columns" style="max-width:800px"> -<tr> - <td> -<p><span class="green">Improved security</span> with the addition of numeric pin or alpha-numeric -password options to unlock device. Exchange administrators can enforce password policy across -devices.</p> -<p><span class="green">Remote wipe:</span> Exchange administrators can remotely reset the device to -factory defaults to secure data in case device is lost or stolen.</p> -<p><span class="green">Exchange Calendars are now supported</span> in the Calendar application.</p> -<p><span class="green">Auto-discovery:</span> you just need to know your user-name and password to -easily set up and sync an Exchange account (available for Exchange 2007 and higher).</p> -<p><span class="green">Global Address Lists look-up</span> is now available in the Email -application, enabling users to auto-complete recipient names from the directory.</p> - </td> - <td> -<img src="images/2.2/22exchange.png" alt="" height=300 /> - </td> -</tr> -</table> - - -<h3>Camera and Gallery</h3> - -<table class="columns" style="max-width:800px"> -<tr> - <td> -<img src="images/2.2/22gallery.png" alt="" height=220 /> - </td> - <td> -<p>Gallery allows you to <span class="green">peek into picture stacks</span> using a zoom -gesture.</p> -<p>Camera <span class="green">onscreen buttons</span> provide easy access to a new UI for -controling zoom, flash, white balance, geo-tagging, focus and exposure. Camcorder also provides -an easy way to set video size/quality for MMS and YouTube.</p> -<p>With the <span class="green">LED flash</span> now enabled for the Camcorder, videos can be shot -at night or in low light settings.</p> - </td> -</tr> -</table> - - -<h3>Portable hotspot</h3> - -<table class="columns" style="max-width:800px"> -<tr> - <td> -<p>Certain devices like the Nexus One can be turned into <span class="green">a portable Wi-Fi -hotspot</span> that can be shared with up to 8 devices.</p> -<p>You can use your Android-powered phone as a 3G connection for a Windows or Linux laptop by -connecting their phone to the computer with a USB cable. The connection is then shared between the -two devices.</p> - </td> - <td> -<img src="images/2.2/22hotspot.png" alt="" height=180 /> - </td> -</tr> -</table> - - -<h3>Multiple keyboard languages</h3> - -<table class="columns" style="max-width:800px"> -<tr> - <td> -<img src="images/2.2/22keyboard.png" alt="" height=220 /> - </td> - <td> -<p>Multi-lingual users can add multiple languages to the keyboard and <span class="green">switch -between multiple Latin-based input languages</span> by swiping across the space bar. This changes -the keys as well as the auto-suggest dictionary.</p> - </td> -</tr> -</table> - - -<h3>Improved performance</h3> - -<table class="columns" style="max-width:800px"> -<tr> - <td> -<p><span class="green">Performance of the browser</span> has been enhanced using the V8 engine, -which enables faster loading of JavaScript-heavy pages.</p> -<p><span class="green">Dalvik Performance Boost:</span> 2x-5x performance speedup for CPU-heavy code -over Android 2.1 with Dalvik JIT.</p> -<p>The graph to the right shows the performance <span class="green">speedup</span> from Android 2.1 -to Android 2.2 using various benchmark tests. For example, LinPack is now more than 5 times -faster.</p> -<p><span class="green">Kernel Memory Management Boost:</span> Improved memory reclaim by up to 20x, -which results in faster app switching and smoother performance on memory-constrained devices.</p> - </td> - <td> -<img src="images/2.2/jit-graph.png" alt="" height=200 /> - </td> -</tr> -</table> - - - - - -<h2 id="PlatformTechnologies">New Platform Technologies</h2> - - -<h3>Media framework</h3> - -<ul> - <li>New media framework (Stagefright) that supports local file playback and HTTP progressive -streaming</li> - <li>Continued support for OpenCore in Android 2.2</li> -</ul> - - -<h3>Bluetooth</h3> - -<ul> - <li>Voice dialing over Bluetooth</li> - <li>Ability to share contacts with other phones</li> - <li>Support for Bluetooth enabled car and desk docks</li> - <li>Improved compatibility matrix with car kits and headsets</li> -</ul> - - -<h3>2.6.32 kernel upgrade</h3> - -<ul> - <li>HIGHMEM support for RAM >256MB</li> - <li>SDIO scheduling and BT improvements</li> -</ul> - - - - -<h2 id="DeveloperServices">New Developer Services</h2> - - -<h3>Android Cloud to Device Messaging</h3> - -<p>Apps can utilize Android Cloud to Device Messaging to enable mobile alert, send to phone, and -two-way push sync functionality.</p> - - -<h3>Android Application Error Reports</h3> - -<p>New bug reporting feature for Google Play apps enables developers to receive crash and freeze -reports from their users. The reports will be available when they log into their publisher -account.</p> - - - - -<h2 id="DeveloperApis">New Developer APIs</h2> - - -<h3>Apps on external storage</h3> - -<p>Applications can now request installation on the shared external storage (such as an SD -card).</p> - - -<h3>Media framework</h3> - -<p>Provides new APIs for audio focus, routing audio to SCO, and auto-scan of files to media -database. Also provides APIs to let applications detect completion of sound loading and auto-pause -and auto-resume audio playback.</p> - - -<h3>Camera and Camcorder</h3> - -<p>New preview API doubles the frame rate from ~10FPS to ~20FPS. Camera now supports portrait -orientation, zoom controls, access to exposure data, and a thumbnail utility. A new camcorder -profile enables apps to determine device hardware capablities.</p> - - -<h3>Graphics</h3> - -<p>New APIs for OpenGL ES 2.0, working with YUV image format, and ETC1 for texture -compression.</p> - - -<h3>Data backup</h3> - -<p>Apps can participate in data backup and restore, to ensure that users maintain their data -after performing a factory reset or when switching devices.</p> - - -<h3>Device policy manager</h3> - -<p>New device policy management APIs allow developers to write "device administrator" applications -that can control security features on the device, such as the minimum password strength, data wipe, -and so on. Users can select the administrators that are enabled on their devices.</p> - - -<h3>UI framework</h3> - -<p>New "car mode" and "night mode" controls and configurations allow applications to adjust their UI -for these situations. A scale gesture detector API provides improved definition of multi-touch -events. Applications can now customize the bottom strip of a TabWidget.</p> - - - -<p>For more information about the new developer APIs, see the <a -href="android-2.2.html#api">Android 2.2 version notes</a> and the <a -href="{@docRoot}sdk/api_diff/8/changes.html">API Differences Report</a>.</p> - - - - - diff --git a/docs/html/sdk/android-2.2.jd b/docs/html/sdk/android-2.2.jd deleted file mode 100644 index c22220c..0000000 --- a/docs/html/sdk/android-2.2.jd +++ /dev/null @@ -1,470 +0,0 @@ -page.title=Android 2.2 Platform -sdk.platform.version=2.2 -sdk.platform.apiLevel=8 -sdk.platform.majorMinor=minor - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#features">Platform Highlights</a></li> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#api">Framework API Changes</a> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> - - </ol> - </li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> -</ol> - -</div> -</div> - -<p> -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release including user -features, developer features, API changes, and bug -fixes. For information on developer features and API changes, see the -<a href="#api">Framework API</a> section.</p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes a -fully compliant Android library and system image, as well as a set of emulator -skins, sample applications, and more. The downloadable platform -includes no external libraries. </p> - -<p>To get started developing or testing against the Android -{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to -download the platform into your SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>. If you are new to Android, <a -href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> -first.</p> - - -<h2 id="features">Platform Highlights</h2> - -<p>For a list of new user features and platform highlights, see the <a -href="http://developer.android.com/sdk/android-2.2-highlights.html">Android -2.2 Platform Highlights</a> document.</p> - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - - -<div class="toggle-content opened" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 3</a> <em>(July 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r12</a> or -higher.</p> -</dd> -<dt>Notes:</dt> -<dd> -<p>Improvements to the platform's rendering library to support the visual layout editor in the ADT -Eclipse plugin. This revision allows for more drawing features in ADT and fixes several -bugs in the previous rendering library. It also unlocks several editor features that were added in -ADT 12.</p> -</dd> -</dl> - -</div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 2</a> <em>(July 2010)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r6 or higher.</p> -</dd> - -<dt>System Image:</dt> -<dd> -<ul> -<li>Adds default Search Widget.</li> -<li>Includes proper provisioning for the platform's Backup Manager. For more information about how to use the Backup Manager, see <a href="{@docRoot}guide/topics/data/backup.html">Data Backup</a>.</li> -<li>Updates the Android 2.2 system image to FRF91.</li> -</ul> -</dd> - -</dl> - </div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(May 2010)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r6 or higher.</p> -</dd> - -<dt>Tools:</dt> -<dd> -<p>Adds support for building with Android library projects. See <a href="tools-notes.html">SDK Tools, r6</a> for information.</p> -</dd> - -</dl> - </div> -</div> - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your -application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the -<code>android:minSdkVersion</code> attributes of the <code><uses-sdk></code> -element in your application's manifest. </p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h2 id="api">Framework API Changes</h2> - -<p>The sections below provide information about changes made to the application -framework API provided by the Android {@sdkPlatformVersion} platform.</p> - -<h3 id="install-loc">App installation on external storage media</h3> - -<p>The Android platform now allows applications to request installation onto the -device's external storage media (such as the SD card), as an alternative to -installation onto the device's internal memory. </p> - -<p>Application developers can express the preferred installation location for -their applications by means of a new attribute of <code><manifest></code> -in the manifest file, <a -href="{@docRoot}guide/topics/manifest/manifest-element.html#install"><code> -android:installLocation</code></a>. The attribute supports three values: -<code>"internalOnly"</code>, <code>"preferExternal"</code>, and -<code>"auto"</code>. At install time, the system checks the value of -<code>android:installLocation</code> and installs the application -<code>.apk</code> according to the preferred location, if possible. If the -application has requested external installation, the system installs it into a -private, encrypted partition in the external media. Once an application .apk is -installed externally, the system lets the user change the storage location of -the .apk and move it onto the device's internal memory if needed (and vice -versa), through Manage Applications in the user settings.</p> - -<p>By default, the system installs all applications onto the device's internal -memory, except for those that explicitly request external installation. This -means that the system will always install legacy applications onto internal -memory, since they do not have access to the -<code>android:installLocation</code> attribute. However, it is possible to -configure and compile a legacy application such that it is installed internally -on older versions of the platform and externally on Android 2.2 and later -platforms, if necessary. </p> - -<p>Note that requesting installation onto the device's external media is not -suitable for all applications, particularly because the external media may be -removable and unmounting/remounting may disrupt the user experience and system -settings.</p> - -<p>For more information about setting a preferred install location for your -application, including a discussion of what types of applications should and -should not request external installation, please read the <a -href="{@docRoot}guide/appendix/install-location.html">App Install Location</a> -document. </p> - -<h3 id="backup-manager">Data backup</h3> - -<p>The platform now provides a generalized backup service that -applications can use to backup and restore user data, to ensure that users can -maintain their data when switching devices or reinstalling the application. The -Backup Manager handles the work of transporting the application data to and from -the backup storage area in the cloud. The Backup Manager can store any type of -data, from arbitrary data to files, and manages backup and restore operations -in an atomic manner. For more information, see <a -href="{@docRoot}guide/topics/data/backup.html">Data Backup</a>.</p> - -<h3>Graphics</h3> - -<ul> -<li>New OpenGL ES 2.0 APIs in {@link android.opengl.GLES20 android.opengl.GLES20}.</li> -<li>New {@link android.opengl.ETC1}, {@link android.opengl.ETC1Util}, and {@link android.opengl.ETC1Util.ETC1Texture} classes and utility methods for using ETC1 for texture compression.</li> -<li>New {@link android.graphics.ImageFormat} class.</li> -<li>New {@link android.graphics.YuvImage YUV image format API} to enable compression from YUV to JPEG and manipulation of YUV data.</li> -</ul> - -<h3>Media</h3> - -<ul> -<li>New APIs in {@link android.media.AudioManager android.media.AudioManager} for managing audio focus, transport control, transient loss of audio focus, ducking.</li> -<li>New broadcast intent for routing audio to SCO — {@link android.media.AudioManager#ACTION_SCO_AUDIO_STATE_CHANGED} with extras indicating new state.</li> -<li>New APIs in {@link android.media.SoundPool} to detect completion of sound-loading.</li> -<li>New APIs in {@link android.media.SoundPool} for auto pause and resume.</li> -<li>New APIs in {@link android.media.MediaRecorder} for specifying audio settings for number of channels, encoding and sampling rates, sampling rate.</li> -<li>New APIs for adding files to the media database, so that they are automatically scanned. See {@link android.media.MediaScannerConnection#scanFile(Context, String[], String[], OnScanCompletedListener) MediaScannerConnection.scanFile} and {@link android.media.MediaScannerConnection.OnScanCompletedListener MediaScannerConnection.OnScanCompletedListener}.</li> -</ul> - -<h3>Speech recognition and third-party recognition engines</h3> - -<ul> -<li>The platform provides new speech-recognition APIs that allow applications to have a richer interaction with the available voice recognizer. For example, the APIs are sufficient to integrate voice recognition deeply into an IME.</li> -<li>The platform also provides a {@link android.speech.RecognitionService} base class that lets third-party developers create plug-in recognition engines. </li> -<li>New {@link android.speech.RecognitionListener} interface to receive callbacks.</li> -<li>New {@link android.speech.RecognizerIntent} extras that let a requester app specify details as preferred language, minimum length in milliseconds, and so on.</li> -</ul> - -<h3>Camera and camcorder</h3> - -<ul> -<li>Changes to camera preview API to improve efficieny of preview pipeline. </li> -<li>New display orientation for camera (it can now work in portrait orientation).</li> -<li>New APIs in {@link android.hardware.Camera android.hardware.Camera} for managing zoom level.</li> -<li>New APIs {@link android.hardware.Camera.Parameters android.hardware.Camera.Parameters} for querying and setting device camera settings such as focal length, exposure, zoom level, view angle, and others.</li> -<li>New {@link android.media.ThumbnailUtils thumbnail} utility for video and image thumbnails.</li> -<li>New {@link android.media.CamcorderProfile} and {@link android.media.CamcorderProfile} classes enable apps to determine device hardware camera capablities.</li> -<li>New support in {@link android.media.ExifInterface android.media.ExifInterface} for retrieving GPS and focal length.</li> -</ul> - -<h3>Device policy manager</h3> - -<p>New device policy management APIs allow developers to write "device -administrator" applications that can control security features of the device, -such as the minimum password strength, data wipe, and so on. Users can select -the administrators that are enabled on their devices. For more information, see -the {@link android.app.admin android.app.admin} classees or the example -application code in <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.html">DeviceAdminSample.java</a>.</p> - -<h3>UI Framework</h3> - -<ul> -<li>New UI modes "car mode" and "night mode" and {@link android.app.UiModeManager} let applications adjust their application UI for specific user modes. </li> -<li>New {@link android.view.ScaleGestureDetector} that lets Views detect and handle transformation gestures that involve more than one pointer (multitouch) using the supplied MotionEvents. </li> -<li>Improvements in the way that multitouch events are reported in {@link android.view.MotionEvent} objects.</li> -<li>The layout attribute <code>fill_parent</code> is renamed to <code>match_parent</code>. This affects both XML and Java code (see {@link android.view.ViewGroup.LayoutParams}). Note that the platform will continue to honor uses of <code>fill_parent</code> in legacy applications. </li> -<li>New layout attributes {@link android.R.attr#tabStripEnabled}, {@link android.R.attr#tabStripRight}, and {@link android.R.attr#tabStripLeft} let developers customize the bottom strip of TabWidgets.</li> -<li>Better support for managed dialogs in Activity.</li> -</ul> - -<h3>Accounts and sync</h3> - -<ul> -<li>New method {@link android.content.ContentResolver#addPeriodicSync(Account, String, Bundle, long) AddPeriodicSync()} lets you schedule a periodic sync with a specific account, authority, and extras at the given frequency.</li> -</ul> - -<h3>New manifest elements and attributes</h3> - -<ul> -<li>For specifying the application's preferred install location (see <a href="#install-loc">App Installation on External Storage Media</a>, above): - -<ul> - <li>New <code>android:installLocation</code> attribute of the <code><manifest></code> element. Specifies the default install location defined by an application.</li> -</ul> -</li> - -<li>For managing user data backup (see <a href="#backup-manager">Backup manager</a>, above, for more information): - -<ul> - <li> New <code>android:backupAgent</code> attribute of the -<code><application></code> element. Specifies the component name of the -BackupAgent subclass provided by the application to handle backup/restore -operations, if any.</li> - <li> New <code>android:restoreAnyVersion</code> attribute of the -<code><application></code> element. Boolean value that indicates whether -the application is prepared to attempt a restore of any backed-up dataset, even -if the backup is apparently from a newer version of the application than is -currently installed on the device.</li> -</ul> -</li> - -<li>For managing the platform's JIT compiler: - -<ul> -<li>New <code>android:vmSafeMode</code> attribute of the <code><application></code> element. Boolean value that specifies whether to disable JIT compiler optimizations when running the application.</li> -</ul> -</li> -</ul> - -<h3>Permissions</h3> - -<ul> -<li><code>android.permission.BIND_DEVICE_ADMIN</code> — Any device administration broadcast receiver must require this permission, to ensure that only the system can interact with it.</li> -<li><code>android.permission.KILL_BACKGROUND_PROCESSES</code> — Allows an application to call {@link android.app.ActivityManager#killBackgroundProcesses(String)}. -<li><code>android.permission.BIND_WALLPAPER</code> — Any {@link android.service.wallpaper.WallpaperService} must require this permission, to ensure that only the system can interact with it.</li> -<li><code>android.permission.SET_TIME</code> — Allows an application to set the system time.</li> -</ul> - -<h3 id="api-diff">API differences report</h3> - -<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API -Level {@sdkPlatformApiLevel}), see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a>.</p> - - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> - <ul> - <li>Alarm Clock</li> - <li>Browser</li> - <li>Calculator</li> - <li>Camera</li> - <li>Contacts</li> - <li>Custom Locale (developer app)</li> - <li>Dev Tools (developer app)</li> - <li>Email</li> - </ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> - <ul> - - <li>Gallery</li> - <li>IMEs for Japanese, Chinese, and Latin text input</li> - <li>Messaging</li> - <li>Music</li> - <li>Phone</li> - <li>Settings</li> - <li>Spare Parts (developer app)</li> - </ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -<li>Czech (cs_CZ)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>English, US (en_US)</li> -<li>English, Britain (en_GB)</li> -<li>English, Canada (en_CA)</li> -<li>English, Australia (en_AU)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>French, France (fr_FR)</li> -<li>French, Belgium (fr_BE)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Italian, Italy (it_IT)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Polish (pl_PL)</li> -<li>Russian (ru_RU)</li> -<li>Spanish (es_ES)</li> -</td> -</tr> -</table> - -<p>Localized UI strings match the locales that are accessible -through Settings.</p> - -<p class="note"><strong>Note:</strong> Android supports more locales than are listed above. However, -the entire collection of locale strings cannot fit on a single system image, so the above list is -only what's included in the system image for the SDK. All of Android's supported locales are -available in the <a href="http://source.android.com/">Android Open Source Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can use -for modeling your application in different screen sizes and resolutions. The -emulator skins are:</p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA (240x400, low density, normal screen) - </li> - <li> - FWQVGA (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays -and functions properly on all Android-powered devices, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p> diff --git a/docs/html/sdk/android-2.3-highlights.jd b/docs/html/sdk/android-2.3-highlights.jd deleted file mode 100644 index b076b3d..0000000 --- a/docs/html/sdk/android-2.3-highlights.jd +++ /dev/null @@ -1,446 +0,0 @@ -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> diff --git a/docs/html/sdk/android-2.3.3.jd b/docs/html/sdk/android-2.3.3.jd deleted file mode 100644 index 405c063..0000000 --- a/docs/html/sdk/android-2.3.3.jd +++ /dev/null @@ -1,419 +0,0 @@ -page.title=Android 2.3.3 Platform -sdk.platform.version=2.3.3 -sdk.platform.apiLevel=10 - - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api">API Overview</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> -</ol> - -</div> -</div> - -<p> -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android 2.3.3 is a small feature release that adds several improvements -and APIs to the Android 2.3 platform.</p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes -an Android library and system image, as well as a set of emulator -skins and more. The downloadable platform -includes no external libraries.</p> - -<p>To get started developing or testing against Android -{@sdkPlatformVersion}, use the Android SDK Manager to -download the platform into your SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>. If you are new to Android, <a -href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> -first.</p> - -<p>For a high-level introduction to Android 2.3, see the <a -href="{@docRoot}sdk/android-2.3-highlights.html">Platform Highlights</a>.</p> - - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - - -<div class="toggle-content opened" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 2</a> <em>(July 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r12</a> or -higher.</p> -</dd> -<dt>Notes:</dt> -<dd> -<p>Improvements to the platform's rendering library to support the visual layout editor in the ADT -Eclipse plugin. This revision allows for more drawing features in ADT and fixes several -bugs in the previous rendering library. It also unlocks several editor features that were added in -ADT 12.</p> -</dd> -</dl> - -</div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(February 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r9 or higher.</p> -</dd> -</dl> - -</div> -</div> - - -<h2 id="api">API Overview</h2> - -<p>The sections below provide a technical overview of what's new for developers -in {@sdkPlatformVersion}, including new features and changes in the framework -API since the previous version.</p> - -<h3 id="nfc">Near Field Communications (NFC)</h3> - -<p>Android 2.3.3 provides improved and extended support for NFC, to allow -applications to interact with more types of tags in new ways.</p> - -<p>A new, comprehensive set of APIs give applications read and write access -to a wider range of standard tag technologies, including:</p> - -<ul> -<li>NFC-A (ISO 14443-3A)</li> -<li>NFC-B (ISO 14443-3B)</li> -<li>NFC-F (JIS 6319-4)</li> -<li>NFC-V (ISO 15693)</li> -<li>ISO-DEP (ISO 14443-4)</li> -<li>MIFARE Classic</li> -<li>MIFARE Ultralight</li> -<li>NFC Forum NDEF tags</li> -</ul> - -<p>The platform also provides a limited peer-to-peer communication protocol -and API. Foreground Activities can use the API to register an NDEF -message that will get pushed to other NFC devices when they connect.</p> - -<p>Advanced tag dispatching now gives applications more control over how and -when they are launched, when an NFC tag is discovered. Previously, the platform -used a single-step intent dispatch to notify interested applications that a tag -was discovered. The platform now uses a four-step process that enables the -foreground application to take control of a tag event before it is passed to any -other applications (<code>android.nfc.NfcAdapter.enableForegroundDispatch()</code>). - -The new dispatch process also lets apps listen for specific tag content and -tag technologies, based on two new intent actions — -<code>android.nfc.action.NDEF_DISCOVERED</code> and -<code>android.nfc.action.TECH_DISCOVERED</code>.</p> - -<p>The NFC API is available in the {@link android.nfc} and -{@link android.nfc.tech} packages. The key classes are: </p> - -<ul> -<li>{@link android.nfc.NfcAdapter}, which represents the NFC hardware on the device.</li> -<li>{@link android.nfc.NdefMessage}, which represents an NDEF data message, -the standard format in which "records" carrying data are transmitted between -devices and tags. An NDEF message certain many NDEF records of different types. -Applications can receive these messages from -{@link android.nfc.NfcAdapter#ACTION_NDEF_DISCOVERED NDEF_DISCOVERED}, -{@link android.nfc.NfcAdapter#ACTION_TECH_DISCOVERED TECH_DISCOVERED}, or -{@link android.nfc.NfcAdapter#ACTION_TAG_DISCOVERED TAG_DISCOVERED} Intents.</li> -<li>{@link android.nfc.NdefRecord}, delivered in an -{@link android.nfc.NdefMessage}, which describes the type of data being shared -and carries the data itself.</li> -<li>{@link android.nfc.Tag}, which represents a tag scanned by the device. -Multiple types of tags are supported, based on the underlying tag -technology.</li> -<li>{@link android.nfc.tech.TagTechnology}, an interface that gives applications -access to tag properties and I/O operations based on the technologies present -in the tag. For a full list of tag technologies supported in Android 2.3.3, see -{@link android.nfc.tech}.</li> -</ul> - -<p>NFC communication relies on wireless technology in the device hardware, and -is not present in all Android devices. Android devices that do not support -NFC will return a null object when -{@link android.nfc.NfcAdapter#getDefaultAdapter(android.content.Context) -getDefaultAdapter(Context)} is called, and -<code>context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)</code> -will return <code>false</code>. The NFC API is always present, however, regardless of -underlying hardware support.</p> - -<p>To use the NFC API, applications must request permission from the user by -declaring <code><uses-permission -android:name="android.permission.NFC"></code> in their manifest files.</p> - -<p>Additionally, developers can request filtering on Google Play, such that -their applications are not discoverable to users whose devices do not support -NFC. To request filtering, add -<code><uses-feature android:name="android.hardware.nfc" -android:required="true"></code> to the application's manifest.</p> - -<p class="note">To look at sample code for NFC, see -<a href="{@docRoot}resources/samples/NFCDemo/index.html">NFCDemo app</a>, <a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/nfc/TechFilter.html">filtering by tag technology</a></li>, <a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundDispatch.html">using foreground dispatch</a>, and <a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/nfc/ForegroundNdefPush.html">foreground NDEF push (P2P)</a>.</p> - -<h3 id="bluetooth">Bluetooth</h3> - -<p>Android 2.3.3 adds platform and API support for Bluetooth nonsecure socket -connections. This lets applications communicate with simple devices that may not -offer a UI for authentication. See -{@link android.bluetooth.BluetoothDevice#createInsecureRfcommSocketToServiceRecord(java.util.UUID)} and -{@link android.bluetooth.BluetoothAdapter#listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID)} -for more information. </p> - -<h3 id="graphics">Graphics</h3> - -<ul> -<li>A new {@link android.graphics.BitmapRegionDecoder} class lets applications -decode a rectangle region from an image. The API is particularly useful when an -original image is large and and the application only need parts of the image. -</li> -<li>A new {@link -android.graphics.BitmapFactory.Options#inPreferQualityOverSpeed} field in {@link -android.graphics.BitmapFactory.Options} allows applications to use a more accurate -but slightly slower IDCT method in JPEG decode. This in turn improves the -quality of the reconstructed image.</li> -</ul> - - -<h3 id="media">Media framework</h3> - -<ul> -<li>A new {@link android.media.MediaMetadataRetriever} class provides a unified -interface for retrieving frame and metadata from an input media file.</li> -<li>{@link android.media.MediaRecorder.AudioEncoder} and {@link -android.media.MediaRecorder.OutputFormat} include new fields for specifying AMR -Wideband and AAC formats. </li> -</ul> - - -<h3 id="speech">Speech recognition</h3> - -<p>The speech-recognition API includes new constants to let you manage voice -search results in new ways. Although the new constants are not needed for normal -use of speech recognition, you could use them to offer a different view of voice -search results in your application. For information, see {@link -android.speech.RecognizerResultsIntent}.</p> - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, -you need compile the application against the Android library that is provided in -the Android {@sdkPlatformVersion} SDK platform. Depending on your needs, you might -also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> -attribute to the <code><uses-sdk></code> element in the application's -manifest. If your application is designed to run only on Android 2.3 and higher, -declaring the attribute prevents the application from being installed on earlier -versions of the platform.</p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Browser</li> -<li>Calculator</li> -<li>Camera</li> -<li>Clock</li> -<li>Contacts</li> -<li>Cusom Locale</li> -<li>Dev Tools</li> -<li>Downloads</li> -<li>Email</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Gallery</li> -<li>IMEs for Japanese, Chinese, and Latin text input</li> -<li>Messaging</li> -<li>Music</li> -<li>Phone</li> -<li>Search</li> -<li>Settings</li> -<li>Spare Parts (developer app)</li> -<li>Speech Recorder</li> -</ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable SDK platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Arabic, Egypt (ar_EG)</li> -<li>Arabic, Israel (ar_IL)</li> -<li>Bulgarian, Bulgaria (bg_BG)</li> -<li>Catalan, Spain (ca_ES)</li> -<li>Czech, Czech Republic (cs_CZ)</li> -<li>Danish, Denmark(da_DK)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Greek, Greece (el_GR)</li> -<li>English, Australia (en_AU)</li> -<li>English, Canada (en_CA)</li> -<li>English, Britain (en_GB)</li> -<li>English, Ireland (en_IE)</li> -<li>English, India (en_IN)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>English, US (en_US)</li> -<li>English, South Africa (en_ZA)</li> -<li>Spanish (es_ES)</li> -<li>Spanish, US (es_US)</li> -<li>Finnish, Finland (fi_FI)</li> -<li>French, Belgium (fr_BE)</li> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>French, France (fr_FR)</li> -<li>Hebrew, Israel (he_IL)</li> -<li>Hindi, India (hi_IN)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>Croatian, Croatia (hr_HR)</li> -<li>Hungarian, Hungary (hu_HU)</li> -<li>Indonesian, Indonesia (id_ID)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Italian, Italy (it_IT)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Lithuanian, Lithuania (lt_LT)</li> -<li>Latvian, Latvia (lv_LV)</li> -<li>Norwegian-Bokmol, Norway(nb_NO)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Polish (pl_PL)</li> -<li>Portuguese, Brazil (pt_BR)</li> -<li>Portuguese, Portugal (pt_PT)</li> -<li>Romanian, Romania (ro_RO)</li> -<li>Russian (ru_RU)</li></li> -<li>Slovak, Slovakia (sk_SK)</li> -<li>Slovenian, Slovenia (sl_SI)</li> -<li>Serbian (sr_RS)</li> -<li>Swedish, Sweden (sv_SE)</li> -<li>Thai, Thailand (th_TH)</li> -<li>Tagalog, Philippines (tl_PH)</li> -<li>Turkish, Turkey (tr_TR)</li> -<li>Ukrainian, Ukraine (uk_UA)</li> -<li>Vietnamese, Vietnam (vi_VN)</li> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -</td> -</tr> -</table> - -<p class="note"><strong>Note:</strong> The Android platform may support more -locales than are included in the SDK system image. All of the supported locales -are available in the <a href="http://source.android.com/">Android Open Source -Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can use -for modeling your application in different screen sizes and resolutions. The -emulator skins are:</p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA400 (240x400, low density, normal screen) - </li> - <li> - WQVGA432 (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays -and functions properly on all Android-powered devices, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p> diff --git a/docs/html/sdk/android-2.3.4.jd b/docs/html/sdk/android-2.3.4.jd deleted file mode 100644 index 4bfdabd..0000000 --- a/docs/html/sdk/android-2.3.4.jd +++ /dev/null @@ -1,381 +0,0 @@ -page.title=Android 2.3.4 Platform -sdk.platform.version=2.3.4 -sdk.platform.apiLevel=10 - - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api">API Overview</a></li> - <li><a href="#openaccessory">Open Accessory Library</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> -</ol> - -</div> -</div> - -<p> -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android 2.3.4 is a maintenance release that adds several bug fixes and patches -to the Android 2.3 platform, without any API changes from Android 2.3.3. Additionally, -Android 2.3.4 brings support for the Open Accessory API to mobile devices, -through the optional <a href="#usb">Open Accessory Library</a>. </p> - -<p>For developers, the Android {@sdkPlatformVersion} platform and the Open -Accessory Library are available together in the latest version of the Google -APIs Add-On, a downloadable component for the Android SDK.</p> - -<p>To get started developing or testing against Android {@sdkPlatformVersion}, -use the Android SDK Manager to download the latest version of the Google APIs -Add-On into your SDK. For more information, see <a -href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a>. If you -are new to Android, <a href="{@docRoot}sdk/index.html">download the SDK Starter -Package</a> first.</p> - -<p>For a high-level introduction to Android 2.3, see the <a -href="{@docRoot}sdk/android-2.3-highlights.html">Platform Highlights</a>.</p> - - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { - padding: .25em 1em 0em 1em; - margin-bottom: 0; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleme a { - text-decoration:underline; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div class="toggleable opened"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(May 2011)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r11 or higher.</p> -</dd> - -</dl> - </div> -</div> - - -<h2 id="api">API Overview</h2> - -<p>Android 2.3.4 provides the same framework API to applications as Android 2.3.3 -(API level 10). For a summary of the API, see the -<a href="{@docRoot}sdk/android-2.3.3.html">Android 2.3.3 version notes</a>.</p> - - -<h2 id="openaccessory">Open Accessory Library</h2> - -<p><em>Open Accessory</em> is a new capability for integrating -connected peripherals with applications running on the platform. The capability -is based on a USB (Universal Serial Bus) stack built into the platform and an -API exposed to applications. Peripherals that attach to Android-powered devices -as accessories connect as USB hosts. </p> - -<p>Open Accessory is introduced in <a -href="{@docRoot}sdk/android-3.1.html#usb">Android 3.1</a> (API level 12), but is -made available to devices running Android 2.3.4 by means of an optional external -library, the Open Accessory Library. The library exposes a framework API that -lets applications discover, communicate with, and manage a variety of device -types connected over USB. It also provides the implementation of the API against -parts of the Android platform that are not directly exposed to applications in -Android 2.3.4.</p> - -<p>The Open Accessory Library is optional on any given device. Device -manufacturers may choose whether to include the Open Accessory Library in their -products or exclude it. The library is forward-compatible with Android 3.1, so -applications developed against Android 2.3.4 will run properly on devices -running Android 3.1, if those devices support USB accessories. </p> - -<p>The API provided by the Open Accessory Library is based on the Open Accessory -API provided in Android 3.1. In most areas, you can use the same techniques and -APIs. However, developing for the Open Accessory Library on Android 2.3.4 differs -from the standard USB API in these ways: - -<ul> -<li>Obtaining a {@link android.hardware.usb.UsbManager} object — To obtain -a {@link android.hardware.usb.UsbManager} object when using the add-on library, -use the helper method <code>getInstance()</code> rather than {@link -android.content.Context#getSystemService(java.lang.String) getSystemService()} -For example: - -<pre>UsbManager manager = UsbManager.getInstance(this);</pre></li> - -<li>Obtaining a {@link android.hardware.usb.UsbAccessory} from a filtered intent -— When you filter for a connected device or accessory with an intent -filter, the {@link android.hardware.usb.UsbAccessory} object is contained -inside the intent that is passed to your application. If you are using the -add-on library, you can get the {@link android.hardware.usb.UsbAccessory} object -in the following manner: - -<pre>UsbAccessory accessory = UsbManager.getAccessory(intent)</pre></li> - -<li>No USB host support — Android 2.3.4 and the Open Accessory Library do -not support USB host mode (for example, through {@link -android.hardware.usb.UsbDevice}), although USB host mode is supported in Android -3.1. An Android-powered device running Android 2.3.4 can not function as a USB -host. The library enables the Android-powered device to function as -a peripheral only, with the connected accessory functioning as USB host -(through {@link android.hardware.usb.UsbAccessory}).</li> -</ul> - -<p>To develop apps using the Open Accessory Library, you need:</p> - -<ul> -<li>The latest version of the Android SDK tools</li> -<li>The latest version of the Google APIs add-on, which includes the library -itself (for linking)</li> -<li>An actual hardware device running Android 2.3.4 (or Android 3.1) with USB -accessories support, for runtime testing against connected devices</li> -</ul> - -<p>For a full discussion of how to develop applications that interact with USB -accessories, please see the related <a -href="{@docRoot}guide/topics/usb/index.html">developer documentation</a>.</p> - -<p>Additionally, developers can request filtering on Google Play, such that -their applications are not available to users whose devices do not provide the -appropriate accessory support. To request filtering, add the element below -to the application manifest:</p> - -<pre><uses-feature - android:name="android.hardware.usb.accessory" - android:required="true"></pre> - - -<h2 id="api-level">API Level</h2> - -<p>The Android 2.3.4 platform does <em>not</em> increment the API level — -it uses the same API level as Android 2.3.3, API level 10. - -<p>To use APIs introduced in API level 10 in your application, -you need compile the application against the Android library that is provided in -the latest version of the Google APIs Add-On, which also includes the Open -Accessory Library.</p> - -<p>Depending on your needs, you might -also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> -attribute to the <code><uses-sdk></code> element in the application's -manifest. If your application is designed to run only on Android 2.3.3 and higher, -declaring the attribute prevents the application from being installed on earlier -versions of the platform.</p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Browser</li> -<li>Calculator</li> -<li>Camera</li> -<li>Clock</li> -<li>Contacts</li> -<li>Custom Locale</li> -<li>Dev Tools</li> -<li>Downloads</li> -<li>Email</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Gallery</li> -<li>IMEs for Japanese, Chinese, and Latin text input</li> -<li>Messaging</li> -<li>Music</li> -<li>Phone</li> -<li>Search</li> -<li>Settings</li> -<li>Spare Parts (developer app)</li> -<li>Speech Recorder</li> -</ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable SDK platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Arabic, Egypt (ar_EG)</li> -<li>Arabic, Israel (ar_IL)</li> -<li>Bulgarian, Bulgaria (bg_BG)</li> -<li>Catalan, Spain (ca_ES)</li> -<li>Czech, Czech Republic (cs_CZ)</li> -<li>Danish, Denmark(da_DK)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Greek, Greece (el_GR)</li> -<li>English, Australia (en_AU)</li> -<li>English, Canada (en_CA)</li> -<li>English, Britain (en_GB)</li> -<li>English, Ireland (en_IE)</li> -<li>English, India (en_IN)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>English, US (en_US)</li> -<li>English, South Africa (en_ZA)</li> -<li>Spanish (es_ES)</li> -<li>Spanish, US (es_US)</li> -<li>Finnish, Finland (fi_FI)</li> -<li>French, Belgium (fr_BE)</li> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>French, France (fr_FR)</li> -<li>Hebrew, Israel (he_IL)</li> -<li>Hindi, India (hi_IN)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Croatian, Croatia (hr_HR)</li> -<li>Hungarian, Hungary (hu_HU)</li> -<li>Indonesian, Indonesia (id_ID)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Italian, Italy (it_IT)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Lithuanian, Lithuania (lt_LT)</li> -<li>Latvian, Latvia (lv_LV)</li> -<li>Norwegian-Bokmol, Norway(nb_NO)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Polish (pl_PL)</li> -<li>Portuguese, Brazil (pt_BR)</li> -<li>Portuguese, Portugal (pt_PT)</li> -<li>Romanian, Romania (ro_RO)</li> -<li>Russian (ru_RU)</li></li> -<li>Slovak, Slovakia (sk_SK)</li> -<li>Slovenian, Slovenia (sl_SI)</li> -<li>Serbian (sr_RS)</li> -<li>Swedish, Sweden (sv_SE)</li> -<li>Thai, Thailand (th_TH)</li> -<li>Tagalog, Philippines (tl_PH)</li> -<li>Turkish, Turkey (tr_TR)</li> -<li>Ukrainian, Ukraine (uk_UA)</li> -<li>Vietnamese, Vietnam (vi_VN)</li> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -</ul> -</td> -</tr> -</table> - -<p class="note"><strong>Note:</strong> The Android platform may support more -locales than are included in the SDK system image. All of the supported locales -are available in the <a href="http://source.android.com/">Android Open Source -Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can use -for modeling your application in different screen sizes and resolutions. The -emulator skins are:</p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA400 (240x400, low density, normal screen) - </li> - <li> - WQVGA432 (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays -and functions properly on all Android-powered devices, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p> diff --git a/docs/html/sdk/android-2.3.jd b/docs/html/sdk/android-2.3.jd deleted file mode 100644 index b466913..0000000 --- a/docs/html/sdk/android-2.3.jd +++ /dev/null @@ -1,942 +0,0 @@ -page.title=Android 2.3 Platform -sdk.platform.version=2.3 -sdk.platform.apiLevel=9 - - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api">API Overview</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Components</a></li> -</ol> - -</div> -</div> - -<p> -<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes -an Android library and system image, as well as a set of emulator -skins and more. The downloadable platform -includes no external libraries.</p> - -<p>To get started developing or testing against Android -{@sdkPlatformVersion}, use the Android SDK Manager to -download the platform into your SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>. If you are new to Android, <a -href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> -first.</p> - -<p>For a high-level introduction to Android {@sdkPlatformVersion}, see the <a -href="{@docRoot}sdk/android-{@sdkPlatformVersion}-highlights.html">Platform Highlights</a>.</p> - - -<h2 id="relnotes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by -revision number. To determine what revision(s) of the Android -{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to -the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { - padding: .25em 1em 0em 1em; - margin-bottom: 0; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleme a { - text-decoration:underline; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div class="toggleable opened"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(December 2010)</em></a> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires SDK Tools r8 or higher.</p> -</dd> - -</dl> - </div> -</div> - -<h2 id="api">API Overview</h2> - -<p>The sections below provide a technical overview of what's new for developers -in {@sdkPlatformVersion}, including new features and changes in the framework -API since the previous version.</p> - - -<h3 id="sip">SIP-based VoIP</h3> - -<p>The platform now includes a SIP protocol stack and framework API that lets -developers build internet telephony applications. Using the API, applications can offer -voice calling features without having to manage sessions, transport-level -communication, or audio — these are handled -transparently by the platform's SIP API and services.</p> - -<p>The SIP API is available in the {@link android.net.sip android.net.sip} -package. The key class is {@link android.net.sip.SipManager}, which applications -use to set up and manage SIP profiles, then initiate audio calls and receive -audio calls. Once an audio call is established, applications can mute calls, -turn on speaker mode, send DTMF tones, and more. Applications can also use the -{@link android.net.sip.SipManager} to create generic SIP connections.</p> - -<p>The platform’s underlying SIP stack and services are available on devices at -the discretion of the manufacturer and associated carrier. For this reason, -applications should use the {@link android.net.sip.SipManager#isApiSupported -isApiSupported()} method to check whether SIP support is available, before -exposing calling functionality to users. </p> - -<p>To use the SIP API, applications must request permission from the user by -declaring <code><uses-permission -android:name="android.permission.INTERNET"></code> and <code><uses-permission -android:name="android.permission.USE_SIP"></code> in their manifest files.</p> - -<p>Additionally, developers can request filtering on Google Play, such that -their applications are not discoverable to users whose devices do not include -the platform’s SIP stack and services. To request filtering, add <code><uses-feature -android:name="android.software.sip" -android:required="true"></code> and <code><uses-feature -android:name="android.software.sip.voip"></code> to the application manifest.</p> - -<p class="note">To look at a sample application that uses the SIP API, see <a -href="{@docRoot}resources/samples/SipDemo/index.html">SIP Demo</a>.</p> - -<h3 id="nfc">Near Field Communications (NFC)</h3> - -<p>Android 2.3 includes an NFC stack and framework API that lets developers -read NDEF tags that are discovered as a user touches an NFC-enabled device -to tag elements embedded in stickers, smart posters, and even other devices.</p> - -<p>The platform provides the underlying NFC services that work with the device -hardware to discover tags when they come into range. On discovering a tag, the -platform notifies applications by broadcasting an Intent, appending the tag's -NDEF messages to the Intent as extras. Applications can create Intent filters to -recognize and handle targeted tags and messages. For example, after receiving a -tag by Intent, applications extract the NDEF messages, store them, alert the -user, or handle them in other ways. </p> - -<p>The NFC API is available in the {@link android.nfc} package. The key classes are: </p> - -<ul><li>{@link android.nfc.NfcAdapter}, which represents the NFC hardware on the device.</li> -<li>{@link android.nfc.NdefMessage}, which represents an NDEF data message, -the standard format in which "records" carrying data are transmitted between -devices and tags. Applications can receive these messages from {@link -android.nfc.NfcAdapter#ACTION_TAG_DISCOVERED}</code> Intents.</li> -<li>{@link android.nfc.NdefRecord}, delivered in an -{@link android.nfc.NdefMessage}, which describes the type of data being shared and -carries the data itself.</li> -</ul> - -<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. To determine the NFC support on the current device, -applications can call {@link android.nfc.NfcAdapter#isEnabled isEnabled()} to -query the {@link android.nfc.NfcAdapter}. The NFC API is always present, -however, regardless of underlying hardware support.</p> - -<p>To use the NFC API, applications must request permission from the user by -declaring <code><uses-permission -android:name="android.permission.NFC"></code> in their manifest files.</p> - -<p>Additionally, developers can request filtering on Google Play, such that -their applications are not discoverable to users whose devices do not support -NFC. To request filtering, add -<code><uses-feature android:name="android.hardware.nfc" -android:required="true"></code> to the application's manifest.</p> - -<p class="note">To look at a sample application that uses the NFC API, see -<a href="{@docRoot}resources/samples/NFCDemo/index.html">NFCDemo</a>.</p> - -<h3 id="sensors">Gyroscope and other sensors</h3> - -<p>Android 2.3 adds platform and API support for several new sensor reading -types — gyroscope, rotation vector, linear acceleration, gravity, and barometer. -Developers can use the new sensor readings to create applications that respond -quickly and smoothly to precise changes in device position and motion. The -Sensor API reports gyroscope and other sensor changes to interested -applications, whether they are running on the application framework or in native -code. </p> - -<p>Note that the specific set of hardware sensors available on any given device -varies at the discretion of the device manufacturer. </p> - -<p>Developers can request filtering on Google Play, such that their -applications are not discoverable to users whose devices do not offer a -gyroscope sensor. To do so, add <code><uses-feature -android:name="android.hardware.sensor.gyroscope" -android:required="true"></code> to the application manifest.</p> - -<p>For API details, see {@link android.hardware.Sensor}.</p> - - -<h3 id="cameras">Multiple cameras support</h3> - -<p>Applications can now make use of any cameras that are available on a device, -for either photo or video capture. The {@link android.hardware.Camera} lets -applications query for the number of cameras available and the unique -characteristics of each. </p> - -<ul> -<li>New {@link android.hardware.Camera.CameraInfo} class stores a camera's -positional characteristics (orientation, front-facing or back-facing).</li> -<li>New {@link android.hardware.Camera#getNumberOfCameras()} and {@link -android.hardware.Camera#getCameraInfo(int,CameraInfo) getCameraInfo()} methods in the {@link -android.hardware.Camera} class let applications query for the cameras available -and open the camera that they need.</li> -<li>New {@link android.media.CamcorderProfile#get get()} method lets -applications retrieve a {@link android.media.CamcorderProfile} for a specific camera. </li> -<li>New {@link android.media.CameraProfile#getJpegEncodingQualityParameter(int, int) -getJpegEncodingQualityParameter()} lets applications obtain the still-image -capture quality level for a specific camera.</li> -</ul> - -<p class="note">To look at sample code for accessing a front-facing camera, see <a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/graphics/CameraPreview.html">CameraPreview.java</a> -in the ApiDemos sample application.</p> - -<p>The Camera API also adds: </p> -<ul> -<li>New parameters for cameras, including focus distance, focus mode, and -preview fps maximum/minimum. New {@link -android.hardware.Camera.Parameters#getFocusDistances(float[]) -getFocusDistances()}, {@link -android.hardware.Camera.Parameters#getPreviewFpsRange(int[]) -getPreviewFpsRange()}, and {@link -android.hardware.Camera.Parameters#getSupportedPreviewFpsRange() -getSupportedPreviewFpsRange()} for getting camera parameters, as well as {@link -android.hardware.Camera.Parameters#setPreviewFpsRange(int, int) -setPreviewFpsRange()} for setting preview framerate. </li> -</ul> - -<h3 id="media">Mixable audio effects</h3> - -<p>The platform's media framework adds support for new per-track or global audio effects, -including bass boost, headphone virtualization, equalization, and reverb.</p> -<ul> -<li>New {@link android.media.audiofx android.media.audiofx} package provides the -API to access audio effects.</li> -<li>New {@link android.media.audiofx.AudioEffect AudioEffect} is the base class -for controlling audio effects provided by the Android audio framework. -<li>New audio session ID that lets an application associate a set of audio -effects with an instance of {@link android.media.AudioTrack} or {@link -android.media.MediaPlayer}.</li> -<li>New {@link android.media.AudioTrack#AudioTrack(int, int, int, int, int, int, -int) AudioTrack} class constructor that lets you create an {@link -android.media.AudioTrack} with a specific session ID. New {@link -android.media.AudioTrack#attachAuxEffect(int) attachAuxEffect()}, {@link -android.media.AudioTrack#getAudioSessionId() getAudioSessionId()}, and {@link -android.media.AudioTrack#setAuxEffectSendLevel(float) setAuxEffectSendLevel()} -methods.</li> -<li>New {@link android.media.MediaPlayer#attachAuxEffect(int) -attachAuxEffect()}, {@link android.media.MediaPlayer#getAudioSessionId() -getAudioSessionId()}, {@link android.media.MediaPlayer#setAudioSessionId(int) -setAudioSessionId(int)}, and {@link -android.media.MediaPlayer#setAuxEffectSendLevel(float) setAuxEffectSendLevel()} -methods and supporting types.</li> -</ul> - -<p class="note">To look at sample code for audio effects, see -<a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/media/AudioFxDemo.html">AudioFxDemo.java</a> -in the ApiDemos sample application.</p> - -<p>The media framework also adds:</p> -<ul> -<li>New support for altitude tag in EXIF metadata for JPEG files. New method -{@link android.media.ExifInterface#getAltitude(double) getAltitude()} method to -retrieve the value of the EXIF altitude tag.</li> -<li>New {@link android.media.MediaRecorder#setOrientationHint(int) -setOrientationHint()} method lets an application tell {@link -android.media.MediaRecorder} of the orientation during video capture.</li> -</ul> - -<h3 id="download">Download manager</h3> - -<p>The platform includes a new {@link android.app.DownloadManager} system service -that handles long-running HTTP downloads. Applications can request that a URI be -downloaded to a particular destination file. The <code>DownloadManager</code> -will conduct the download in the background, taking care of HTTP interactions -and retrying downloads after failures or across connectivity changes and system -reboots. </p> -<ul> -<li>Applications can obtain an instance of the {@link android.app.DownloadManager} -class by calling {@link -android.content.Context#getSystemService(String)} and passing -{@link android.content.Context#DOWNLOAD_SERVICE}. Applications that request -downloads through this API should register a broadcast receiver for {@link -android.app.DownloadManager#ACTION_NOTIFICATION_CLICKED}, to appropriately -handle when the user clicks on a running download in a notification or from the -Downloads UI.</li> -<li>The {@link android.app.DownloadManager.Request} class lets an -application provide all the information necessary to request a new download, -such as request URI and download destination. A request URI is the only required -parameter. Note that the default download destination is a shared volume where -the system can delete your file if it needs to reclaim space for system use. For -persistent storage of a download, specify a download destination on external -storage (see {@link -android.app.DownloadManager.Request#setDestinationUri(Uri)}).</li> -<li>The {@link android.app.DownloadManager.Query} class provides methods that let -an application query for and filter active downloads.</li> -</ul> - -<h3 id="strictmode">StrictMode</h3> - -<p>To help developers monitor and improve the performance of their applications, -the platform offers a new system facility called {@link android.os.StrictMode}. -When implemented in an application, StrictMode catches and notifies the -developer of accidental disk or network activity that could degrade application -performance, such as activity taking place on the application's main thread -(where UI operations are received and animations are also taking place). -Developers can evaluate the network and disk usages issues raised in StrictMode -and correct them if needed, keeping the main thread more responsive and -preventing ANR dialogs from being shown to users. - -<ul> -<li>{@link android.os.StrictMode} is the core class and is the main integration -point with the system and VM. The class provides convenience methods for -managing the thread and VM policies that apply to the instance.</li> -<li>{@link android.os.StrictMode.ThreadPolicy} and {@link -android.os.StrictMode.VmPolicy} hold the policies that you define and apply to -thread and VM instances.</li> -</ul> - -<p>For more information about how to use StrictMode to optimize your -application, see the class documentation and sample code at {@link -android.os.StrictMode android.os.StrictMode}.</p> - -<h3 id="ui">UI Framework</h3> - -<ul> -<li>Support for overscroll -<ul> -<li>New support for overscroll in Views and Widgets. In Views, applications can -enable/disable overscroll for a given view, set the overscoll mode, control the -overscroll distance, and handle the results of overscrolling. </li> -<li>In Widgets, applications can control overscroll characteristics such as -animation, springback, and overscroll distance. For more information, see {@link -android.view.View android.view.View} and {@link android.widget.OverScroller -android.widget.OverScroller}. </li> -<li>{@link android.view.ViewConfiguration} also provides methods {@link -android.view.ViewConfiguration#getScaledOverflingDistance()} and {@link -android.view.ViewConfiguration#getScaledOverscrollDistance()}.</li> -<li>New <code>overScrollMode</code>, <code>overScrollFooter</code>, and -<code>overScrollHeader</code> attributes for <code><ListView></code> elements, -for controlling overscroll behavior.</li> -</ul> -</li> - -<li>Support for touch filtering -<ul> -<li>New support for touch filtering, which lets an application improve the -security of Views that provide access to sensitive functionality. For example, -touch filtering is appropriate to ensure the security of user actions such as -granting a permission request, making a purchase, or clicking on an -advertisement. For details, see the <a -href="{@docRoot}reference/android/view/View.html#Security">View class -documentation</a>.</li> -<li>New <code>filterTouchesWhenObscured</code> attribute for view elements, -which declares whether to filter touches when the view's window is obscured by -another visible window. When set to <code>"true"</code>, the view will not -receive touches whenever a toast, dialog or other window appears above the -view's window. Refer to <a -href="{@docRoot}reference/android/view/View.html#Security">View security -documentation</a> for details.</li> -</ul> - -<p class="note">To look at sample code for touch filtering, see -<a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/SecureView.html">SecureView.java</a> -in the ApiDemos sample application.</p> -</li> - -<li>Improved event management -<ul> -<li>New base class for input events, {@link android.view.InputEvent}. The class -provides methods that let applications determine the meaning of the event, such -as by querying for the InputDevice from which the event orginated. The {@link -android.view.KeyEvent} and {@link android.view.MotionEvent} are subclasses of -{@link android.view.InputEvent}.</li> -<li>New base class for input devices, {@link android.view.InputDevice}. The -class stores information about the capabilities of a particular input device and -provides methods that let applications determine how to interpret events from an -input device.</li> -</ul> -</li> - -<li>Improved motion events -<ul> -<li>The {@link android.view.MotionEvent} API is extended to include "pointer ID" -information, which lets applications to keep track of individual fingers as they -move up and down. The class adds a variety of methods that let an application -work efficiently with motion events.</li> -<li>The input system now has logic to generate motion events with the new -pointer ID information, synthesizing identifiers as new pointers are down. The -system tracks multiple pointer IDs separately during a motion event, and -ensures proper continuity of pointers by evaluating at the distance -between the last and next set of pointers.</li> -</ul> -</li> - -<li>Text selection controls -<ul> -<li>A new <code>setComposingRegion</code> method lets an application mark a -region of text as composing text, maintaining the current styling. A -<code>getSelectedText</code> method returns the selected text to the -application. The methods are available in {@link -android.view.inputmethod.BaseInputConnection}, {@link -android.view.inputmethod.InputConnection}, and {@link -android.view.inputmethod.InputConnectionWrapper}.</li> -<li>New <code>textSelectHandle</code>, <code>textSelectHandleLeft</code>, -<code>textSelectHandleRight</code>, and <code>textSelectHandleWindowStyle</code> -attributes for <code><TextView></code>, for referencing drawables that will be -used to display text-selection anchors and the style for the containing -window.</li> -</ul> -</li> - -<li>Activity controls -<ul> -<li>{@link android.content.pm.ActivityInfo} adds new constants for managing -Activity orientation: -{@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_FULL_SENSOR}, -{@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_REVERSE_LANDSCAPE}, -{@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_REVERSE_PORTRAIT}, -{@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_SENSOR_LANDSCAPE}, -and -{@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_SENSOR_PORTRAIT}. -</li> -<li>New constant {@link -android.app.ActivityManager.RunningAppProcessInfo#IMPORTANCE_PERCEPTIBLE} for -the {@link android.app.ActivityManager.RunningAppProcessInfo#importance} field -in {@link android.app.ActivityManager.RunningAppProcessInfo}. The value -indicates that a specific process is running something that is considered to be -actively perceptible to the user. An example would be an application performing -background music playback.</li> -<li>The Activity.setPersistent(boolean) method to mark an -Activity as persistent is now deprecated and the implementation is a no-op.</li> -</ul> -</li> - -<li>Notification text and icon styles -<ul> -<li>New {@link android.R.style#TextAppearance_StatusBar_EventContent -TextAppearance.StatusBar.EventContent}, -{@link android.R.style#TextAppearance_StatusBar_EventContent_Title -TextAppearance.StatusBar.EventContent.Title}, -{@link android.R.style#TextAppearance_StatusBar_Icon -TextAppearance.StatusBar.Icon}, and -{@link android.R.style#TextAppearance_StatusBar_Title -TextAppearance.StatusBar.Title} for managing -notification style.</li> -</ul> -</li> - -<li>WebView -<ul> -<li>New {@link -android.webkit.WebSettings#setUseWebViewBackgroundForOverscrollBackground( -boolean) setUseWebViewBackgroundForOverscrollBackground()} method lets a {@link -android.webkit.WebView} specify whether to use its own background for the -overscroll background. </li> -</ul> -</li> -</ul> - -<h3 id="extralargescreens">Extra Large Screens</h3> - -<p>The platform now supports extra large screen sizes, such as those that might -be found on tablet devices. Developers can indicate that their applications are -designed to support extra large screen sizes by adding a <code><supports -screens ... android:xlargeScreens="true"></code> element to their manifest -files. Applications can use a new resource qualifier, <code>xlarge</code>, to -tag resources that are specific to extra large screens. For -details on how to support extra large and other screen sizes, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p> - -<h3 id="graphics">Graphics</h3> - -<ul> -<li>Adds remaining OpenGL ES 2.0 methods {@link -android.opengl.GLES20#glDrawElements(int, int, int, int) glDrawElements()} and -{@link android.opengl.GLES20#glVertexAttribPointer(int, int, int, boolean, int, -int) glVertexAttribPointer()} in the {@link android.opengl.GLES20 -android.opengl.GLES20} class.</li> -<li>Adds support for {@link android.graphics.ImageFormat#YV12} pixel format, a -planar 4:2:0 YCrCb format.</li> -</ul> - -<h3 id="providers">Content Providers</h3> - -<ul> -<li>New {@link android.provider.AlarmClock} provider class for setting an alarm -or handling an alarm. The provider contains a <code>ACTION_SET_ALARM</code> Intent -action and extras that can be used to start an Activity to set a new alarm in an -alarm clock application. Applications that wish to receive the -<code>SET_ALARM</code> Intent should create an activity that requires the -the SET_ALARM permission. Applications that wish to create a new -alarm should use {@link -android.content.Context#startActivity(android.content.Intent) -Context.startActivity()}, so that the user has the option of choosing -which alarm clock application to use.</li> - -<li>{@link android.provider.MediaStore} supports a new Intent action, {@link -android.provider.MediaStore#INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH -PLAY_FROM_SEARCH}, that lets an application search for music media and -automatically play content from the result when possible. For example, an -application could fire this Intent as the result of a voice recognition command -to listen to music.</li> -<li>{@link android.provider.MediaStore} also adds a new {@link -android.provider.MediaStore#MEDIA_IGNORE_FILENAME} flag that tells the media -scanner to ignore media in the containing directory and its subdirectories. -Developers can use this to avoid having graphics appear in the Gallery and -likewise prevent application sounds and music from showing up in the Music -app.</li> - -<li>The {@link android.provider.Settings} provider adds the new Activity actions -{@link android.provider.Settings#ACTION_APPLICATION_DETAILS_SETTINGS -APPLICATION_DETAILS_SETTINGS} and {@link -android.provider.Settings#ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS -MANAGE_ALL_APPLICATIONS_SETTINGS}, which let an application show the details -screen for a specific application or show the Manage Applications screen. </li> - -<li>The {@link android.provider.ContactsContract} provider adds the {@link -android.provider.ContactsContract.CommonDataKinds.SipAddress} data kind, for -storing a contact's SIP (Internet telephony) address. </li> -</ul> - -<h3 id="location">Location</h3> - -<ul> -<li>The {@link android.location.LocationManager} now tracks application -requests that result in wake locks or wifi locks according to -{@link android.os.WorkSource}, a system-managed class that identifies the -application. -<p>The <code>LocationManager</code> keeps track -of all clients requesting periodic updates, and tells its providers -about them as a <code>WorkSource</code> parameter, when setting their minimum -update times. -The network location provider uses <code>WorkSource</code> to track the -wake and wifi locks initiated by an application and adds it to the application's -battery usage reported in Manage Applications. </p></li> -<li>The {@link android.location.LocationManager} adds several new methods that -let an Activity register to receive periodic or one-time location updates based -on specified criteria (see below).</li> -<li>A new {@link android.location.Criteria} class lets an application specify a -set of criteria for selecting a location provider. For example, providers may be -ordered according to accuracy, power usage, ability to report altitude, speed, -and bearing, and monetary cost. </li> -</ul> - -<h3 id="storage">Storage</h3> - -<ul> -<li>Android 2.3 adds a new {@link android.os.storage.StorageManager} that -supports OBB (Opaque Binary Blob) files. Although platform support for OBB is -available in Android 2.3, development tools for creating and managing OBB files -will not be availble until early 2011.</li> -<li>The Android 2.3 platform adds official support for devices that do not -include SD cards (although it provides virtual SD Card partition, when no -physical SD card is available). A convenience method, {@link -android.os.Environment#isExternalStorageRemovable()}, lets applications -determine whether a physical SD card is present.</li> -</ul> - -<h3 id="packagemanager">Package Manager</h3> - -<ul> -<li>New constants for declaring hardware and software features. See the list in -the <a href="#feature_constants">New Feature Constants</a> section, below.</li> -<li>{@link android.content.pm.PackageInfo} adds new {@link -android.content.pm.PackageInfo#firstInstallTime} and {@link -android.content.pm.PackageInfo#lastUpdateTime} fields that store the time of the -package installation and last update. </li> -<li>New {@link -android.content.pm.PackageManager#getProviderInfo(android.content.ComponentName, -int) getProviderInfo()} method for retrieving all of the information known about -a particular content provider class.</li> -</ul> - -<h3 id="telephony">Telephony</h3> - -<ul> -<li>The {@link android.telephony.TelephonyManager} adds the constant {@link -android.telephony.TelephonyManager#NETWORK_TYPE_EVDO_B} for specifying the CDMA -EVDO Rev B network type.</li> -<li>New {@link android.telephony.gsm.GsmCellLocation#getPsc()} method returns -the primary scrambling code of the serving cell on a UMTS network.</li> -</ul> - -<h3 id="native">Native access to Activity lifecycle, windows</h3> - -<p>Android 2.3 exposes a broad set of APIs to applications that use native -code. Framework classes of interest to such applications include: </p> - -<ul> -<li>{@link android.app.NativeActivity} is a new type of Activity class, whose -lifecycle callbacks are implemented directly in native code. A -<code>NativeActivity</code> and its underlying native code run in the system -just as do other Activities — specifically they run in the Android -application's system process and execute on the application's main UI thread, -and they receive the same lifecycle callbacks as do other Activities. </li> -<li>New {@link android.view.InputQueue} class and callback interface lets native -code manage event queueing. </li> -<li>New {@link android.view.SurfaceHolder.Callback2} interface lets native code -manage a {@link android.view.SurfaceHolder}. </li> -<li>New {@link -android.view.Window#takeInputQueue(android.view.InputQueue.Callback) -takeInputQueue} and {@link -android.view.Window#takeSurface(android.view.SurfaceHolder.Callback2) -takeSurface()} methods in {@link android.view.Window} let native code manage -events and surfaces.</li> -</ul> - -<p>For full information on working with native code or to download the NDK, -see the <a href="{@docRoot}sdk/ndk/index.html">Android NDK</a> page.</p> - - -<h3 id="dalvik">Dalvik Runtime</h3> - -<ul> -<li>{@link dalvik.system dalvik.system} -removes several classes that were previously deprecated.</li> -<li>Dalvik core libraries: -<ul> - <li>New collections: {@link java.util.ArrayDeque}, {@link java.util.NavigableMap}, - {@link java.util.concurrent.ConcurrentSkipListMap}, - {@link java.util.concurrent.LinkedBlockingDeque}</li> - <li>New {@link java.util.Arrays} utilities: <code>binarySearch()</code>, - <code>copyOf()</code>, <code>copyOfRange()</code>, and others.</li> - <li>{@link java.net.CookieManager} for {@link java.net.HttpURLConnection}.</li> - <li>More complete network APIs: {@link java.net.InterfaceAddress}, - {@link java.net.NetworkInterface} and {@link java.net.IDN}</li> - <li>{@link java.io.File} read and write controls</li> - <li>{@link java.lang.String#isEmpty() String.isEmpty()}</li> - <li>{@link java.text.Normalizer} and {@link java.text.Normalizer.Form}</li> - <li>Improved {@link javax.net.ssl} server sockets.</li> -</ul> -</li> -</ul> - -<h3 id="manifest">New manifest elements and attributes</h3> - -<ul> -<li>New <code>xlargeScreens</code> attribute for <a -href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code -<supports-screens>}</a> -element, to indicate whether the application supports -extra large screen form-factors. For details, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</li> -<li>New values for <code>android:screenOrientation</code> attribute of -<code><activity></code> element: -<ul> -<li><code>"reverseLandscape"</code> — The Activity would like to have the -screen in landscape orientation, turned in the opposite direction from normal -landscape.</li> -<li><code>"reversePortrait"</code> — The Activity would like to have the -screen in portrait orientation, turned in the opposite direction from normal -portrait.</li> -<li><code>"sensorLandscape"</code> — The Activity would like to have the -screen in landscape orientation, but can use the sensor to change which -direction the screen is facing.</li> -<li><code>"sensorPortrait"</code> — The Activity would like to have the -screen in portrait orientation, but can use the sensor to change which direction -the screen is facing.</li> -<li><code>"fullSensor"</code> — Orientation is determined by a physical -orientation sensor: the display will rotate based on how the user moves the -device. This allows any of the 4 possible rotations, regardless of what the -device will normally do (for example some devices won't normally use 180 degree -rotation).</li> -</ul> -</li> -</ul> - -<h3 id="permissions">New Permissions</h3> - -<ul> -<li><code>com.android.permission.SET_ALARM</code> — Allows an application -to broadcast an Intent to set an alarm for the user. An Activity that handles -the {@link android.provider.AlarmClock#ACTION_SET_ALARM SET_ALARM} Intent action -should require this permission.</li> -<li><code>android.permission.USE_SIP</code> — Allows an application to use -the {@link android.net.sip SIP API} to make or receive internet calls. -<li><code>android.permission.NFC</code> — Allows an application to use the -{@link android.nfc NFC API} to read NFC tags.</li> -</ul> - -<h3 id="feature_constants">New Feature Constants</h3> - -<p>The platform adds several new hardware features that developers can declare -in their application manifests as being required by their applications. This -lets developers control how their application is filtered, when published on -Google Play. </p> - -<ul> -<li>{@link android.content.pm.PackageManager#FEATURE_AUDIO_LOW_LATENCY -android.hardware.audio.low_latency} — The application uses a low-latency -audio pipeline on the device and is sensitive to delays or lag in sound input or -output.</li> -<li>{@link android.content.pm.PackageManager#FEATURE_CAMERA_FRONT -android.hardware.camera.front} — The application uses a front-facing -camera on the device.</li> -<li>{@link android.content.pm.PackageManager#FEATURE_NFC android.hardware.nfc} -— The application uses NFC radio features in the device.</li> -<li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_BAROMETER -android.hardware.sensor.barometer} — The application uses the device's -barometer.</li> -<li>{@link android.content.pm.PackageManager#FEATURE_SENSOR_GYROSCOPE -android.hardware.sensor.gyroscope} — The application uses the device's -gyroscope sensor.</li> -<li>{@link android.content.pm.PackageManager#FEATURE_SIP android.software.sip} -— The application uses the SIP API on the device.</li> -<li>{@link android.content.pm.PackageManager#FEATURE_SIP_VOIP -android.software.sip.voip} — The application uses a SIP-based VoIP -service on the device.</li> -<li>{@link -android.content.pm.PackageManager#FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND -android.hardware.touchscreen.multitouch.jazzhand} — The application uses -advanced multipoint multitouch capabilities on the device screen, for tracking -five or more points fully independently.</li> -</ul> - -<p>For full information about how to declare features and use them for -filtering, see the documentation for <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code></a>.</p> - -<h3 id="api-diff">API differences report</h3> - -<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API -Level {@sdkPlatformApiLevel}), see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a>.</p> - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, -you need compile the application against the Android library that is provided in -the Android {@sdkPlatformVersion} SDK platform. Depending on your needs, you might -also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> -attribute to the <code><uses-sdk></code> element in the application's -manifest. If your application is designed to run only on Android 2.3 and higher, -declaring the attribute prevents the application from being installed on earlier -versions of the platform.</p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Browser</li> -<li>Calculator</li> -<li>Camera</li> -<li>Clock</li> -<li>Contacts</li> -<li>Cusom Locale</li> -<li>Dev Tools</li> -<li>Downloads</li> -<li>Email</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Gallery</li> -<li>IMEs for Japanese, Chinese, and Latin text input</li> -<li>Messaging</li> -<li>Music</li> -<li>Phone</li> -<li>Search</li> -<li>Settings</li> -<li>Spare Parts (developer app)</li> -<li>Speech Recorder</li> -</ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable SDK platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android {@sdkPlatformVersion} system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Arabic, Egypt (ar_EG)</li> -<li>Arabic, Israel (ar_IL)</li> -<li>Bulgarian, Bulgaria (bg_BG)</li> -<li>Catalan, Spain (ca_ES)</li> -<li>Czech, Czech Republic (cs_CZ)</li> -<li>Danish, Denmark(da_DK)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Greek, Greece (el_GR)</li> -<li>English, Australia (en_AU)</li> -<li>English, Canada (en_CA)</li> -<li>English, Britain (en_GB)</li> -<li>English, Ireland (en_IE)</li> -<li>English, India (en_IN)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>English, US (en_US)</li> -<li>English, South Africa (en_ZA)</li> -<li>Spanish (es_ES)</li> -<li>Spanish, US (es_US)</li> -<li>Finnish, Finland (fi_FI)</li> -<li>French, Belgium (fr_BE)</li> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>French, France (fr_FR)</li> -<li>Hebrew, Israel (he_IL)</li> -<li>Hindi, India (hi_IN)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>Croatian, Croatia (hr_HR)</li> -<li>Hungarian, Hungary (hu_HU)</li> -<li>Indonesian, Indonesia (id_ID)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Italian, Italy (it_IT)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Lithuanian, Lithuania (lt_LT)</li> -<li>Latvian, Latvia (lv_LV)</li> -<li>Norwegian-Bokmol, Norway(nb_NO)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Polish (pl_PL)</li> -<li>Portuguese, Brazil (pt_BR)</li> -<li>Portuguese, Portugal (pt_PT)</li> -<li>Romanian, Romania (ro_RO)</li> -<li>Russian (ru_RU)</li></li> -<li>Slovak, Slovakia (sk_SK)</li> -<li>Slovenian, Slovenia (sl_SI)</li> -<li>Serbian (sr_RS)</li> -<li>Swedish, Sweden (sv_SE)</li> -<li>Thai, Thailand (th_TH)</li> -<li>Tagalog, Philippines (tl_PH)</li> -<li>Turkish, Turkey (tr_TR)</li> -<li>Ukrainian, Ukraine (uk_UA)</li> -<li>Vietnamese, Vietnam (vi_VN)</li> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -</td> -</tr> -</table> - -<p class="note"><strong>Note:</strong> The Android platform may support more -locales than are included in the SDK system image. All of the supported locales -are available in the <a href="http://source.android.com/">Android Open Source -Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes a set of emulator skins that you can use -for modeling your application in different screen sizes and resolutions. The -emulator skins are:</p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA400 (240x400, low density, normal screen) - </li> - <li> - WQVGA432 (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays -and functions properly on all Android-powered devices, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p> diff --git a/docs/html/sdk/android-3.0-highlights.jd b/docs/html/sdk/android-3.0-highlights.jd deleted file mode 100644 index 33897de..0000000 --- a/docs/html/sdk/android-3.0-highlights.jd +++ /dev/null @@ -1,263 +0,0 @@ -page.title=Android 3.0 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> - - -<p>Welcome to Android 3.0!</p> - -<p>The Android 3.0 platform introduces many new and exciting features for users and developers. -This document provides a glimpse of some of the new features and technologies, as delivered in -Android 3.0. For a more detailed look at new developer APIs, see the <a -href="{@docRoot}sdk/android-3.0.html">Android 3.0 Platform</a> document.</p> - -<ul> - <li><a href="#UserFeatures">New User Features</a></li> - <li><a href="#DeveloperApis">New Developer Features</a></li> -</ul> - -<h2 id="UserFeatures" style="clear:right">New User Features</h2> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;margin-left:1em;float:right;padding-top:2em;"><a href="images/3.0/home_hero1_full.png" target="_android"><img src="images/3.0/home_hero1.png" alt="" height="280" /></a></div> - -<h3>New UI designed from the ground up for tablets</h3> - -<p>Android 3.0 is a new version of the Android platform that is specifically optimized for devices with larger screen sizes, particularly tablets. It introduces a brand new, truly virtual and “holographic” UI design, as well as an elegant, content-focused interaction model.</p> - -<p>Android 3.0 builds on the things people love most about Android — refined multitasking, rich notifications, Home screen customization, widgets, and more — and transforms them with a vibrant, 3D experience and deeper interactivity, making them familiar but even better than before.</p> - -<p>The new UI brings fresh paradigms for interaction, navigation, and customization and makes them available to all applications — even those built for earlier versions of the platform. Applications written for Android 3.0 are able to use an extended set of UI objects, powerful graphics, and media capabilities to engage users in new ways.</p> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>System Bar, for global status and notifications</strong></p> - -<p>Across the system and in all applications, users have quick access to notifications, system status, and soft navigation buttons in a System Bar, available at the bottom of the screen. The System Bar is always present and is a key touchpoint for users, but in a new "lights out mode" can also be dimmed for full-screen viewing, such as for videos.</p> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Action Bar, for application control</strong></p> - -<p>In every application, users have access to contextual options, navigation, widgets, or other types of content in an Action Bar, displayed at the top of the screen. The Action Bar is always present when an application is in use, although its content, theme, and other properties are managed by the application rather than the system. The Action Bar is another key touchpoint for users, especially with action items and an overflow dropdown menu, which users frequently access in a similar manner in most applications. </p> - -</div> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;"><a href="images/3.0/homescreen_cust_port_full.png" target="_android"><img src="images/3.0/homescreen_cust_port.png" alt="" height="280" /></a></div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Customizable Home screens</strong></p> - -<p>Five customizable Home screens give users instant access to all parts of the system from any context. Each screen offers a large grid that maintains spatial arrangement in all orientations. Users can select and manipulate Home screen widgets, app shortcuts, and wallpapers using a dedicated visual layout mode. Visual cues and drop shadows improve visibility when adjusting the layout of shortcuts and widgets. Each Home screen also offers a familiar launcher for access to all installed applications, as well as a Search box for universal search of apps, contacts, media files, web content, and more.</p> - -</div> - -<div style="padding-top:0em;"> -<div style="margin-right:1.5em;float:left;"><a href="images/3.0/tasks_full.png" target="_android"><img src="images/3.0/tasks.png" alt="" height="280" /></a> - -<!--<p style="font-size:90%">Figure</p> --></div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Recent Apps, for easy visual multitasking</strong></p> - -<p>Multitasking is a key strength of Android and it is central to the Android 3.0 experience. As users launch applications to handle various tasks, they can use the Recent Apps list in the System Bar to see the tasks underway and quickly jump from one application context to another. To help users rapidly identify the task associated with each app, the list shows a snapshot of its actual state when the user last viewed it.</p> - -</div> - - -<h3>Redesigned keyboard</h3> - -<p>The Android soft keyboard is redesigned to make entering text fast and accurate on larger screen sizes. The keys are reshaped and repositioned for improved targeting, and new keys have been added, such as a Tab key, to provide richer and more efficient text input. Users can touch-hold keys to access menus of special characters and switch text/voice input modes from a button in the System Bar.</p> - -<div style="padding-top:1em;"> -<div style="margin-right:1em;float:right;"><a href="images/3.0/copy_full.png" target="_android"><img src="images/3.0/copy.png" alt="" height="180" /></a></div> - - -<h3>Improved text selection, copy and paste</h3> - -<p>When entering or viewing text, a new UI lets users quickly select a word by press-hold and then adjust the selection area as needed by dragging a set of bounding arrows to new positions. Users can then select an action from the Action Bar, such as copy to the clipboard, share, paste, web search, or find. </p> - - -<h3>New connectivity options</h3> - -<p>Android 3.0 includes new connectivity features that add versatility and convenience for users. Built-in support for Media/Picture Transfer Protocol lets users instantly sync media files with a USB-connected camera or desktop computer, without needing to mount a USB mass-storage device. Users can also connect full keyboards over either USB or Bluetooth, for a familiar text-input environment. For improved wi-fi connectivity, a new combo scan reduces scan times across bands and filters. New support for Bluetooth tethering means that more types of devices can share the network connection of an Android-powered device.</p> - - -<h3>Updated set of standard apps</h3> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;;padding-top:0em;margin-left:1em;"><a href="images/3.0/browser_full.png" target="_android"><img src="images/3.0/browser.png" alt="" height="200" /></a><br> -<a href="images/3.0/camera_full.png" target="_android"><img src="images/3.0/camera.png" alt="" height="200" /></a></div> - -<p>The Android 3.0 platform includes an updated set of standard applications that are designed for use on larger screen devices. The sections below highlight some of the new features. </p> - -<strong>Browser</strong></p> - -<p>The browser includes new features that let users navigate and organize more efficiently. Multiple tabs replace browser windows and a new “incognito” mode allows anonymous browsing. Bookmarks and history are presented and managed in a single unified view. Users can now choose to automatically sign into Google sites on the browser with a supplied account and sync bookmarks with Google Chrome. New multitouch support is now available to JavaScript and plugins. Users can enjoy a better browsing experience at non-mobile sites through an improved zoom and viewport model, overflow scrolling, support for fixed positioning, and more.</p> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Camera and Gallery</strong></p> - -<p>The Camera application has been redesigned to take advantage of a larger screen for quick access to exposure, focus, flash, zoom, front-facing camera, and more. To let users capture scenes in new ways, it adds built-in support for time-lapse video recording. The Gallery application lets users view albums and other collections in full-screen mode, with easy access to thumbnails for other photos in the collection. </p> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Contacts</strong></p> - -<p>The Contacts app uses a new two-pane UI and Fast Scroll to let users easily organize and locate contacts. The application offers improved formatting of international phone numbers as user types, based on home country and an international number parsing library. Contact information is presented in a card-like UI, making it easier for users to read and edit contacts.</p> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Email</strong></p> - -<p>The Email application uses a new two-pane UI to make viewing and organizing messages more efficient. The app lets users select one or more messages, then select an action from the Action Bar, such as moving them to a folder. Users can sync attachments for later viewing and keep track of email using a home screen Widget.</p> - -</div> - - -<h2 id="DeveloperApis" style="clear:both">New Developer Features</h2> - -<p>The Android 3.0 platform is designed specially to meet the unique needs of applications on devices with larger screen sizes. It offers all of the tools developers need to create incredible visual and interaction experiences on these devices.</p> - - <ul> -<li><a href="#ui">New UI framework for creating great tablet apps</a></li> -<li><a href="#graphics">High-performance 2D and 3D graphics</a></li> -<li><a href="#multicore">Support for multicore processor architectures</a></li> -<li><a href="#multimedia">Rich multimedia and connectivity</a></li> -<li><a href="#enterprise">Enhancements for enterprise</a></li> -<li><a href="#compatibility">Compatibility with existing apps</a></li> -</ul> - -<h3 id="ui">New UI Framework for creating great tablet apps</h3> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;"><a href="images/3.0/contacts_full.png" target="_android"><img src="images/3.0/contacts.png" alt="" height="200" /></a></div> - - -<p style="margin-top:.75em;margin-bottom:.75em;"><strong>Activity fragments, for greater control of content and design flexibility</strong></p> - -<p>Starting with Android 3.0, developers can break the Activities of their applications into subcomponents called Fragments, then combine them in a variety of ways to create a richer, more interactive experience. For example, an application can use a set of Fragments to create a true multipane UI, with the user being able to interact with each pane independently. Fragments can be added, removed, replaced, and animated inside an Activity dynamically, and they are modular and reusable across multiple Activities. Because they are modular, Fragments also offer an efficient way for developers to write applications that can run properly on both larger screen as well as smaller screen devices.</p> - -</div> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Redesigned UI widgets</strong></p> - -<p>Android 3.0 offers an updated set of UI widgets that developers can use to quickly add new types of content to their applications. The new UI widgets are redesigned for use on larger screens such as tablets and incorporate the new holographic UI theme. Several new widget types are available, including a 3D stack, search box, a date/time picker, number picker, calendar, popup menu, and others. Most of the redesigned UI widgets can now be used as remote views in application widgets displayed on the home screen. Applications written for earlier versions can inherit the new Widget designs and themes.</p> - - -<div style="padding-top:0em;"> -<div style="margin-right:1.5em;float:left;margin-left:0em;"><a href="images/3.0/widgets.png" target="_android"><img src="images/3.0/widgets.png" alt="" height="200" target="_android" /></a></div> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Expanded Home screen widgets</strong></p> - -<p>Home screen widgets are popular with users because they offer fast access to application-specific data directly from the home screen. Android 3.0 lets developers take home screen widgets to the next level, offering more types of content and new modes of interaction with users. Developers can now use more standard UI widget types home screen widgets, including widgets that let users flip through collections of content as 3D stacks, grids, or lists. Users can interact with the home screen widgets in new ways, such as by using touch gestures to scroll and flip the content displayed in a widget. </p> - -</div> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Persistent Action Bar</strong></p> - -<p>The platform provides each application with its own instance of the Action Bar at the top of the screen, which the application can use to give the user quick access to contextual options, widgets, status, navigation, and more. The application can also customize the display theme of its Action Bar instance. The Action Bar lets developers expose more features of their applications to users in a familiar location, while also unifying the experience of using an application that spans multiple Activities or states.</p> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Richer notifications</strong></p> - -<p>Notifications are a key part of the Android user experience because they let applications show key updates and status information to users in real time. Android 3.0 extends this capability, letting developers include richer content and control more properties. A new builder class lets developers quickly create notifications that include large and small icons, a title, a priority flag, and any properties already available in previous versions. Notifications can offer more types of content by building on the expanded set of UI Widgets that are now available as remote Views.</p> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;"><a href="images/3.0/mail_drag_full.png" target="_android"><img src="images/3.0/mail_drag.png" alt="" height="200" style="padding-top:1em;"/></a></div> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Multiselect, clipboard, and drag-and-drop</strong></p> - -<p>The platform offers convenient new interaction modes that developers can use. For managing collections of items in lists or grids, developers can offer a new multiselect mode that lets users choose multiple items for an action. Developers can also use a new system-wide Clipboard to let users easily copy any type of data into and out of their applications. To make it easier for users to manage and organize files, developers can now add drag-and-drop interaction through a DragEvent framework.</p> - -</div> - - -<h3 id="graphics">High-performance 2D and 3D graphics</h3> - -<p style="margin-top:.75em;margin-bottom:.75em;"><strong>New animation framework</strong></p> - -<p>The platform includes a flexible new animation framework that lets developers easily animate the properties of UI elements such as Views, Widgets, Fragments, Drawables, or any arbitrary object. Animations can create fades or movement between states, loop an animated image or an existing animation, change colors, and much more. Adding animation to UI elements can add visual interest to an application and refine the user experience, to keep users engaged.</p> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Hardware-accelerated 2D graphics</strong></p> - -<p>Android 3.0 offers a new hardware-accelerated OpenGL renderer that gives a performance boost to many common graphics operations for applications running in the Android framework. When the renderer is enabled, most operations in Canvas, Paint, Xfermode, ColorFilter, Shader, and Camera are accelerated. Developers can control how hardware-acceleration is applied at every level, from enabling it globally in an application to enabling it in specific Activities and Views inside the application.</p> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Renderscript 3D graphics engine</strong></p> - -<p>Renderscript is a runtime 3D framework that provides both an API for building 3D scenes as well as a special, platform-independent shader language for maximum performance. Using Renderscript, you can accelerate graphics operations and data processing. Renderscript is an ideal way to create high-performance 3D effects for applications, wallpapers, carousels, and more.</p> - - -<h3 id="multicore">Support for multicore processor architectures</h3> - -<p>Android 3.0 is the first version of the platform designed to run on either single or multicore processor architectures. A variety of changes in the Dalvik VM, Bionic library, and elsewhere add support for symmetric multiprocessing in multicore environments. These optimizations can benefit all applications, even those that are single-threaded. For example, with two active cores, a single-threaded application might still see a performance boost if the Dalvik garbage collector runs on the second core. The system will arrange for this automatically.</p> - - -<h3 id="multimedia">Rich multimedia and connectivity</h3> - -<p style="margin-top:.75em;margin-bottom:.75em;"><strong>HTTP Live streaming</strong></p> - -<p>Applications can now pass an M3U playlist URL to the media framework to begin an HTTP Live streaming session. The media framework supports most of the HTTP Live streaming specification, including adaptive bit rate.</p> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Pluggable DRM framework</strong></p> - -<p>Android 3.0 includes an extensible DRM framework that lets applications manage protected content according to a variety of DRM mechanisms that may be available on the device. For application developers, the framework API offers an consistent, unified API that simplifies the management of protected content, regardless of the underlying DRM engines. </p> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>Digital media file transfer</strong></p> - -<p>The platform includes built-in support for Media/Picture Transfer Protocol (MTP/PTP) over USB, which lets users easily transfer any type of media files between devices and to a host computer. Developers can build on this support, creating applications that let users create or manage media files that they may want to transfer or share across devices. </p> - -<p style="margin-top:1.25em;margin-bottom:.75em;"><strong>More types of connectivity</strong></p> - -<p>The platform offers new connectivity that developers can build on. API support for Bluetooth A2DP and HSP profiles lets applications query Bluetooth profiles for connected devices, audio state, and more, then notify the user. For example, a music application can check connectivity and status and let the user know that music is playing through a stereo headset. Applications can also register to receive system broadcasts of pre-defined vendor-specific AT commands, such as Platronics Xevent. For example, an application could receive broadcasts that indicate a connected device's battery level and could notify the user or take other action as needed. Applications can also take advantage of the platform's new support for full keyboards connected by USB or Bluetooth. </p> - - -<h3 id="enterprise">Enhancements for enterprise</h3> - -<p>In Android 3.0, developers of device administration applications can support new types of policies, including policies for encrypted storage, password expiration, password history, and password complex characters required. </p> - -<h3 id="compatibility">Compatibility with existing apps</h3> - -<p>Android 3.0 brings a new UI designed for tablets and other larger screen devices, but it also is fully compatible with applications developed for earlier versions of the platform, or for smaller screen sizes. Existing applications can seamlessly participate in the new holographic UI theme without code changes, by adding a single attribute in their manifest files. The platform emulates the Menu key, which is replaced by the overflow menu in the Action Bar in the new UI. Developers wanting to take fuller advantage of larger screen sizes can also create dedicated layouts and assets for larger screens and add them to their existing applications.</p> - - -<h2>More information</h2> - -<div class="video"> -<object width="278" height="180"> -<param name="movie" value="http://www.youtube.com/v/hPUGNCIozp0?hl=en&fs=1"></param> -<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" -value="always"></param> -<embed src="http://www.youtube.com/v/hPUGNCIozp0?hl=en&fs=1" type="application/x-shockwave-flash" -allowscriptaccess="always" allowfullscreen="true" width="278" height="180"></embed> -</object> -</div> - -<p>For more information about the new developer APIs, see the <a -href="{@docRoot}sdk/android-3.0.html">Android 3.0 Platform</a> document.</p> - -<p>For a video overview of platform features, see the Android 3.0 Sneak Peek. </p> diff --git a/docs/html/sdk/android-3.0.jd b/docs/html/sdk/android-3.0.jd deleted file mode 100644 index 3acb358..0000000 --- a/docs/html/sdk/android-3.0.jd +++ /dev/null @@ -1,1186 +0,0 @@ -page.title=Android 3.0 Platform -sdk.platform.version=3.0 -sdk.platform.apiLevel=11 -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api">API Overview</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/11/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}guide/practices/tablets-and-handsets.html">Supporting Tablets and -Handsets</a></li> -</ol> - -</div> -</div> - - -<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a downloadable -component for the Android SDK. The downloadable platform includes an Android library and system -image, as well as a set of emulator skins and more. The downloadable platform includes no external -libraries.</p> - -<p>To get started developing or testing against Android {@sdkPlatformVersion}, use the Android SDK -Manager to download the platform into your SDK. For more information, see <a -href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a>. If you are new to Android, <a -href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> first.</p> - -<p>For a high-level introduction to Android {@sdkPlatformVersion}, see the <a -href="{@docRoot}sdk/android-{@sdkPlatformVersion}-highlights.html">Platform -Highlights</a>.</p> - -<p class="note"><strong>Note:</strong> -If you've already published an Android application, please test and optimize your application on -Android 3.0 as soon as possible. You should do so to be sure your application provides the best -experience possible on the latest Android-powered devices. For information about what you can do, -read <a href="{@docRoot}guide/practices/tablets-and-handsets.html">Supporting Tablets and -Handsets</a>.</p> - - -<h2 id="relnotes">Revisions</h2> - -<p>To determine what revision of the Android {@sdkPlatformVersion} platform you have installed, -refer to the "Installed Packages" listing in the Android SDK and AVD Manager.</p> - - - -<div class="toggle-content opened" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 2</a> <em>(July 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r12</a> or -higher.</p> -</dd> -<dt>Notes:</dt> -<dd> -<p>Improvements to the platform's rendering library to support the visual layout editor in the ADT -Eclipse plugin. This revision allows for more drawing features in ADT and fixes several -bugs in the previous rendering library. It also unlocks several editor features that were added in -ADT 12.</p> -</dd> -</dl> - -</div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(February 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r10</a> or higher.</p> -</dd> -</dl> - -</div> -</div> - - - -<h2 id="#api">API Overview</h2> - -<p>The sections below provide a technical overview of what's new for developers in Android 3.0, -including new features and changes in the framework API since the previous version.</p> - - - - - -<h3>Fragments</h3> - -<p>A fragment is a new framework component that allows you to separate distinct elements of an -activity into self-contained modules that define their own UI and lifecycle. To create a -fragment, you must extend the {@link android.app.Fragment} class and implement several lifecycle -callback methods, similar to an {@link android.app.Activity}. You can then combine multiple -fragments in a single activity to build a multi-pane UI in which each -pane manages its own lifecycle and user inputs.</p> - -<p>You can also use a fragment without providing a UI and instead use the fragment as a worker -for the activity, such as to manage the progress of a download that occurs only while the -activity is running.</p> - -<p>Additionally:</p> - -<ul> - <li>Fragments are self-contained and you can reuse them in multiple activities</li> - <li>You can add, remove, replace and animate fragments inside the activity</li> - <li>You can add fragments to a back stack managed by the activity, preserving the state of -fragments as they are changed and allowing the user to navigate backward through the different -states</li> - <li>By <a -href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">providing -alternative layouts</a>, you can mix and match fragments, based -on the screen size and orientation</li> - <li>Fragments have direct access to their container activity and can contribute items to the -activity's Action Bar (discussed next)</li> -</ul> - -<p>To manage the fragments in your activity, you must use the {@link -android.app.FragmentManager}, which provides several APIs for interacting with fragments, such -as finding fragments in the activity and popping fragments off the back stack to restore their -previous state.</p> - -<p>To perform a transaction, such as add or remove a fragment, you must create a {@link -android.app.FragmentTransaction}. You can then call methods such as {@link -android.app.FragmentTransaction#add add()} {@link android.app.FragmentTransaction#remove -remove()}, or {@link android.app.FragmentTransaction#replace replace()}. Once you've applied all -the changes you want to perform for the transaction, you must call {@link -android.app.FragmentTransaction#commit commit()} and the system applies the fragment transaction to -the activity.</p> - -<p>For more information about using fragments, read the <a -href="{@docRoot}guide/topics/fundamentals/fragments.html">Fragments</a> documentation. Several -samples are also available in the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/index.html#Fragment"> -API Demos</a> application.</p> - - - - -<h3>Action Bar</h3> - -<p>The Action Bar is a replacement for the traditional title bar at the top of the activity window. -It includes the application logo in the left corner and provides a new interface for items in the -<a href="{@docRoot}guide/topics/ui/menus.html#options-menu">Options Menu</a>. Additionally, the -Action Bar allows you to:</p> - -<ul> - <li>Add menu items directly in the Action Bar—as "action items." - <p>In your XML declaration for the menu item, include the {@code -android:showAsAction} attribute with a value of {@code "ifRoom"}. When there's enough room, the menu -item appears directly in the Action Bar. Otherwise, the item is placed in the -overflow menu, revealed by the menu icon on the right side of the Action Bar.</p></li> - - <li>Replace an action item with a widget (such as a search box)—creating an -"action view." - <p>In the XML declaration for the menu item, add the {@code android:actionViewLayout} attribute -with a layout resource or the {@code android:actionViewClass} attribute with the class name of a -widget. (You must also declare the {@code android:showAsAction} attribute so that the item appears -in the Action Bar.) If there's not enough room in the Action Bar and the item appears in the -overflow menu, it behaves like a regular menu item and does not show the widget.</p></li> - - <li>Add an action to the application logo and replace it with a custom logo - <p>The application logo is automatically assigned the {@code android.R.id.home} ID, -which the system delivers to your activity's {@link android.app.Activity#onOptionsItemSelected -onOptionsItemSelected()} callback when touched. Simply respond to this ID in your callback -method to perform an action such as go to your application's "home" activity.</p> - <p>To replace the icon with a logo, specify your application logo in the manifest file with the -<a href="{@docRoot}guide/topics/manifest/application-element.html#logo">{@code android:logo}</a> -attribute, then call {@link android.app.ActionBar#setDisplayUseLogoEnabled -setDisplayUseLogoEnabled(true)} in your activity.</p></li> - - <li>Add breadcrumbs to navigate backward through the back stack of fragments</li> - <li>Add tabs or a drop-down list to navigate through fragments</li> - <li>Customize the Action Bar with themes and backgrounds</li> -</ul> - -<p>The Action Bar is standard for all applications that use the new holographic theme, which is -also standard when you set either the <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code -android:minSdkVersion}</a> or <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code -android:targetSdkVersion}</a> to {@code "11"}.</p> - -<p>For more information about the Action Bar, read the <a -href="{@docRoot}guide/topics/ui/actionbar.html">Action Bar</a> documentation. Several -samples are also available in the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/index.html#ActionBar"> -API Demos</a> application.</p> - - - - -<h3>System clipboard</h3> - -<p>Applications can now copy and paste data (beyond mere text) to and from the system-wide -clipboard. Clipped data can be plain text, a URI, or an intent.</p> - -<p>By providing the system access to the data you want the user to copy, through a content provider, -the user can copy complex content (such as an image or data structure) from your application and -paste it into another application that supports that type of content.</p> - -<p>To start using the clipboard, get the global {@link android.content.ClipboardManager} object -by calling {@link android.content.Context#getSystemService getSystemService(CLIPBOARD_SERVICE)}.</p> - -<p>To copy an item to the clipboard, you need to create a new {@link -android.content.ClipData} object, which holds one or more {@link android.content.ClipData.Item} -objects, each describing a single entity. To create a {@link android.content.ClipData} object -containing just one {@link android.content.ClipData.Item}, you can use one of the helper methods, -such as {@link android.content.ClipData#newPlainText newPlainText()}, {@link -android.content.ClipData#newUri newUri()}, and {@link android.content.ClipData#newIntent -newIntent()}, which each return a {@link android.content.ClipData} object pre-loaded with the -{@link android.content.ClipData.Item} you provide.</p> - -<p>To add the {@link android.content.ClipData} to the clipboard, pass it to {@link -android.content.ClipboardManager#setPrimaryClip setPrimaryClip()} for your instance of {@link -android.content.ClipboardManager}.</p> - -<p>You can then read a file from the clipboard (in order to paste it) by calling {@link -android.content.ClipboardManager#getPrimaryClip()} on the {@link -android.content.ClipboardManager}. Handling the {@link android.content.ClipData} you receive can -be complicated and you need to be sure you can actually handle the data type in the clipboard -before attempting to paste it.</p> - -<p>The clipboard holds only one piece of clipped data (a {@link android.content.ClipData} -object) at a time, but one {@link android.content.ClipData} can contain multiple {@link -android.content.ClipData.Item}s.</p> - -<p>For more information, read the <a href="{@docRoot}guide/topics/clipboard/copy-paste.html">Copy -and Paste</a> documentation. You can also see a simple implementation of copy and paste in the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/content/ClipboardSample.html">API Demos</a> -and a more complete implementation in the <a -href="{@docRoot}resources/samples/NotePad/index.html">Note Pad</a> application.</p> - - - - -<h3>Drag and drop</h3> - -<p>New APIs simplify drag and drop operations in your application's user interface. A drag -operation is the transfer of some kind of data—carried in a {@link android.content.ClipData} -object—from one place to another. The start and end point for the drag operation is a {@link -android.view.View}, so the APIs that directly handle the drag and drop operations are -in the {@link android.view.View} class.</p> - -<p>A drag and drop operation has a lifecycle that's defined by several drag actions—each -defined by a {@link android.view.DragEvent} object—such as {@link -android.view.DragEvent#ACTION_DRAG_STARTED}, {@link android.view.DragEvent#ACTION_DRAG_ENTERED}, and -{@link android.view.DragEvent#ACTION_DROP}. Each view that wants to participate in a drag -operation can listen for these actions.</p> - -<p>To begin dragging content in your activity, call {@link android.view.View#startDrag startDrag()} -on a {@link android.view.View}, providing a {@link android.content.ClipData} object that represents -the data to drag, a {@link android.view.View.DragShadowBuilder} to facilitate the "shadow" -that users see under their fingers while dragging, and an {@link java.lang.Object} that can share -information about the drag object with views that may receive the object.</p> - -<p>To accept a drag object in a {@link android.view.View} (receive the "drop"), register the view -with an {@link android.view.View.OnDragListener OnDragListener} by calling {@link -android.view.View#setOnDragListener setOnDragListener()}. When a drag event occurs on the view, the -system calls {@link android.view.View.OnDragListener#onDrag onDrag()} for the {@link -android.view.View.OnDragListener OnDragListener}, which receives a {@link android.view.DragEvent} -describing the type of drag action has occurred (such as {@link -android.view.DragEvent#ACTION_DRAG_STARTED}, {@link android.view.DragEvent#ACTION_DRAG_ENTERED}, and -{@link android.view.DragEvent#ACTION_DROP}). During a drag, the system repeatedly calls {@link -android.view.View.OnDragListener#onDrag onDrag()} for the view underneath the drag, to deliver a -stream of drag events. The receiving view can inquire the event type delivered to {@link -android.view.View#onDragEvent onDragEvent()} by calling {@link android.view.DragEvent#getAction -getAction()} on the {@link android.view.DragEvent}.</p> - -<p class="note"><strong>Note:</strong> Although a drag event may carry a {@link -android.content.ClipData} object, this is not related to the system clipboard. A drag and drop -operation should never put the dragged data in the system clipboard.</p> - -<p>For more information, read the <a href="{@docRoot}guide/topics/ui/drag-drop.html">Dragging and -Dropping</a> documentation. You can also see an implementation of drag and drop in the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/DragAndDropDemo.html"> -API Demos</a> application and the <a -href="{@docRoot}resources/samples/HoneycombGallery/index.html">Honeycomb Gallery</a> -application.</p> - - - -<h3>App widgets</h3> - -<p>Android 3.0 supports several new widget classes for more interactive app widgets on the users -Home screen, including: {@link android.widget.GridView}, {@link android.widget.ListView}, {@link -android.widget.StackView}, {@link android.widget.ViewFlipper}, and {@link -android.widget.AdapterViewFlipper}.</p> - -<p>More importantly, you can use the new {@link android.widget.RemoteViewsService} to create app -widgets with collections, using widgets such as {@link android.widget.GridView}, {@link -android.widget.ListView}, and {@link android.widget.StackView} that are backed by remote data, -such as from a content provider.</p> - -<p>The {@link android.appwidget.AppWidgetProviderInfo} class (defined in XML with an {@code -<appwidget-provider>} element) also supports two new fields: {@link -android.appwidget.AppWidgetProviderInfo#autoAdvanceViewId} and {@link -android.appwidget.AppWidgetProviderInfo#previewImage}. The {@link -android.appwidget.AppWidgetProviderInfo#autoAdvanceViewId} field lets you specify the view ID of the -app widget subview that should be auto-advanced by the app widget’s host. The -{@link android.appwidget.AppWidgetProviderInfo#previewImage} field specifies a preview of what the -app widget looks like and is shown to the user from the widget picker. If this field is not -supplied, the app widget's icon is used for the preview.</p> - -<p>To help create a preview image for your app widget (to specify in the {@link -android.appwidget.AppWidgetProviderInfo#previewImage} field), the Android emulator includes an -application called "Widget Preview." To create a preview image, launch this application, select the -app widget for your application and set it up how you'd like your preview image to appear, then save -it and place it in your application's drawable resources.</p> - -<p>You can see an implementation of the new app widget features in the <a -href="{@docRoot}resources/samples/StackWidget/index.html">StackView App Widget</a> and <a -href="{@docRoot}resources/samples/WeatherListWidget/index.html">Weather List Widget</a> -applications.</p> - - - -<h3>Status bar notifications</h3> - -<p>The {@link android.app.Notification} APIs have been extended to support more content-rich status -bar notifications, plus a new {@link android.app.Notification.Builder} class allows you to easily -create {@link android.app.Notification} objects.</p> -<p>New features include:</p> -<ul> - <li>Support for a large icon in the notification, using {@link -android.app.Notification.Builder#setLargeIcon setLargeIcon()}. This is usually for -social applications to show the contact photo of the person who is the source of the -notification or for media apps to show an album thumbnail.</li> - <li>Support for custom layouts in the status bar ticker, using {@link -android.app.Notification.Builder#setTicker(CharSequence,RemoteViews) setTicker()}.</li> - <li>Support for custom notification layouts to include buttons with {@link -android.app.PendingIntent}s, for more interactive notification widgets. For example, a -notification can control music playback without starting an activity.</li> -</ul> - - - -<h3>Content loaders</h3> - -<p>New framework APIs facilitate asynchronous loading of data using the {@link -android.content.Loader} class. You can use it in combination with UI components such as views and -fragments to dynamically load data from worker threads. The {@link -android.content.CursorLoader} subclass is specially designed to help you do so for data backed by -a {@link android.content.ContentProvider}.</p> - -<p>All you need to do is implement the {@link android.app.LoaderManager.LoaderCallbacks -LoaderCallbacks} interface to receive callbacks when a new loader is requested or the data has -changed, then call {@link android.app.LoaderManager#initLoader initLoader()} to initialize the -loader for your activity or fragment.</p> - -<p>For more information, read the <a -href="{@docRoot}guide/topics/fundamentals/loaders.html">Loaders</a> documentation. You can also see -example code using loaders in the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/LoaderCursor.html">LoaderCursor</a> -and <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/LoaderThrottle.html"> -LoaderThrottle</a> samples.</p> - - - -<h3>Bluetooth A2DP and headset APIs</h3> - -<p>Android now includes APIs for applications to verify the state of connected Bluetooth A2DP and -headset profile devices. For example, applications can identify when a Bluetooth headset is -connected for listening to music and notify the user as appropriate. Applications can also receive -broadcasts for vendor specific AT commands and notify the user about the state of the connected -device, such as when the connected device's battery is low.</p> - -<p>You can initialize the respective {@link android.bluetooth.BluetoothProfile} by calling {@link -android.bluetooth.BluetoothAdapter#getProfileProxy getProfileProxy()} with either the {@link -android.bluetooth.BluetoothProfile#A2DP} or {@link android.bluetooth.BluetoothProfile#HEADSET} -profile constant and a {@link android.bluetooth.BluetoothProfile.ServiceListener} to receive -callbacks when the Bluetooth client is connected or disconnected.</p> - - - - -<h3 id="animation">Animation framework</h3> - -<p>An all new flexible animation framework allows you to animate arbitrary properties of any object -(View, Drawable, Fragment, Object, or anything else). It allows you to define several aspects of an -animation, such as:</p> -<ul> - <li>Duration</li> - <li>Repeat amount and behavior</li> - <li>Type of time interpolation</li> - <li>Animator sets to play animations together, sequentially, or after specified delays</li> - <li>Frame refresh delay</li> -</ul> - - <p>You can define these animation aspects, and others, for an object's int, float, and hexadecimal -color values, by default. That is, when an object has a property field for one of these types, you -can change its value over time to affect an animation. To animate any other type of value, you tell -the system how to calculate the values for that given type, by implementing the {@link -android.animation.TypeEvaluator} interface.</p> - -<p>There are two animators you can use to animate the values of a property: {@link -android.animation.ValueAnimator} and {@link android.animation.ObjectAnimator}. The {@link -android.animation.ValueAnimator} computes the animation values, but is not aware of the specific -object or property that is animated as a result. It simply performs the calculations, and you must -listen for the updates and process the data with your own logic. The {@link -android.animation.ObjectAnimator} is a subclass of {@link android.animation.ValueAnimator} and -allows you to set the object and property to animate, and it handles all animation work. -That is, you give the {@link android.animation.ObjectAnimator} the object to animate, the -property of the object to change over time, and a set of values to apply to the property over -time, then start the animation.</p> - -<p>Additionally, the {@link android.animation.LayoutTransition} class enables automatic transition -animations for changes you make to your activity layout. To enable transitions for part of the -layout, create a {@link android.animation.LayoutTransition} object and set it on -any {@link android.view.ViewGroup} by calling {@link -android.view.ViewGroup#setLayoutTransition setLayoutTransition()}. This causes default -animations to run whenever items are added to or removed from the group. To specify custom -animations, call {@link android.animation.LayoutTransition#setAnimator setAnimator()} on the {@link -android.animation.LayoutTransition} and provide a custom {@link android.animation.Animator}, -such as a {@link android.animation.ValueAnimator} or {@link android.animation.ObjectAnimator} -discussed above.</p> - -<p>For more information, see the <a -href="{@docRoot}guide/topics/graphics/animation.html">Property Animation</a> documentation. You can -also see several samples using the animation APIs in the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/animation/index.html">API -Demos</a> application.</p> - - - - -<h3>Extended UI framework</h3> - -<ul> - - <li><b>Multiple-choice selection for ListView and GridView</b> - -<p>New {@link android.widget.AbsListView#CHOICE_MODE_MULTIPLE_MODAL} mode for {@link -android.widget.AbsListView#setChoiceMode setChoiceMode()} allows users to select multiple items -from a {@link android.widget.ListView} or {@link android.widget.GridView}. When used in -conjunction with the Action Bar, users can select multiple items and then select the action to -perform from a list of options in the Action Bar (which has transformed into a Multi-choice -Action Mode).</p> - -<p>To enable multiple-choice selection, call {@link -android.widget.AbsListView#setChoiceMode setChoiceMode(CHOICE_MODE_MULTIPLE_MODAL)} and register a -{@link android.widget.AbsListView.MultiChoiceModeListener MultiChoiceModeListener} with {@link -android.widget.AbsListView#setMultiChoiceModeListener setMultiChoiceModeListener()}.</p> - -<p>When the user performs a long-press on an item, the Action Bar switches to the Multi-choice -Action Mode. The system notifies the {@link android.widget.AbsListView.MultiChoiceModeListener -MultiChoiceModeListener} when items are selected by calling {@link -android.widget.AbsListView.MultiChoiceModeListener#onItemCheckedStateChanged -onItemCheckedStateChanged()}.</p> - -<p>For an example of multiple-choice selection, see the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/List15.html">List15. -java</a> -class in the API Demos sample application.</p> - </li> - - - <li><b>New APIs to transform views</b> - - <p>New APIs allow you to easily apply 2D and 3D transformations to views in your activity -layout. New transformations are made possible with a set of object properties that define the view's -layout position, orientation, transparency and more.</p> - <p>New methods to set the view properties include: {@link android.view.View#setAlpha -setAlpha()}, {@link -android.view.View#setBottom setBottom()}, {@link android.view.View#setLeft setLeft()}, {@link -android.view.View#setRight setRight()}, {@link android.view.View#setBottom setBottom()}, {@link -android.view.View#setPivotX setPivotX()}, {@link android.view.View#setPivotY setPivotY()}, {@link -android.view.View#setRotationX setRotationX()}, {@link android.view.View#setRotationY -setRotationY()}, {@link android.view.View#setScaleX setScaleX()}, {@link android.view.View#setScaleY -setScaleY()}, {@link android.view.View#setAlpha setAlpha()}, and others.</p> - - <p>Some methods also have a corresponding XML attribute that you can specify in your layout -file, to apply a default transformation. Available attributes include: {@code translationX}, {@code -translationY}, {@code rotation}, -{@code rotationX}, {@code rotationY}, {@code scaleX}, {@code scaleY}, {@code transformPivotX}, -{@code transformPivotY}, and {@code alpha}.</p> - - <p>Using some of these new view properties in combination with the new <a -href="#animation">animation framework</a> (discussed -above), you can easily apply some fancy animations to your views. For example, to rotate a -view on its y-axis, supply {@link android.animation.ObjectAnimator} with the {@link -android.view.View}, the "rotationY" property, and the start and end values:</p> -<pre> -ObjectAnimator animator = ObjectAnimator.ofFloat(myView, "rotationY", 0, 360); -animator.setDuration(2000); -animator.start(); -</pre> - </li> - - - <li><b>New holographic themes</b> - - <p>The standard system widgets and overall look have been redesigned and incorporate a new -"holographic" user interface theme. The system applies the new theme -using the standard <a href="{@docRoot}guide/topics/ui/themes.html">style and theme</a> system.</p> - -<p>Any application that targets the Android 3.0 platform—by setting either the <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code android:minSdkVersion}</a> -or <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code -android:targetSdkVersion}</a> value to {@code "11"}—inherits the holographic theme by default. -However, if your application also applies its own theme, then your theme will override the -holographic theme, unless you update your styles to inherit the holographic theme.</p> - -<p>To apply the holographic theme to individual activities or to inherit them in your own theme -definitions, use one of several new {@link android.R.style#Theme_Holo Theme.Holo} -themes. If your application is compatible with version of Android lower than 3.0 and applies -custom themes, then you should <a -href="{@docRoot}guide/topics/ui/themes.html#SelectATheme">select a theme based on platform -version</a>.</p> - - </li> - - - <li><b>New widgets</b> - - <ul> - <li>{@link android.widget.AdapterViewAnimator} - <p>Base class for an {@link android.widget.AdapterView} that performs animations when switching - between its views.</p></li> - - <li>{@link android.widget.AdapterViewFlipper} - <p>Simple {@link android.widget.ViewAnimator} that animates between two or more views that have - been added to it. Only one child is shown at a time. If requested, it can automatically flip - between - each child at a regular interval.</p></li> - - <li>{@link android.widget.CalendarView} - <p>Allows users to select dates from a calendar by touching the date and can scroll or fling the -calendar to a desired date. You can configure the range of dates available in the widget.</p></li> - - <li>{@link android.widget.ListPopupWindow} - <p>Anchors itself to a host view and displays a list of choices, such as for a list of - suggestions when typing into an {@link android.widget.EditText} view.</p></li> - - <li>{@link android.widget.NumberPicker} - <p>Enables the user to select a number from a predefined range. The widget presents an input -field and up and down buttons for selecting a number. Touching the input field allows the user to -scroll through values or touch again to directly edit the current value. It also allows you to map -positions to strings, so that the corresponding string is displayed instead of the index -position.</p></li> - - <li>{@link android.widget.PopupMenu} - <p>Displays a {@link android.view.Menu} in a modal popup window that's anchored to a view. The -popup appears below the anchor view if there is room, or above it if there is not. If the IME (soft -keyboard) is visible, the popup does not overlap the IME it until the user touches the -menu.</p></li> - - <li>{@link android.widget.SearchView} - <p>Provides a search box that you can configure to deliver search queries to a specified -activity and display search suggestions (in the same manner as the traditional search dialog). This -widget is particularly useful for offering a search widget in the Action Bar. For more information, -see <a href="{@docRoot}guide/topics/search/search-dialog.html">Creating a Search Interface.</p></li> - - <li>{@link android.widget.StackView} - <p>A view that displays its children in a 3D stack and allows users to swipe through - views like a rolodex.</p></li> - - </ul> - </li> - -</ul> - - - -<h3>Graphics</h3> - -<ul> - <li><b>Hardware accelerated 2D graphics</b> - -<p>You can now enable the OpenGL renderer for your application by setting {@code -android:hardwareAccelerated="true"} in your manifest element's <a -href="{@docRoot}guide/topics/manifest/application-element.html">{@code <application>}</a> -element or for individual <a -href="{@docRoot}guide/topics/manifest/activity-element.html">{@code <activity>}</a> -elements.</p> - -<p>This flag helps applications by making them draw faster. This results in smoother animations, -smoother scrolling, and overall better performance and response to user interaction.</p></li> - - - <li><b>View support for hardware and software layers</b> - - <p>By default, a {@link android.view.View} has no layer specified. You can specify that the -view be backed by either a hardware or software layer, specified by values {@link -android.view.View#LAYER_TYPE_HARDWARE} and {@link android.view.View#LAYER_TYPE_SOFTWARE}, using -{@link android.view.View#setLayerType setLayerType()} or the <a -href="{@docRoot}reference/android/view/View.html#attr_android:layerType">{@code layerType}</a> -attribute.</p> - <p>A hardware layer is backed by a hardware specific texture (generally Frame Buffer Objects or -FBO on OpenGL hardware) and causes the view to be rendered using Android's hardware rendering -pipeline, but only if hardware acceleration is turned on for the view hierarchy. When hardware -acceleration is turned off, hardware layers behave exactly as software layers.</p> - <p>A software layer is backed by a bitmap and causes the view to be rendered using Android's -software rendering pipeline, even if hardware acceleration is enabled. Software layers should be -avoided when the affected view tree updates often. Every update will require to re-render the -software layer, which can potentially be slow.</p> - <p>For more information, see the {@link android.view.View#LAYER_TYPE_HARDWARE} and {@link -android.view.View#LAYER_TYPE_SOFTWARE} documentation.</p> - </li> - - - <li><b>Renderscript 3D graphics engine</b> - -<p>Renderscript is a runtime 3D framework that provides both an API for building 3D scenes as well -as a special, platform-independent shader language for maximum performance. Using Renderscript, you -can accelerate graphics operations and data processing. Renderscript is an ideal way to create -high-performance 3D effects for applications, wallpapers, carousels, and more.</p> -<p>For more information, see the <a -href="{@docRoot}guide/topics/graphics/renderscript.html">3D Rendering and Computation with -Renderscript</a> documentation.</p></li> -</ul> - - - - -<h3>Media</h3> - - -<ul> - - <li><b>Time lapse video</b> - -<p>Camcorder APIs now support the ability to record time lapse video. The {@link -android.media.MediaRecorder#setCaptureRate setCaptureRate()} sets the rate at which frames -should be captured.</p></li> - - <li><b>Texture support for image streams</b> - -<p>New {@link android.graphics.SurfaceTexture} allows you to capture an image stream as an OpenGL ES -texture. By calling {@link android.hardware.Camera#setPreviewTexture setPreviewTexture()} for your -{@link android.hardware.Camera} instance, you can specify the {@link -android.graphics.SurfaceTexture} upon which to draw video playback or preview frames from the -camera.</p></li> - - <li><b>HTTP Live streaming</b> - -<p>Applications can now pass an M3U playlist URL to the media framework to begin an HTTP Live -streaming session. The media framework supports most of the HTTP Live streaming specification, -including adaptive bit rate. See the <a -href="{@docRoot}guide/appendix/media-formats.html">Supported Media Formats</a> document for -more information.</p></li> - - <li><b>EXIF data</b> - -<p>The {@link android.media.ExifInterface} includes new fields for photo aperture, ISO, and exposure -time.</p></li> - - <li><b>Camcorder profiles</b> - -<p>New {@link android.media.CamcorderProfile#hasProfile hasProfile()} method and several video -quality profiles (such as {@link android.media.CamcorderProfile#QUALITY_1080P}, {@link -android.media.CamcorderProfile#QUALITY_720P}, {@link -android.media.CamcorderProfile#QUALITY_CIF}, and others) allow you to determine camcorder -quality options.</p></li> - - <li><b>Digital media file transfer</b> - -<p>The platform includes built-in support for Media/Picture Transfer Protocol (MTP/PTP) over USB, -which lets users easily transfer any type of media files between devices and to a host computer. -Developers can build on this support, creating applications that let users create or manage rich -media files that they may want to transfer or share across devices. </p></li> - - <li><b>Digital rights management (DRM)</b> - -<p>New extensible digital rights management (DRM) framework for checking and enforcing digital -rights. It's implemented in two architectural layers:</p> -<ul> - <li>A DRM framework API, which is exposed to applications and runs through the Dalvik VM for -standard applications.</li> - <li>A native code DRM manager that implements the framework API and exposes an interface for DRM -plug-ins to handle rights management and decryption for various DRM schemes.</li> -</ul> - -<p>For application developers, the framework offers an abstract, unified API that simplifies the -management of protected content. The API hides the complexity of DRM operations and allows a -consistent operation mode for both protected and unprotected content, and across a variety of DRM -schemes.</p> - -<p>For device manufacturers, content owners, and Internet digital media providers the DRM -framework?s plugin API provides a means of adding support for a DRM scheme of choice into the -Android system, for secure enforcement of content protection.</p> - -<p>The preview release does not provide any native DRM plug-ins for checking and enforcing digital -rights. However, device manufacturers may ship DRM plug-ins with their devices.</p> - -<p>You can find all of the DRM APIs in the {@link android.drm} package.</p></li> - -</ul> - - - -<h3>Keyboard support</h3> - -<ul> -<li>Support for Control, Meta, Caps Lock, Num Lock and Scroll Lock modifiers. For more information, -see {@link android.view.KeyEvent#META_CTRL_ON} and related fields.</li> - -<li>Support for full desktop-style keyboards, including support for keys such as Escape, Home, End, -Delete and others. You can determine whether key events are coming from a full keyboard by -querying {@link android.view.KeyCharacterMap#getKeyboardType()} and checking for {@link -android.view.KeyCharacterMap#FULL KeyCharacterMap.FULL}</li> - -<li>{@link android.widget.TextView} now supports keyboard-based cut, copy, paste, and select-all, -using the key combinations Ctrl+X, Ctrl+C, Ctrl+V, and Ctrl+A. It also supports PageUp/PageDown, -Home/End, and keyboard-based text selection.</li> - -<li>{@link android.view.KeyEvent} adds several new methods to make it easier to check the key -modifier state correctly and consistently. See {@link android.view.KeyEvent#hasModifiers(int)}, -{@link android.view.KeyEvent#hasNoModifiers()}, -{@link android.view.KeyEvent#metaStateHasModifiers(int,int) metaStateHasModifiers()}, -{@link android.view.KeyEvent#metaStateHasNoModifiers(int) metaStateHasNoModifiers()}.</li> - -<li>Applications can implement custom keyboard shortcuts by subclassing {@link -android.app.Activity}, {@link android.app.Dialog}, or {@link android.view.View} and implementing -{@link android.app.Activity#onKeyShortcut onKeyShortcut()}. The framework calls this method -whenever a key is combined with Ctrl key. When creating an <a -href="{@docRoot}guide/topics/ui/menus.html#options-menu">Options Menu</a>, you can register keyboard -shortcuts by setting either the {@code android:alphabeticShortcut} or {@code -android:numericShortcut} attribute for each <a -href="{@docRoot}guide/topics/resources/menu-resource.html#item-element">{@code <item>}</a> -element (or with {@link android.view.MenuItem#setShortcut setShortcut()}).</li> - -<li>Android 3.0 includes a new "virtual keyboard" device with the id {@link -android.view.KeyCharacterMap#VIRTUAL_KEYBOARD KeyCharacterMap.VIRTUAL_KEYBOARD}. The virtual -keyboard has a desktop-style US key map which is useful for synthesizing key events for testing -input.</li> - -</ul> - - - - -<h3>Split touch events</h3> - -<p>Previously, only a single view could accept touch events at one time. Android 3.0 -adds support for splitting touch events across views and even windows, so different views can accept -simultaneous touch events.</p> - -<p>Split touch events is enabled by default when an application targets -Android 3.0. That is, when the application has set either the <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code android:minSdkVersion}</a> -or <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code -android:targetSdkVersion}</a> attribute's value to {@code "11"}.</p> - -<p>However, the following properties allow you to disable split touch events across views inside -specific view groups and across windows.</p> - -<ul> -<li>The {@link android.R.attr#splitMotionEvents android:splitMotionEvents} attribute for view groups -allows you to disable split touch events that occur between child views in a layout. For example: -<pre> -<LinearLayout android:splitMotionEvents="false" ... > - ... -</LinearLayout> -</pre> -<p>This way, child views in the linear layout cannot split touch events—only one view can -receive touch events at a time.</p> -</li> - -<li>The {@link android.R.attr#windowEnableSplitTouch android:windowEnableSplitTouch} style property -allows you to disable split touch events across windows, by applying it to a theme for the activity -or entire application. For example: -<pre> -<style name="NoSplitMotionEvents" parent="android:Theme.Holo"> - <item name="android:windowEnableSplitTouch">false</item> - ... -</style> -</pre> -<p>When this theme is applied to an <a -href="{@docRoot}guide/topics/manifest/activity-element.html">{@code <activity>}</a> or <a -href="{@docRoot}guide/topics/manifest/application-element.html">{@code <application>}</a>, -only touch events within the current activity window are accepted. For example, by disabling split -touch events across windows, the system bar cannot receive touch events at the same time as the -activity. This does <em>not</em> affect whether views inside the activity can split touch -events—by default, the activity can still split touch events across views.</p> - -<p>For more information about creating a theme, read <a -href="{@docRoot}guide/topics/ui/themes.html">Applying Styles and Themes</a>.</p> -</li> -</ul> - - - -<h3>WebKit</h3> - -<ul> - <li>New {@link android.webkit.WebViewFragment} class to create a fragment composed of a -{@link android.webkit.WebView}.</li> - <li>New {@link android.webkit.WebSettings} methods: - <ul> - <li>{@link -android.webkit.WebSettings#setDisplayZoomControls setDisplayZoomControls()} allows you to hide -the on-screen zoom controls while still allowing the user to zoom with finger gestures ({@link -android.webkit.WebSettings#setBuiltInZoomControls setBuiltInZoomControls()} must be set -{@code true}).</li> - <li>New {@link android.webkit.WebSettings} method, {@link -android.webkit.WebSettings#setEnableSmoothTransition setEnableSmoothTransition()}, allows you -to enable smooth transitions when panning and zooming. When enabled, WebView will choose a solution -to maximize the performance (for example, the WebView's content may not update during the -transition).</li> - </ul> - <li>New {@link android.webkit.WebView} methods: - <ul> - <li>{@link android.webkit.WebView#onPause onPause()} callback, to pause any processing -associated with the WebView when it becomes hidden. This is useful to reduce unnecessary CPU or -network traffic when the WebView is not in the foreground.</li> - <li>{@link android.webkit.WebView#onResume onResume()} callback, to resume processing -associated with the WebView, which was paused during {@link android.webkit.WebView#onPause -onPause()}.</li> - <li>{@link android.webkit.WebView#saveWebArchive saveWebArchive()} allows you to save the -current view as a web archive on the device.</li> - <li>{@link android.webkit.WebView#showFindDialog showFindDialog()} initiates a text search in -the current view.</li> - </ul> - </li> -</ul> - - - -<h3>Browser</h3> - -<p>The Browser application adds the following features to support web applications:</p> - -<ul> - <li><b>Media capture</b> - <p>As defined by the <a href="http://dev.w3.org/2009/dap/camera/">HTML Media Capture</a> -specification, the Browser allows web applications to access audio, image and video capture -capabilities of the device. For example, the following HTML provides an input for the user to -capture a photo to upload:</p> -<pre> -<input type="file" accept="image/*;capture=camera" /> -</pre> -<p>Or by excluding the {@code capture=camera} parameter, the user can choose to either capture a -new image with the camera or select one from the device (such as from the Gallery application).</p> - </li> - - <li><b>Device Orientation</b> - <p>As defined by the <a -href="http://dev.w3.org/geo/api/spec-source-orientation.html">Device Orientation Event</a> -specification, the Browser allows web applications to listen to DOM events that provide information -about the physical orientation and motion of the device.</p> - <p>The device orientation is expressed with the x, y, and z axes, in degrees and motion is -expressed with acceleration and rotation rate data. A web page can register for orientation -events by calling {@code window.addEventListener} with event type {@code "deviceorientation"} -and register for motion events by registering the {@code "devicemotion"} event type.</p> - </li> - - <li><b>CSS 3D Transforms</b> - <p>As defined by the <a href="http://www.w3.org/TR/css3-3d-transforms/">CSS 3D Transform -Module</a> specification, the Browser allows elements rendered by CSS to be transformed in three -dimensions.</p> - </li> -</ul> - - - -<h3>JSON utilities</h3> - -<p>New classes, {@link android.util.JsonReader} and {@link android.util.JsonWriter}, help you -read and write JSON streams. The new APIs complement the {@link org.json} classes, which manipulate -a document in memory.</p> - -<p>You can create an instance of {@link android.util.JsonReader} by calling -its constructor method and passing the {@link java.io.InputStreamReader} that feeds the JSON string. -Then begin reading an object by calling {@link android.util.JsonReader#beginObject()}, read a -key name with {@link android.util.JsonReader#nextName()}, read the value using methods -respective to the type, such as {@link android.util.JsonReader#nextString()} and {@link -android.util.JsonReader#nextInt()}, and continue doing so while {@link -android.util.JsonReader#hasNext()} is true.</p> - -<p>You can create an instance of {@link android.util.JsonWriter} by calling its constructor and -passing the appropriate {@link java.io.OutputStreamWriter}. Then write the JSON data in a manner -similar to the reader, using {@link android.util.JsonWriter#name name()} to add a property name -and an appropriate {@link android.util.JsonWriter#value value()} method to add the respective -value.</p> - -<p>These classes are strict by default. The {@link android.util.JsonReader#setLenient setLenient()} -method in each class configures them to be more liberal in what they accept. This lenient -parse mode is also compatible with the {@link org.json}'s default parser.</p> - - - - -<h3>New feature constants</h3> - -<p>The <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> -manfest element should be used to inform external entities (such as Google Play) of the set of -hardware and software features on which your application depends. In this release, Android adds the -following new constants that applications can declare with this element:</p> - -<ul> - <li>{@link android.content.pm.PackageManager#FEATURE_FAKETOUCH "android.hardware.faketouch"} - <p>When declared, this indicates that the application is compatible with a device that offers an -emulated touchscreen (or better). A device that offers an emulated touchscreen provides a user input -system that can emulate a subset of touchscreen -capabilities. An example of such an input system is a mouse or remote control that drives an -on-screen cursor. Such input systems support basic touch events like click down, click up, and drag. -However, more complicated input types (such as gestures, flings, etc.) may be more difficult or -impossible on faketouch devices (and multitouch gestures are definitely not possible).</p> - <p>If your application does <em>not</em> require complicated gestures and you do -<em>not</em> want your application filtered from devices with an emulated touchscreen, you -should declare {@link -android.content.pm.PackageManager#FEATURE_FAKETOUCH "android.hardware.faketouch"} with a <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> -element. This way, your application will be available to the greatest number of device types, -including those that provide only an emulated touchscreen input.</p> - <p>All devices that include a touchscreen also support {@link -android.content.pm.PackageManager#FEATURE_FAKETOUCH "android.hardware.faketouch"}, because -touchscreen capabilities are a superset of faketouch capabilities. Thus, unless you actually require -a touchscreen, you should add a <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> -element for faketouch.</p> - </li> -</ul> - - - - -<h3>New permissions</h3> - -<ul> - <li>{@link android.Manifest.permission#BIND_REMOTEVIEWS -"android.permission.BIND_REMOTEVIEWS"} - <p>This must be declared as a required permission in the <a -href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> manifest -element for an implementation of {@link android.widget.RemoteViewsService}. For example, when -creating an App Widget that uses {@link android.widget.RemoteViewsService} to populate a -collection view, the manifest entry may look like this:</p> -<pre> -<service android:name=".widget.WidgetService" - android:exported="false" - android:permission="android.permission.BIND_REMOTEVIEWS" /> -</pre> -</ul> - - - -<h3>New platform technologies</h3> - -<ul> -<li><strong>Storage</strong> - <ul> - <li>ext4 file system support to enable onboard eMMC storage.</li> - <li>FUSE file system to support MTP devices.</li> - <li>USB host mode support to support keyboards and USB hubs.</li> - <li>Support for MTP/PTP </li> - </ul> -</li> - -<li><strong>Linux Kernel</strong> - <ul> - <li>Upgraded to 2.6.36</li> - </ul> -</li> - -<li><strong>Dalvik VM</strong> - <ul> - <li>New code to support and optimize for SMP</li> - <li>Various improvements to the JIT infrastructure</li> - <li>Garbage collector improvements: - <ul> - <li>Tuned for SMP</li> - <li>Support for larger heap sizes</li> - <li>Unified handling for bitmaps and byte buffers</li> - </ul> - </li> - </ul> -</li> - -<li><strong>Dalvik Core Libraries</strong> - <ul> - <li>New, much faster implementation of NIO (modern I/O library)</li> - <li>Improved exception messages</li> - <li>Correctness and performance fixes throughout</li> - </ul> -</li> -</ul> - - - -<h3 id="api-diff">API differences report</h3> - -<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API Level -{@sdkPlatformApiLevel}), see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API Differences Report</a>.</p> - - - - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, -you need compile the application against the Android library that is provided in -the Android {@sdkPlatformVersion} SDK platform. Depending on your needs, you might -also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> -attribute to the <code><uses-sdk></code> element in the application's -manifest. If your application is designed to run only on Android 2.3 and higher, -declaring the attribute prevents the application from being installed on earlier -versions of the platform.</p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>API Demos</li> -<li>Browser</li> -<li>Calculator</li> -<li>Camera</li> -<li>Clock</li> -<li>Contacts</li> -<li>Custom Locale</li> -<li>Dev Tools</li> -<li>Downloads</li> -<li>Email</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Gallery</li> -<li>Gestures Builder</li> -<li>Messaging</li> -<li>Music</li> -<li>Search</li> -<li>Settings</li> -<li>Spare Parts</li> -<li>Speech Recorder</li> -<li>Widget Preview</li> -</ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable SDK platform provides a variety of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android 3.0 system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Arabic, Egypt (ar_EG)</li> -<li>Arabic, Israel (ar_IL)</li> -<li>Bulgarian, Bulgaria (bg_BG)</li> -<li>Catalan, Spain (ca_ES)</li> -<li>Czech, Czech Republic (cs_CZ)</li> -<li>Danish, Denmark(da_DK)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Greek, Greece (el_GR)</li> -<li>English, Australia (en_AU)</li> -<li>English, Canada (en_CA)</li> -<li>English, Britain (en_GB)</li> -<li>English, Ireland (en_IE)</li> -<li>English, India (en_IN)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>English, US (en_US)</li> -<li>English, South Africa (en_ZA)</li> -<li>Spanish (es_ES)</li> -<li>Spanish, US (es_US)</li> -<li>Finnish, Finland (fi_FI)</li> -<li>French, Belgium (fr_BE)</li> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>French, France (fr_FR)</li> -<li>Hebrew, Israel (he_IL)</li> -<li>Hindi, India (hi_IN)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>Croatian, Croatia (hr_HR)</li> -<li>Hungarian, Hungary (hu_HU)</li> -<li>Indonesian, Indonesia (id_ID)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Italian, Italy (it_IT)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Lithuanian, Lithuania (lt_LT)</li> -<li>Latvian, Latvia (lv_LV)</li> -<li>Norwegian bokmål, Norway (nb_NO)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Polish (pl_PL)</li> -<li>Portuguese, Brazil (pt_BR)</li> -<li>Portuguese, Portugal (pt_PT)</li> -<li>Romanian, Romania (ro_RO)</li> -<li>Russian (ru_RU)</li></li> -<li>Slovak, Slovakia (sk_SK)</li> -<li>Slovenian, Slovenia (sl_SI)</li> -<li>Serbian (sr_RS)</li> -<li>Swedish, Sweden (sv_SE)</li> -<li>Thai, Thailand (th_TH)</li> -<li>Tagalog, Philippines (tl_PH)</li> -<li>Turkish, Turkey (tr_TR)</li> -<li>Ukrainian, Ukraine (uk_UA)</li> -<li>Vietnamese, Vietnam (vi_VN)</li> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -</td> -</tr> -</table> - -<p class="note"><strong>Note:</strong> The Android platform may support more -locales than are included in the SDK system image. All of the supported locales -are available in the <a href="http://source.android.com/">Android Open Source -Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes the following emulator skin:</p> - -<ul> - <li> - WXGA (1280x800, medium density, xlarge screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays -and functions properly on all Android-powered devices, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p>
\ No newline at end of file diff --git a/docs/html/sdk/android-3.1-highlights.jd b/docs/html/sdk/android-3.1-highlights.jd deleted file mode 100644 index 88bc1ee..0000000 --- a/docs/html/sdk/android-3.1-highlights.jd +++ /dev/null @@ -1,380 +0,0 @@ -page.title=Android 3.1 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> - -<p>Welcome to Android 3.1!</p> - -<p>Android 3.1 is an incremental platform release that refines many of the -features introduced in Android 3.0. It builds on the same tablet-optimized UI -and features offered in Android 3.0 and adds several new capabilities for -users and developers. This document provides an overview of the new features and -technologies introduced in Android 3.1. For a more detailed look at new -developer APIs, see the <a href="{@docRoot}sdk/android-3.1.html">API -Overview</a> document.</p> - -<p>For a high-level introduction to Android 3.0, please see the <a -href="{@docRoot}sdk/android-3.0-highlights.html">Android 3.0 Platform -Highlights</a>.</p> - -<ul> - <li><a href="#UserFeatures">New User Features</a></li> - <li><a href="#DeveloperApis">New Developer Features</a></li> -</ul> - -<h2 id="UserFeatures" style="clear:right">New User Features</h2> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;margin-left:1em;float:right;padding-top:2em;"><a href="images/3.1/home_full.png" target="_android"><img src="images/3.1/home.png" alt="" height="280" /></a> -<div style="padding-left:1.25em;padding-bottom:1.25em;width:450px;font-size:.9em"><strong>Figure 1.</strong> An Android 3.1 Home screen.</div> -</div> - -<h3>UI refinements</h3> - -<p>The Android 3.1 platform adds a variety of refinements to make the user -interface more intuitive and more efficient to use.</p> - -<p>UI transitions are improved throughout the system and across the standard -apps. The Launcher animation is optimized for faster, smoother transition to and -from the Apps list. Adjustments in color, positioning, and text make UI elements -easier to see, understand, and use. Accessibility is improved with consistent -audible feedback throughout the UI and a new setting to let users customize the -touch-hold interval to meet their needs.</p> - -<p>Navigation to and from the five home screens is now easier — touching -the Home button in the system bar now takes you to the home screen most recently -used. Settings offers an improved view of internal storage, -showing the storage used by a larger set of file types. </p> - -<h3 id="accessories">Connectivity for USB accessories</h3> - -<p>Android 3.1 adds broad platform support for a variety of USB-connected -peripherals and accessories. Users can attach many types of input devices -(keyboards, mice, game controllers) and digital cameras. Applications can build -on the platform’s USB support to extend connectivity to almost any type of USB -device.</p> - -<p>The platform also adds new support for USB accessories — external -hardware devices designed to attach to Android-powered devices as USB hosts. When an -accessory is attached, the framework will look for a corresponding application -and offer to launch it for the user. The accessory can also present a URL -to the user, for downloading an appropriate application if one is not already -installed. Users can interact with the application to control powered accessories such -as robotics controllers; docking stations; diagnostic and musical equipment; -kiosks; card readers; and much more.</p> - -<p>The platform’s USB capabilities rely on components in device hardware, so -support for USB on specific devices may vary and is determined by device -manufacturers.</p> - -<div style="padding-top:0em;"> -<div style="margin-right:.8em;float:left;width:200px;"><img src="{@docRoot}sdk/images/3.1/tasks.png" alt="" /> -<div style="padding-left:1em;padding-bottom:1em;xwidth:auto;font-size:.9em"><strong>Figure 2.</strong> The Recent Apps menu is now expandable and scrollable.</div> -</div> - -<h3 id="recentapps">Expanded Recent Apps list</h3> - -<p>For improved multitasking and instant visual access to a much larger number -of apps, the Recent Apps list is now expandable. Users can now scroll the list -of recent apps vertically to see thumbnail images all of the tasks in progress -and recently used apps, then touch a thumbnail to jump back into that task.</p> - -<h3 id="resizewidgets">Resizeable Home screen widgets</h3> - -<p>For more flexible Home screen customization, users can now resize their Home -screen widgets using drag bars provided by the system. Users can expand widgets -both horizontally and/or vertically to include more content, where supported by -each widget.</p> - - -<h3 id="keyboards">Support for external keyboards -and pointing devices</h3> - -<p>Users can now attach almost any type of external keyboard or mouse to their -Android-powered devices, to create a familiar environment and work more -efficiently. One or more input devices can be attached to the system simultaneously -over USB and/or Bluetooth HID, in any combination. No special configuration or -driver is needed, in most cases. When multiple devices are connected, users can -conveniently manage the active keyboard and IME using the keyboard settings that -are available from the System bar.</p> - -<p>For pointing devices, the platform supports most types of mouse with a single -button and optionally a scroll wheel, as well as similar devices such as -trackballs. When these are connected, users can interact with the UI using -point, select, drag, scroll, hover, and other standard actions.</p> - -<h3 id="joysticks">Support for joysticks and gamepads</h3> - -<p>To make the platform even better for gaming, Android 3.1 adds support for -most PC joysticks and gamepads that are connected over USB or Bluetooth HID.</p> - -<p>For example, users can connect PlayStation<sup>®</sup>3 and Xbox 360<sup>®</sup> -game controllers over USB (but not Bluetooth), Logitech Dual Action™ gamepads and -flight sticks, or a car racing controller. Game controllers that use proprietary -networking or pairing are not supported by default, but in general, the platform -supports most PC-connectible joysticks and gamepads.</p> - -<h3 id="wifi">Robust Wi-Fi networking</h3> - -<p>Android 3.1 adds robust Wi-Fi features, to make sure that users and their -apps can take full advantage of higher-speed Wi-Fi access at home, at work, and -while away.</p> - -<p>A new high-performance Wi-Fi lock lets applications maintain -high-performance Wi-Fi connections even when the device screen is off. Users can -take advantage of this to play continuous streamed music, video, and voice -services for long periods, even when the device is otherwise idle and the screen -is off. </p> - -<p>Users can now configure an HTTP proxy for each individual Wi-Fi access -point, by touch-hold of the access point in Settings. The browser uses the HTTP -proxy when communicating with the network over the access point and other apps -may also choose to do so. The platform also provides backup and restore of the -user-defined IP and proxy settings.</p> -<p>The platform adds support for Preferred Network Offload (PNO), a background -scanning capability that conserves battery power savings in cases where Wi-Fi -needs to be available continuously for long periods of time.</p> - -<h3 id="apps">Updated set of standard apps</h3> - -<p>The Android 3.1 platform includes an updated set of standard applications -that are optimized for use on larger screen devices. The sections below -highlight some of the new features.</p> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;margin-top:1.5em;margin-bottom:0;padding-bottom:0;"><img src="{@docRoot}sdk/images/3.1/controls.png" alt="" height="280px" /> -<div style="padding-left:1.25em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><strong>Figure 3.</strong> Quick Controls menu in the Browser.</div> -</div> -</div> - -<p><strong>Browser</strong></p> - -<p>The Browser app includes a variety of new features and UI improvements that -make viewing web content simpler, faster, and more convenient.</p> - -<p>The Quick Controls UI, accessible from Browser Settings, is extended and -redesigned. Users can now use the controls to view thumbnails of open tabs and -close the active tab, as well as access the overflow menu for instant access to -Settings and other controls.</p> - -<p>To ensure a consistent viewing experience, the Browser extends it's support -for popular web standards such as CSS 3D, animations, and CSS fixed -positioning to all sites, mobile or desktop. It also adds support for embedded -playback of HTML5 video content. To make it easier to manage favorite -content, users can now save a web page locally for offline viewing, including -all styling and images. For convenience when visiting Google sites, an improved -auto-login UI lets users sign in quickly and manage access when multiple users -are sharing a device.</p> - -<p>For best performance, the Browser adds support for plugins that use hardware -accelerated rendering. Page zoom performance is also dramatically improved, -making it faster to navigate and view web pages.</p> - -<p><strong>Gallery</strong></p> - -<p>The Gallery app now supports Picture Transfer Protocol (PTP), so that users -can connect their cameras over USB and import their pictures to Gallery with a -single touch. The app also copies the pictures to local storage and provides an -indicator to let users see how much space is available.</p> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:left;margin-left:0em;"><img src="{@docRoot}sdk/images/3.1/resizeable.png" alt="" width="170" target="_android" style="margin-bottom:0;" /> -<div style="padding-left:1.4em;padding-bottom:1em;width:180px;font-size:.9em"><strong>Figure -4.</strong> Home screen widgets can now be resized.</div></div> - -<p><strong>Calendar</strong></p> - -<p>Calendar grids are larger, for better readability and more accurate -touch-targeting. Additionally, users can create a larger viewing area for grids -by hiding the calendar list controls. Controls in the date picker are -redesigned, making them easier to see and use.</li> -</ul> - -<p><strong>Contacts</strong></p> - -<p>The Contacts app now lets you locate contacts more easily using full text -search. Search returns matching results from all fields that are stored for a -contact. -</p> - -<p><strong>Email</strong></p> - -<p>When replying or forwarding an HTML message, The Email app now sends both -plain text and HTML bodies as a multi-part mime message. This ensures that the -message will be formatted properly for all recipients. Folder prefixes for IMAP -accounts are now easier to define and manage. To conserve battery power and -minimize cell data usage, the application now prefetches email from the server -only when the device is connected to a Wi-Fi access point. </p> - -<p>An updated Home screen widget give users quick access to more email. Users -can touch Email icon at the top of the widget to cycle through labels such as -Inbox, Unread, and Starred. The widget itself is now resizable, both -horizontally and vertically.</p> - -<h3 id="enterprise">Enterprise support</h3> - -<p>Users can now configure an HTTP proxy for each connected Wi-Fi access point. -This lets administrators work with users to set a proxy hostname, port, and any -bypass subdomains. This proxy configuration is automatically used by the Browser -when the Wi-Fi access point is connected, and may optionally be used by other -apps. The proxy and IP configuration is now backed up and restored across system -updates and resets.</p> - -<p>To meet the needs of tablet users, the platform now allows a "encrypted -storage card" device policy to be accepted on devices with emulated storage -cards and encrypted primary storage.</p> - - -<h2 id="DeveloperApis" style="clear:both">New Developer Features</h2> - -<p>The Android 3.1 platform adds refinements and new capabilities that -developers can build on, to create powerful and engaging application experiences -on tablets and other large-screen devices. </p> - -<h3 id="accessory">Open Accessory API for rich interaction with -peripherals</h3> - -<p>Android 3.1 introduces a new API for integrating hardware accessories with -applications running on the platform. The API provides a way to interact across -a wide range of peripherals, from robotics controllers to musical equipment, -exercise bicycles, and more.</p> - -<p>The API is based on a new USB (Universal Serial Bus) stack and services -that are built into the platform. The platform provides services for discovering -and identifying connected hardware, as well as for notifying interested -applications that the hardware is available.</p> - -<p>When a user plugs in a USB accessory, the platform receives -identifying information such as product name, accessory type, manufacturer, and -version. The platform sets up communication with the accessory and uses its -information to notify and launch a targeted app, if one is available. Optionally, -an accessory can provide a URL that lets users find and download an -app that works with the accessory. These discovery features make -first-time setup easier for the user and ensure that an appropriate application -is available for interacting with the connected hardware. </p> - -<p>For application developers and accessory manufacturers, accessory mode offers -many new ways to engage users and build powerful interaction experiences with -connected hardware.</p> - -<p>To learn more about how to develop applications that interact with -accessories, see the <a href="{@docRoot}guide/topics/usb/accessory.html">USB -Accessory</a> documentation.</p> - -<h3 id="host">USB host API</h3> - -<p>Android 3.1 provides built-in platform support for USB host mode and exposes -an API that lets applications manage connected peripherals. On devices that -support host mode, applications can use the API to identify and communicate with -connected devices such as audio devices. input devices, communications devices, -hubs, cameras, and more.</p> - -<p>To learn more about how to develop applications that interact with -USB devices, see the <a href="{@docRoot}guide/topics/usb/host.html">USB -Host</a> documentation.</p> - -<h3 id="inputdevices">Input from mice, joysticks, and gamepads</h3> - -<p>Android 3.1 extends the input event system to support a variety of new input -sources and motion events, across all views and windows. Developers can build on -these capabilities to let users interact with their applications using mice, -trackballs, joysticks, gamepads, and other devices, in addition to keyboards and -touchscreens.</p> - -<p>For mouse and trackball input, the platform supports two new motion event -actions: scroll (horizontal or vertical) such as from a scrollwheel; and hover, -which reports the location of the mouse when no buttons are pressed. -Applications can handle these events in any way needed.</p> - -<p>For joysticks and gamepads, the platform provides a large number of motion -axes that applications can use from a given input source, such as X, Y, Hat X, -Hat Y, rotation, throttle, pressure, size, touch, tool, orientation, and others. -Developers can also define custom axes if needed, to capture motion in -additional ways. The platform provides motion events to applications as a batch, -and applications can query the details of the movements included in the batch, -for more efficient and precise handling of events.</p> - -<p>Applications can query for the list of connected input devices and the motion -ranges (axes) supported by each device. Applications can also handle multiple -input and motion events from a single input device. For example, an application -can use mouse and joystick and mouse event sources from a single input -device.</p> - -<h3 id="resizewidgetsapp">Resizable Home screen widgets</h3> - -<p>Developers can now create Home screen widgets that users can resize -horizontally, vertically, or both. By simply adding an attribute to the -declaration of a widget, the widget becomes resizable horizontally, vertically, -or both. This lets users customize the display of the widget content and display -more of it on their Home screens.</p> - -<h3 id="mtp">MTP API for integrating with external cameras</h3> - -<p>In Android 3.1, a new MTP (Media Transfer Protocol) API lets developers write -apps that interact directly with connected cameras and other PTP devices. The -new API makes it easy for applications to receive notifications when devices are -attached and removed, manage files and storage on those devices, and transfer -files and metadata to and from them. The MTP API implements the PTP (Picture -Transfer Protocol) subset of the MTP specification.</p> - -<h3 id="rtp">RTP API, for control over audio streaming sessions</h3> - -<p>Android 3.1 exposes an API to its built-in RTP (Real-time Transport Protocol) -stack, which applications can use to directly manage on-demand or interactive -data streaming. In particular, apps that provide VOIP, push-to-talk, -conferencing, and audio streaming can use the API to initiate sessions and -transmit or receive data streams over any available network.</p> - -<h3 id="performance">Performance optimizations</h3> - -<p>Android 3.1 includes a variety of performance optimizations that help make -applications faster and more responsive. Some of the optimizations include:</p> - -<ul> -<li>A new LRU cache class lets applications benefit from efficient caching. -Applications can use the class to reduce the time spent computing or downloading -data from the network, while maintaining a sensible memory footprint for the -cached data.</li> -<li>The UI framework now supports partial invalidates in hardware-accelerated -Views, which makes drawing operations in those Views more efficient.</li> -<li>A new graphics method, {@link android.graphics.Bitmap#setHasAlpha(boolean) -setHasAlpha()}, allows apps to hint that a given bitmap is opaque. This provides -an extra performance boost for some types of blits and is especially useful for -applications that use ARGB_8888 bitmaps.</li> -</ul> - diff --git a/docs/html/sdk/android-3.1.jd b/docs/html/sdk/android-3.1.jd deleted file mode 100644 index 7ec7e33..0000000 --- a/docs/html/sdk/android-3.1.jd +++ /dev/null @@ -1,1106 +0,0 @@ -page.title=Android 3.1 Platform -sdk.platform.version=3.1 -sdk.platform.apiLevel=12 -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api">API Overview</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/12/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}guide/practices/optimizing-for-3.0.html">Optimizing -Apps for Android 3.x</a></li> -</ol> - -</div> -</div> - - -<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes -an Android library and system image, as well as a set of emulator skins and -more. The downloadable platform includes no external libraries.</p> - -<p>To get started developing or testing against Android {@sdkPlatformVersion}, -use the Android SDK Manager to download the platform into your SDK. For more -information, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>. If you are new to Android, <a -href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> first.</p> - -<p>For a high-level introduction to Android {@sdkPlatformVersion}, see the <a -href="{@docRoot}sdk/android-{@sdkPlatformVersion}-highlights.html">Platform -Highlights</a>.</p> - -<p class="note"><strong>Reminder:</strong> If you've already published an -Android application, please test and optimize your application on Android 3.0 -and Android 3.1 as soon as possible. You should do so to be sure your -application provides the best experience possible on the latest Android-powered -devices. For information about what you can do, read <a -href="{@docRoot}guide/practices/optimizing-for-3.0.html">Optimizing Apps for -Android 3.0</a>.</p> - - -<h2 id="relnotes">Revisions</h2> - -<p>To determine what revision of the Android {@sdkPlatformVersion} platform you -have installed, refer to the "Installed Packages" listing in the Android SDK and -AVD Manager.</p> - - -<div class="toggle-content opened" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 3</a> <em>(July 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r12</a> or -higher.</p> -</dd> -<dt>Notes:</dt> -<dd> -<p>Improvements to the platform's rendering library to support the visual layout editor in the ADT -Eclipse plugin. This revision allows for more drawing features in ADT and fixes several -bugs in the previous rendering library. It also unlocks several editor features that were added in -ADT 12.</p> -</dd> -</dl> - -</div> -</div> - - -<div class="toggle-content closed" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 2</a> <em>(May 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r11</a> or -higher.</p> -</dd> -<dt>Notes:</dt> -<dd> -<p>Fixes an issue with the visual layout editor rendering library that prevented Android 3.1 from -running in ADT.</p> -</dd> -</dl> - -</div> -</div> - - -<div class="toggle-content closed" style="padding-left:1em;"> - -<p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(May 2011)</em> -</a></p> - -<div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>Requires <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r11</a> or -higher.</p> -</dd> -</dl> - -</div> -</div> - - -<h2 id="#api" style="margin-top:1.5em;">API Overview</h2> - -<p>The sections below provide a technical overview of what's new for developers -in Android 3.1, including new features and changes in the framework API since -the previous version.</p> - -<h3 id="usb">USB APIs</h3> - -<p>Android 3.1 introduces powerful new APIs for -integrating connected peripherals with applications running on the platform. -The APIs are based on a USB (Universal Serial Bus) stack and services that are -built into the platform, including support for both USB host and device -interactions. Using the APIs, developers can create applications that are able to -discover, communicate with, and manage a variety of device types connected over -USB. </p> - -<p>The stack and APIs distinguish two basic types of USB hardware, based on -whether the Android-powered device is acting as host or the external hardware -is acting as host: </p> - -<ul> -<li>A <em>USB device</em> is a piece of connected hardware that depends on the -Android-powered device to serve as host. For example, most input devices, mice, -and joysticks are USB devices, as are many cameras, hubs, and so on.</li> -<li>A <em>USB accessory</em> is a piece of connected hardware that has a USB -host controller, provides power, and is designed to communicate with -Android-powered devices over USB, A variety of peripherals can connect as -accessories, from robotics controllers to musical equipment, exercise bicycles, -and more.</li> -</ul> - -<p>For both types — USB devices and USB accessories — the -platform's USB APIs support discovery by intent broadcast when attached or -detached, as well as standard interfaces, endpoints, and transfer modes -(control, bulk, and interrupt).</p> - -<p>The USB APIs are available in the package {@link android.hardware.usb}. The -central class is {@link android.hardware.usb.UsbManager}, which provides -helper methods for identifying and communicating with -both USB devices and USB accessories. Applications can acquire an instance of -{@link android.hardware.usb.UsbManager} and then query for the list of attached -devices or accessories and then communicate with or manage them. -{@link android.hardware.usb.UsbManager} also declares intent actions that the -system broadcasts, to announce when a USB device or accessory is attached or -detached.</p> - -<p>Other classes include:</p> - -<ul> -<li>{@link android.hardware.usb.UsbDevice}, a class representing external -hardware connected as a USB device (with the Android-powered device acting as -host).</li> -<li>{@link android.hardware.usb.UsbAccessory}, representing external hardware -connected as the USB host (with the Android-powered device acting as a USB -device).</li> -<li>{@link android.hardware.usb.UsbInterface} and {@link -android.hardware.usb.UsbEndpoint}, which provide access to standard USB -interfaces and endpoints for a device.</li> -<li>{@link android.hardware.usb.UsbDeviceConnection} and {@link -android.hardware.usb.UsbRequest}, for sending and receiving data and control -messages to or from a USB device, sychronously and asynchronously. -<li>{@link android.hardware.usb.UsbConstants}, which provides constants for -declaring endpoint types, device classes, and so on.</li> -</ul> - -<p>Note that although the USB stack is built into the platform, actual support -for USB host and open accessory modes on specific devices is determined by -their manufacturers. In particular, host mode relies on appropriate USB -controller hardware in the Android-powered device. </p> - -<p>Additionally, developers can request filtering on Google Play, such that -their applications are not availabe to users whose devices do not provide the -appropriate USB support. To request filtering, add one or both of the elements -below to the application manifest, as appropriate: </p> - -<ul> -<li>If the application should only be visible to devices that support USB -host mode (connection of USB devices), declare this element: - <p style="margin-left:1.5em;"><code><uses-feature - android:name="android.hardware.usb.host" - android:required="true"></code></p> -</li> -<li>If the application should only be visible to devices that support USB -accessories (connection of USB hosts), declare this element: - <p style="margin-left:1.5em;"><code><uses-feature - android:name="android.hardware.usb.accessory" - android:required="true"></code></p> -</li> -</ul> - -<p>For complete information about how to develop applications that interact with -USB accessories, please see the -<a href="{@docRoot}guide/topics/usb/index.html">developer documentation</a>.</p> - -<p class="note">To look at sample applications that use the USB host API, see <a -href="{@docRoot}resources/samples/USB/AdbTest/index.html">ADB Test</a> and <a -href="{@docRoot}resources/samples/USB/MissileLauncher/index.html">Missile -Launcher</a></p> - -<h3>MTP/PTP API</h3> - -<p>Android 3.1 exposes a new MTP API that lets applications interact directly -with connected cameras and other PTP devices. The new API makes it easy for an -application to receive notifications when devices are attached and removed, -manage files and storage on those devices, and transfer files and metadata to -and from them. The MTP API implements the PTP (Picture Transfer Protocol) subset -of the MTP (Media Transfer Protocol) specification.</p> - -<p>The MTP API is available in the {@link android.mtp} package and provides -these classes: </p> - -<ul> - <li>The {@link android.mtp.MtpDevice} encapsulates an MTP device that is -connected over the USB host bus. An application can instantiate an object of -this type and then use its methods to get information about the device and -objects stored on it, as well as opening the connection and transferring data. -Some of the methods include: - <ul> - <li>{@link android.mtp.MtpDevice#getObjectHandles(int, int, int) -getObjectHandles()} returns a list of handles for all objects on the device that -match a specified format and parent. To get information about an object, an -application can pass a handle to {@link android.mtp.MtpDevice#getObjectInfo(int) -getObjectInfo()}.</li> - <li>{@link android.mtp.MtpDevice#importFile(int, java.lang.String) -importFile()} lets an application copy data for an object to a file in external -storage. This call may block for an arbitrary amount of time depending on the -size of the data and speed of the devices, so should be made from a spearate -thread.</li> - <li>{@link -android.mtp.MtpDevice#open(android.hardware.usb.UsbDeviceConnection) open()} -lets an application open a connected MTP/PTP device. </li> - <li>{@link android.mtp.MtpDevice#getThumbnail(int) getThumbnail()} returns -the thumbnail of the object as a byte array. </li> - </ul> - </li> - <li>{@link android.mtp.MtpStorageInfo} holds information about about a storage -unit on an MTP device, corresponding to the StorageInfo Dataset described in -section 5.2.2 of the MTP specification. Methods in the class let an application -get a storage unit’s description string, free space, maximum storage capacity, -storage ID, and volume identifier.</li> - <li>{@link android.mtp.MtpDeviceInfo} holds information about an MTP device -corresponding to the DeviceInfo Dataset described in section 5.1.1 of the MTP -specification. Methods in the class let applications get a device’s -manufacturer, model, serial number, and version.</li> - <li>{@link android.mtp.MtpObjectInfo} holds information about an object stored -on an MTP device, corresponding to the ObjectInfo Dataset described in section -5.3.1 of the MTP specification. Methods in the class let applications get an -object’s size, data format, association type, creation date, and thumbnail -information.</li> - <li>{@link android.mtp.MtpConstants} provides constants for declaring MTP file -format codes, association type, and protection status.</li> -</ul> - -<h3 id="motionevents">Support for new input devices and motion events</h3> - -<p>Android 3.1 extends the input subsystem to support new input devices and new -types of motion events, across all views and windows. Developers can build on -these capabilities to let users interact with their applications using mice, -trackballs, joysticks, gamepads, and other devices, in addition to keyboards and -touchscreens. </p> - -<p>For handling mouse, scrollwheel, and trackball input, the platform supports -two new motion event actions:</p> -<ul> -<li>{@link android.view.MotionEvent#ACTION_SCROLL}, which describes the pointer -location at which a non-touch scroll motion, such as from a mouse scroll wheel, -took place. In the MotionEvent, the value of the {@link -android.view.MotionEvent#AXIS_HSCROLL} and {@link -android.view.MotionEvent#AXIS_VSCROLL} axes specify the relative scroll -movement. </li> -<li>{@link android.view.MotionEvent#ACTION_HOVER_MOVE}, reports the current -position of the mouse when no buttons are pressed, as well as any intermediate -points since the last <code>HOVER_MOVE</code> event. Hover enter and exit -notifications are not yet supported.</li> -</ul> - -<p>To support joysticks and gamepads, the {@link android.view.InputDevice} class -includes these new input device sources:</p> -<ul> -<li>{@link android.view.InputDevice#SOURCE_CLASS_JOYSTICK} — the source -device has joystick axes.</li> -<li>{@link android.view.InputDevice#SOURCE_CLASS_BUTTON} — the source -device has buttons or keys.</li> -<li>{@link android.view.InputDevice#SOURCE_GAMEPAD} — the source device -has gamepad buttons such as {@link android.view.KeyEvent#KEYCODE_BUTTON_A} -or {@link android.view.KeyEvent#KEYCODE_BUTTON_B}. Implies -{@link android.view.InputDevice#SOURCE_CLASS_BUTTON}</li> -<li>{@link android.view.InputDevice#SOURCE_JOYSTICK} — the source device -has joystick axes. Implies SOURCE_CLASS_JOYSTICK.</li> -</ul> - -<p>To describe motion events from these new sources, as well as those from mice -and trackballs, the platform now defines axis codes on {@link -android.view.MotionEvent}, similar to how it defines key codes on {@link -android.view.KeyEvent}. New axis codes for joysticks -and game controllers include -{@link android.view.MotionEvent#AXIS_HAT_X}, {@link -android.view.MotionEvent#AXIS_HAT_Y}, {@link -android.view.MotionEvent#AXIS_RTRIGGER}, {@link -android.view.MotionEvent#AXIS_ORIENTATION}, {@link -android.view.MotionEvent#AXIS_THROTTLE}, and many others. -Existing {@link android.view.MotionEvent} axes are represented by {@link -android.view.MotionEvent#AXIS_X}, {@link android.view.MotionEvent#AXIS_Y}, -{@link android.view.MotionEvent#AXIS_PRESSURE}, {@link -android.view.MotionEvent#AXIS_SIZE}, {@link -android.view.MotionEvent#AXIS_TOUCH_MAJOR}, {@link -android.view.MotionEvent#AXIS_TOUCH_MINOR}, {@link -android.view.MotionEvent#AXIS_TOOL_MAJOR}, {@link -android.view.MotionEvent#AXIS_TOOL_MINOR}, and {@link -android.view.MotionEvent#AXIS_ORIENTATION}.</p> - -<p>Additionally, {@link android.view.MotionEvent} defines a number of generic -axis codes that are used when the framework does not know how to map a -particular axis. Specific devices can use the generic axis codes to pass custom -motion data to applications. For a full list of axes and their intended -interpretations, see the {@link android.view.MotionEvent} class documentation. -</p> - -<p>The platform provides motion events to applications in batches, so a single -event may contain a current position and multiple so-called historical movements. -Applications should use {@link android.view.MotionEvent#getHistorySize()} to get -the number of historical samples, then retrieve and process all historical -samples in order using {@link -android.view.MotionEvent#getHistoricalAxisValue(int, int, int) -getHistoricalAxisValue()}. After that, applications should process the current -sample using {@link android.view.MotionEvent#getAxisValue(int) getAxisValue()}. -</p> - -<p>Some axes can be retrieved using special accessor methods. For example, -instead of calling {@link android.view.MotionEvent#getAxisValue(int) -getAxisValue()}, applications can call {@link android.view.MotionEvent#getX(int) -getX()}. Axes that have built-in accessors include {@link -android.view.MotionEvent#AXIS_X}, {@link android.view.MotionEvent#AXIS_Y}, -{@link android.view.MotionEvent#AXIS_PRESSURE}, {@link -android.view.MotionEvent#AXIS_SIZE}, {@link -android.view.MotionEvent#AXIS_TOUCH_MAJOR}, {@link -android.view.MotionEvent#AXIS_TOUCH_MINOR}, {@link -android.view.MotionEvent#AXIS_TOOL_MAJOR}, {@link -android.view.MotionEvent#AXIS_TOOL_MINOR}, and {@link -android.view.MotionEvent#AXIS_ORIENTATION}.</p> - -<p>Each input device has a unique, system-assigned ID and may also provide -multiple sources. When a device provides multiple sources, more than one source -can provide axis data using the same axis. For example, a touch event coming -from the touch source uses the X axis for screen position data, while a joystick -event coming from the joystick source will use the X axis for the stick position -instead. For this reason, it's important for applications to interpret axis -values according to the source from which they originate. When handling a motion -event, applications should use methods on the {@link android.view.InputDevice} -class to determine the axes supported by a device or source. Specifically, -applications can use {@link android.view.InputDevice#getMotionRanges() -getMotionRanges()} to query for all axes of a device or all axes of a given -source of the device. In both cases, the range information for axes returned in -the {@link android.view.InputDevice.MotionRange} object specifies the source for -each axis value.</p> - -<p>Finally, since the motion events from joysticks, gamepads, mice, and -trackballs are not touch events, the platform adds a new callback method for -passing them to a {@link android.view.View} as "generic" motion events. -Specifically, it reports the non-touch motion events to -{@link android.view.View}s through a call to {@link -android.view.View#onGenericMotionEvent(android.view.MotionEvent) -onGenericMotionEvent()}, rather than to {@link -android.view.View#onTouchEvent(android.view.MotionEvent) -onTouchEvent()}.</p> - -<p>The platform dispatches generic motion events differently, depending on the -event source class. {@link android.view.InputDevice#SOURCE_CLASS_POINTER} events -go to the {@link android.view.View} under the pointer, similar to how touch -events work. All others go to the currently focused {@link android.view.View}. -For example, this means a {@link android.view.View} must take focus in order to -receive joystick events. If needed, applications can handle these events at the -level of Activity or Dialog by implementing {@link -android.view.View#onGenericMotionEvent(android.view.MotionEvent) -onGenericMotionEvent()} there instead.</p> - -<p class="note">To look at a sample application that uses joystick motion -events, see <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/GameControllerInput.html">GameControllerInput</a> -and <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/GameView.html">GameView</a>.</p> - -<h3>RTP API</h3> - -<p>Android 3.1 exposes an API to its built-in RTP (Real-time Transport Protocol) -stack, which applications can use to manage on-demand or interactive data -streaming. In particular, apps that provide VOIP, push-to-talk, conferencing, -and audio streaming can use the API to initiate sessions and transmit or receive -data streams over any available network.</p> - -<p>The RTP API is available in the {@link android.net.rtp} package. Classes -include: </p> -<ul> -<li>{@link android.net.rtp.RtpStream}, the base class of streams that send and -receive network packets with media payloads over RTP.</li> -<li>{@link android.net.rtp.AudioStream}, a subclass of {@link -android.net.rtp.RtpStream} that carries audio payloads over RTP.</li> -<li>{@link android.net.rtp.AudioGroup}, a local audio hub for managing and -mixing the device speaker, microphone, and {@link android.net.rtp.AudioStream}.</li> -<li>{@link android.net.rtp.AudioCodec}, which holds a collection of codecs that -you define for an {@link android.net.rtp.AudioStream}.</li> -</ul> - -<p>To support audio conferencing and similar usages, an application instantiates -two classes as endpoints for the stream:</p> - -<ul> -<li>{@link android.net.rtp.AudioStream} specifies a remote endpoint and consists -of network mapping and a configured {@link android.net.rtp.AudioCodec}.</li> -<li>{@link android.net.rtp.AudioGroup} represents the local endpoint for one -or more {@link android.net.rtp.AudioStream}s. The {@link android.net.rtp.AudioGroup} mixes -all the {@link android.net.rtp.AudioStream}s and optionally interacts with the device -speaker and the microphone at the same time.</li> -</ul> - -<p>The simplest usage involves a single remote endpoint and local endpoint. -For more complex usages, please refer to the limitations described for -{@link android.net.rtp.AudioGroup}.</p> - -<p>To use the RTP API, applications must request permission from the user by -declaring <code><uses-permission -android:name="android.permission.INTERNET"></code> -in their manifest files. To acquire the device microphone, the <code><uses-permission -android:name="android.permission.RECORD_AUDIO"></code> permission is also required.</p> - -<h3 id="resizewidgets">Resizable app widgets</h3> - -<p>Starting in Android 3.1, developers can make their homescreen widgets -resizeable — horizontally, vertically, or on both axes. Users touch-hold a -widget to show its resize handles, then drag the horizontal and/or vertical -handles to change the size on the layout grid. </p> - -<p>Developers can make any Home screen widget resizeable by defining a -<code>resizeMode</code> attribute in the widget's {@link -android.appwidget.AppWidgetProviderInfo} metadata. Values for the -<code>resizeMode</code> attribute include "horizontal", "vertical", and "none". -To declare a widget as resizeable horizontally and vertically, supply the value -"horizontal|vertical". - -<p>Here's an example: </p> - -<pre><appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" - android:minWidth="294dp" - android:minHeight="72dp" - android:updatePeriodMillis="86400000" - android:previewImage="@drawable/preview" - android:initialLayout="@layout/example_appwidget" - android:configure="com.example.android.ExampleAppWidgetConfigure" - android:resizeMode="horizontal|vertical" > -</appwidget-provider></pre> - -<p>For more information about Home screen widgets, see the <a -href="{@docRoot}guide/topics/appwidgets/index.html">App Widgets</a> -documentation.</p> - -<h3 id="animation" style="margin-top:1.25em;">Animation framework</h3> - -<ul> -<li>New ViewPropertyAnimator class - <ul> - <li>A new {@link android.view.ViewPropertyAnimator} class provides a -convenient -way for developers to animate select properties on {@link android.view.View} objects. The class -automaties and optimizes the animation of the properties and makes it easier to -manage multiple simulataneous animations on a {@link android.view.View} object. -<p>Using the {@link android.view.ViewPropertyAnimator} is straightforward. To animate properties for -a {@link android.view.View}, call {@link android.view.View#animate()} to -construct a {@link android.view.ViewPropertyAnimator} object for that {@link android.view.View}. Use the -methods on the {@link android.view.ViewPropertyAnimator} to specify what property to -animate and how to animate it. For example, to fade the {@link android.view.View} to transparent, -call <code>alpha(0);</code>. The {@link android.view.ViewPropertyAnimator} object -handles the details of configuring the underlying {@link -android.animation.Animator} class and starting it, then rendering the -animation.</p></li> - </ul> -</li> -<li>Animation background color - <ul> - <li>New {@link android.view.animation.Animation#getBackgroundColor()} and - {@link android.view.animation.Animation#setBackgroundColor(int)} methods let - you get/set the background color behind animations, for window animations -only. Currently the background must be black, with any desired alpha level.</li> - </ul> -</li> -<li>Getting animated fraction from <code>ViewAnimator</code> - <ul> - <li>A new {@link android.animation.ValueAnimator#getAnimatedFraction()} -method -lets you get the current animation fraction — the elapsed/interpolated -fraction used in the most recent frame update — from a {@link -android.animation.ValueAnimator}.</li> - </ul> -</li> -</ul> - -<h3 "ui">UI framework</h3> -<ul> -<li>Forced rendering of a layer - <ul> - <li>A new {@link android.view.View#buildLayer()} method lets an application -force a View's layer to be created and the View rendered into it immediately. -For example, an application could use this method to render a View into its -layer before starting an animation. If the View is complex, rendering it into -the layer before starting the animation will avoid skipping frames.</li> - </ul> -</li> -<li>Camera distance - <ul> - <li>Applications can use a new method -{@link android.view.View#setCameraDistance(float)} to set the distance from the -camera -to a View. This gives applications improved control over 3D transformations of -the View, such as rotations. </li> - </ul> -</li> -<li>Getting a calendar view from a DatePicker - <ul> - <li>A new {@link android.widget.DatePicker#getCalendarView()} method - lets you get a {@link android.widget.CalendarView} from a {@link -android.widget.DatePicker} - instance.</li> - </ul> -</li> -<li>Getting callbacks when views are detached - <ul> - <li>A new {@link android.view.View.OnAttachStateChangeListener} lets you -receive -callbacks when a View is attached or detached from its window. Use {@link -android.view.View#addOnAttachStateChangeListener(android.view.View.OnAttachStateChangeListener) addOnAttachStateChangeListener()} -to add a listener and {@link -android.view.View#removeOnAttachStateChangeListener(android.view.View.OnAttachStateChangeListener) addOnAttachStateChangeListener()} to remove it.</li> - </ul> -</li> -<li>Fragment breadcrumb listener, new onInflate() signature - <ul> - <li>A new method, {@link -android.app.FragmentBreadCrumbs#setOnBreadCrumbClickListener(android.app.FragmentBreadCrumbs.OnBreadCrumbClickListener) setOnBreadCrumbClickListener()}, -provides a hook to let -applications intercept fragment-breadcrumb clicks and take any action needed -before going to the backstack entry or fragment that was clicked. </li> - <li>In the {@link android.app.Fragment} class, {@link -android.app.Fragment#onInflate(android.util.AttributeSet, android.os.Bundle) -onInflate(attrs, savedInstanceState)} is deprecated. Please use {@link -android.app.Fragment#onInflate(android.app.Activity, android.util.AttributeSet, -android.os.Bundle) onInflate(activity, attrs, savedInstanceState)} instead.</li> - </ul> -</li> -<li>Display search result in new tab - <ul> - <li>An {@link android.app.SearchManager#EXTRA_NEW_SEARCH} data key for {@link -android.content.Intent#ACTION_WEB_SEARCH} intents lets you open a search in a -new browser tab, rather than in an existing one.</li> - </ul> -</li> - -<li>Drawable text cursor - <ul> -<li>You can now specify a drawable to use as the text cursor using the new -resource attribute {@link android.R.attr#textCursorDrawable}.</li> - </ul> -</li> -<li>Setting displayed child in remote views - <ul> - <li>A new convenience method, {@link -android.widget.RemoteViews#setDisplayedChild(int, int) setDisplayedChild(viewId, -childIndex)}, is available in {@link android.widget.RemoteViews} subclasses, to -let you set the child displayed in {@link android.widget.ViewAnimator} and -{@link android.widget.AdapterViewAnimator} subclasses such as {@link -android.widget.AdapterViewFlipper}, {@link android.widget.StackView}, {@link -android.widget.ViewFlipper}, and {@link android.widget.ViewSwitcher}.</li> - </ul> -</li> -<li>Generic keys for gamepads and other input devices - <ul> - <li>{@link android.view.KeyEvent} adds a range of generic keycodes to - accommodate gamepad buttons. The class also adds - {@link android.view.KeyEvent#isGamepadButton(int)} and several other - helper methods for working with keycodes.</li> - </ul> -</li> -</ul> - -<h3 id="graphics" style="margin-top:1.3em;">Graphics</h3> - -<ul> -<li>Helpers for managing bitmaps - <ul> - <li>{@link android.graphics.Bitmap#setHasAlpha(boolean)} lets an app indicate that -all of the pixels in a Bitmap are known to be opaque (false) or that some of the -pixels may contain non-opaque alpha values (true). Note, for some configs (such -as RGB_565) this call is ignored, since it does not support per-pixel alpha -values. This is meant as a drawing hint, as in some cases a bitmap that is known -to be opaque can take a faster drawing case than one that may have non-opaque -per-pixel alpha values. </li> - <li>{@link android.graphics.Bitmap#getByteCount()} gets a Bitmap's size in -bytes.</li> - <li>{@link android.graphics.Bitmap#getGenerationId()} lets an application find -out whether a Bitmap has been modified, such as for caching.</li> - <li>{@link android.graphics.Bitmap#sameAs(android.graphics.Bitmap)} determines -whether a given Bitmap differs from the current Bitmap, in dimension, -configuration, or pixel data. </li> - </ul> -</li> -<li>Setting camera location and rotation - <ul> - <li>{@link android.graphics.Camera} adds two new methods {@link -android.graphics.Camera#rotate(float, float, float) rotate()} and {@link -android.graphics.Camera#setLocation(float, float, float) setLocation()} for -control of the -camera's location, for 3D transformations.</li> -</ul> -</li> -</ul> - -<h3 id="network" style="margin-top:1.25em;">Network</h3> - -<ul> -<li>High-performance Wi-Fi lock - <ul> - <li>A new high-performance Wi-Fi lock lets applications maintain -high-performance Wi-Fi connections even when the device screen is off. -Applications that stream music, video, or voice for long periods can acquire the -high-performance Wi-Fi lock to ensure streaming performance even when the screen -is off. Because it uses more power, applications should acquire the -high-performance Wi-Fi when there is a need for a long-running active -connection. -<p>To create a high-performance lock, pass {@link -android.net.wifi.WifiManager#WIFI_MODE_FULL_HIGH_PERF} as the lock mode in a -call to {@link android.net.wifi.WifiManager#createWifiLock(int, -java.lang.String) createWifiLock()}.</p></li> - </ul> -</li> -<li>More traffic stats - <ul> - <li>Applications can now access statistics about more types of network usage -using new methods in {@link android.net.TrafficStats}. Applications can use the -methods to get UDP stats, packet count, TCP transmit/receive payload bytes and -segments for a given UID.</li> - </ul> -</li> -<li>SIP auth username - <ul> - <li>Applications can now get and set the SIP auth username for a profile -using -the new methods {@link android.net.sip.SipProfile#getAuthUserName() -getAuthUserName()} and {@link -android.net.sip.SipProfile.Builder#setAuthUserName(java.lang.String) -setAuthUserName()}.</li> - </ul> -</li> -</ul> - - -<h3 id="download" style="margin-top:1.25em;">Download Manager</h3> -<ul> -<li>Handling of completed downloads - <ul> - <li>Applications can now initiate downloads that notify users only on -completion. To initiate this type of download, applications pass {@link -android.app.DownloadManager.Request#VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION} -in the {@link -android.app.DownloadManager.Request#setNotificationVisibility(int) -setNotificationVisibility()} method of -the a request object.</li> - <li>A new method, {@link -android.app.DownloadManager#addCompletedDownload(java.lang.String, -java.lang.String, boolean, java.lang.String, java.lang.String, long, boolean) -addCompletedDownload()}, lets an application add a file to the -downloads database, so that it can be managed by the Downloads application.</li> - </ul> -</li> -<li>Show downloads sorted by size - <ul> - <li>Applications can start the Downloads application in sort-by-size mode by -adding the new extra {@link -android.app.DownloadManager#INTENT_EXTRAS_SORT_BY_SIZE} to an {@link -android.app.DownloadManager#ACTION_VIEW_DOWNLOADS} intent.</li> - </ul> -</li> -</ul> - -<h3 id="ime" style="margin-top:1.25em;">IME framework</h3> - -<ul> -<li>Getting an input method's extra value key - <ul><li>The {@link android.view.inputmethod.InputMethodSubtype} adds the -method -{@link -android.view.inputmethod.InputMethodSubtype#containsExtraValueKey(java.lang.String) containsExtraValueKey()} to check whether an ExtraValue string is stored -for the subtype and -the method {@link -android.view.inputmethod.InputMethodSubtype#getExtraValueOf(java.lang.String) -getExtraValueOf()} to extract a specific key value from the ExtraValue hashmap. -</li> - </ul> -</li> -</ul> - -<h3 id="media" style="margin-top:1.25em;">Media</h3> - -<ul> -<li>New streaming audio formats - <ul> - <li>The media framework adds built-in support for raw ADTS AAC content, for -improved streaming audio, as well as support for FLAC audio, for highest quality -(lossless) compressed audio content. See the <a -href="{@docRoot}guide/appendix/media-formats.html">Supported Media Formats</a> -document for more information.</p></li> - </ul> -</li> -</ul> - -<h3 id="launchcontrols" style="margin-top:1.25em;">Launch controls on stopped -applications</h3> - -<p>Starting from Android 3.1, the system's package manager keeps track of -applications that are in a stopped state and provides a means of controlling -their launch from background processes and other applications.</p> - -<p>Note that an application's stopped state is not the same as an Activity's -stopped state. The system manages those two stopped states separately.</p> - -<p>The platform defines two new intent flags that let a sender specify -whether the Intent should be allowed to activate components in stopped -application.</p> - -<ul> -<li>{@link android.content.Intent#FLAG_INCLUDE_STOPPED_PACKAGES} — -Include intent filters of stopped applications in the list of potential targets -to resolve against. </li> -<li>{@link android.content.Intent#FLAG_EXCLUDE_STOPPED_PACKAGES} — -Exclude intent filters of stopped applications from the list of potential -targets.</li> -</ul> - -<p>When neither or both of these flags is defined in an intent, the default -behavior is to include filters of stopped applications in the list of -potential targets.</p> - -<p>Note that the system adds {@link -android.content.Intent#FLAG_EXCLUDE_STOPPED_PACKAGES} <em>to all broadcast -intents</em>. It does this to prevent broadcasts from background services from -inadvertently or unnecessarily launching components of stoppped applications. -A background service or application can override this behavior by adding the -{@link android.content.Intent#FLAG_INCLUDE_STOPPED_PACKAGES} flag to broadcast -intents that should be allowed to activate stopped applications.</p> - -<p>Applications are in a stopped state when they are first installed but are not -yet launched and when they are manually stopped by the user (in Manage -Applications).</p> - -<h3 id="installnotification">Notification of application first launch and upgrade</h3> - -<p>The platform adds improved notification of application first launch and -upgrades through two new intent actions:</p> - -<ul> -<li>{@link android.content.Intent#ACTION_PACKAGE_FIRST_LAUNCH} — Sent to -the installer package of an application when that application is first launched -(that is, the first time it is moved out of a stopped state). The data -contains the name of the package. </li> - -<li>{@link android.content.Intent#ACTION_MY_PACKAGE_REPLACED} — Notifies -an application that it was updated, with a new version was installed over -an existing version. This is only sent to the application that was replaced. It -does not contain any additional data. To receive it, declare an intent filter -for this action. You can use the intent to trigger code that helps get your -application back in proper running shape after an upgrade. - -<p>This intent is sent directly to the application, but only if the application -was upgraded while it was in started state (not in a stopped state).</p></li> - -</ul> - -<h3 id="other">Core utilities</h3> - -<ul> -<li>LRU cache - <ul> - <li>A new {@link android.util.LruCache} class lets your applications benefit -from efficient caching. Applications can use the class to reduce the time spent -computing or downloading data from the network, while maintaining a sensible -memory footprint for the cached data.{@link android.util.LruCache} is a cache -that holds strong references to a limited number of values. Each time a value is -accessed, it is moved to the head of a queue. When a value is added to a full -cache, the value at the end of that queue is evicted and may become eligible for -garbage collection.</li> - </ul> -</li> -<li>File descriptor as <code>int</code> - <ul> - <li>You can now get the native file descriptor int for a {@link -android.os.ParcelFileDescriptor} using either of the new methods {@link -android.os.ParcelFileDescriptor#getFd()} or {@link -android.os.ParcelFileDescriptor#detachFd()}. </li> - </ul> -</li> -</ul> - - - - - - -<h3 id="webkit" style="margin-top:1.25em;">WebKit</h3> - -<ul> - -<li>File scheme cookies - <ul> - <li>The {@link android.webkit.CookieManager} now supports cookies that use -the -<code>file:</code> URI scheme. You can use {@link -android.webkit.CookieManager#setAcceptFileSchemeCookies(boolean) -setAcceptFileSchemeCookies()} to -enable/disable support for file scheme cookies, before constructing an instance -of <code>WebView</code> or <code>CookieManager</code>. In a -<code>CookieManager</code> instance, you can check whether file scheme cookies -is enabled by calling {@link -android.webkit.CookieManager#allowFileSchemeCookies()}.</li> - </ul> -</li> -<li>Notification of login request - <ul> - <li>To support the browser autologin features introduced in Android 3.0, the -new -method {@link -android.webkit.WebViewClient#onReceivedLoginRequest(android.webkit.WebView,java.lang.String, java.lang.String, java.lang.String) onReceivedLoginRequest()} -notifies the host -application that an autologin request for the user was processed. </li> - </ul> -</li> -<li>Removed classes and interfaces - <ul> - <li>Several classes and interfaces were removed from the public API, after -previously being in deprecated state. See the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a> for more information.</p></li> - </ul> - </li> -</ul> - - - -<h3 id="browser" style="margin-top:1.25em;">Browser</h3> - -<p>The Browser application adds the following features to support web -applications:</p> - -<ul> -<li>Support for inline playback of video embedded in HTML5 -<code><video></code> tag. Playback is hardware-accelerated where possible. -</li> -<li>Layer support for fixed position elements for all sites (mobile and -desktop).</li> -</ul> - - - - - -<h3 id="features">New feature constants</h3> - -<p>The platform adds new hardware feature constants that developers can declare -in their application manifests, to inform external entities such as Google -Play of the application's requirement for new hardware capabilities supported -in this version of the platform. Developers declare these and other feature -constants in <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code -<uses-feature>}</a> manifest elements. - -<ul> - <li>{@link android.content.pm.PackageManager#FEATURE_USB_ACCESSORY -android.hardware.usb.accessory} — The application uses the <a href="#usb">USB -API</a> to communicate with external hardware devices connected over USB and -function as hosts.</li> - <li>{@link android.content.pm.PackageManager#FEATURE_USB_HOST -android.hardware.usb.host} — The application uses the <a href="#usb">USB API</a> -to communicate with external hardware devices connected over USB and function as -devices.</li> -</ul> - -<p>Google Play filters applications based on features declared in <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code -<uses-feature>}</a> manifest elements. For more information about -declaring features in an application manifest, read <a -href="{@docRoot}guide/appendix/market-filters.html">Google Play -Filters</a>.</p> - - - -<h3 id="api-diff">API Differences Report</h3> - -<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API -Level -{@sdkPlatformApiLevel}), see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a>.</p> - - - - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, -you need compile the application against the Android library that is provided in -the Android {@sdkPlatformVersion} SDK platform. Depending on your needs, you -might -also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> -attribute to the <code><uses-sdk></code> element in the application's -manifest.</p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>API Demos</li> -<li>Browser</li> -<li>Calculator</li> -<li>Camera</li> -<li>Clock</li> -<li>Contacts</li> -<li>Custom Locale</li> -<li>Dev Tools</li> -<li>Downloads</li> -<li>Email</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Gallery</li> -<li>Gestures Builder</li> -<li>Messaging</li> -<li>Music</li> -<li>Search</li> -<li>Settings</li> -<li>Spare Parts</li> -<li>Speech Recorder</li> -<li>Widget Preview</li> -</ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable SDK platform provides a variety -of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android 3.0 system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Arabic, Egypt (ar_EG)</li> -<li>Arabic, Israel (ar_IL)</li> -<li>Bulgarian, Bulgaria (bg_BG)</li> -<li>Catalan, Spain (ca_ES)</li> -<li>Czech, Czech Republic (cs_CZ)</li> -<li>Danish, Denmark(da_DK)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Greek, Greece (el_GR)</li> -<li>English, Australia (en_AU)</li> -<li>English, Canada (en_CA)</li> -<li>English, Britain (en_GB)</li> -<li>English, Ireland (en_IE)</li> -<li>English, India (en_IN)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>English, US (en_US)</li> -<li>English, South Africa (en_ZA)</li> -<li>Spanish (es_ES)</li> -<li>Spanish, US (es_US)</li> -<li>Finnish, Finland (fi_FI)</li> -<li>French, Belgium (fr_BE)</li> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>French, France (fr_FR)</li> -<li>Hebrew, Israel (he_IL)</li> -<li>Hindi, India (hi_IN)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>Croatian, Croatia (hr_HR)</li> -<li>Hungarian, Hungary (hu_HU)</li> -<li>Indonesian, Indonesia (id_ID)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Italian, Italy (it_IT)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Lithuanian, Lithuania (lt_LT)</li> -<li>Latvian, Latvia (lv_LV)</li> -<li>Norwegian bokmål, Norway (nb_NO)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Polish (pl_PL)</li> -<li>Portuguese, Brazil (pt_BR)</li> -<li>Portuguese, Portugal (pt_PT)</li> -<li>Romanian, Romania (ro_RO)</li> -<li>Russian (ru_RU)</li></li> -<li>Slovak, Slovakia (sk_SK)</li> -<li>Slovenian, Slovenia (sl_SI)</li> -<li>Serbian (sr_RS)</li> -<li>Swedish, Sweden (sv_SE)</li> -<li>Thai, Thailand (th_TH)</li> -<li>Tagalog, Philippines (tl_PH)</li> -<li>Turkish, Turkey (tr_TR)</li> -<li>Ukrainian, Ukraine (uk_UA)</li> -<li>Vietnamese, Vietnam (vi_VN)</li> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -</td> -</tr> -</table> - -<p class="note"><strong>Note:</strong> The Android platform may support more -locales than are included in the SDK system image. All of the supported locales -are available in the <a href="http://source.android.com/">Android Open Source -Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes the following emulator skin:</p> - -<ul> - <li> - WXGA (1280x800, medium density, xlarge screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays -and functions properly on all Android-powered devices, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p>
\ No newline at end of file diff --git a/docs/html/sdk/android-3.2.jd b/docs/html/sdk/android-3.2.jd deleted file mode 100644 index 27df22c..0000000 --- a/docs/html/sdk/android-3.2.jd +++ /dev/null @@ -1,741 +0,0 @@ -page.title=Android 3.2 Platform -sdk.platform.version=3.2 -sdk.platform.apiLevel=13 -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#highlights">Highlights</a></li> - <li><a href="#api">API Overview</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/13/changes.html">API -Differences Report »</a> </li> -</ol> - -<h2>See Also</h2> -<ol> - <li><a href="{@docRoot}guide/practices/screens_support.html">Supporting - Multiple Screens</a></li> - <li><a href="{@docRoot}guide/practices/optimizing-for-3.0.html">Optimizing -Apps for Android 3.x</a></li> -</ol> - -</div> -</div> - - -<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Welcome to Android 3.2!</p> - -<p>Android 3.2 is an incremental platform release that adds new -capabilities for users and developers. The sections below provide an overview -of the new features and developer APIs.</p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The downloadable platform includes -an Android library and system image, as well as a set of emulator skins and -more. The downloadable platform includes no external libraries.</p> - -<p>To get started developing or testing against Android {@sdkPlatformVersion}, -use the Android SDK Manager to download the platform into your SDK. For more -information, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>. If you are new to Android, <a -href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> first.</p> - -<p class="note"><strong>Reminder:</strong> If you've already published an -Android application, please test and optimize your application on Android 3.2 as -soon as possible. You should do so to be sure your application provides the best -experience possible on the latest Android-powered devices. For information about -what you can do, read <a -href="{@docRoot}guide/practices/optimizing-for-3.0.html">Optimizing Apps for -Android 3.x</a>.</p> - - -<h2 id="relnotes">Revisions</h2> - -<p>To determine what revision of the Android {@sdkPlatformVersion} platform you -have installed, refer to the "Installed Packages" listing in the Android SDK and -AVD Manager.</p> - - -<div class="toggle-content opened" style="padding-left:1em;"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(July 2011)</em> - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em;"> - -<dl> -<dt>Initial release. SDK Tools r12 or higher is recommended.</dt> -</dl> - - </div> -</div> - -<h2 id="highlights" style="margin-top:1.5em;">Platform Highlights</h2> - -<h3>New user features</h3> - -<ul> -<li><strong>Optimizations for a wider range of tablets</strong> - -<p>Android 3.2 includes a variety of optimizations across the system -to ensure a great user experience on a wider range of tablet devices.</p></li> - -<li><strong>Compatibility zoom for fixed-sized apps</strong> - -<p>Android 3.2 introduces a new <em>compatibility zoom</em> mode that gives -users a new way to view fixed-sized apps on larger devices. The new mode provides a -pixel-scaled alternative to the standard UI stretching for apps that are not -designed to run on larger screen sizes, such as on tablets. The new mode is -accessible to users from a menu icon in the system bar, for apps that need -compatibility support.</p></li> - -<li><strong>Media sync from SD card</strong> -<p>On devices that support an SD card, users can now load media files directly -from the SD card to apps that use them. A system facility makes the files -accessible to apps from the system media store.</p></li> -</ul> - - -<h3>New developer features</h3> - -<ul> -<li><strong>Extended API for managing screens support</strong> - -<p>Android 3.2 introduces extensions to the platform's screen support API to -give developers additional ways to manage application UI across the range of -Android-powered devices. The API includes new resource qualifiers and new -manifest attributes that give you more precise control over how your -apps are displayed on different sizes, rather than relying on generalized -size categories.</p> - -<p>To ensure the best possible display for fixed-sized apps and apps with limited -support for various screen sizes, the platform also provides a new zoom -compatibility mode that renders the UI on a smaller screen area, then scales it -up to fill the space available on the display. For more information about the -screen support API and the controls it provides, see the sections below. </p></li> -</ul> - - -<h2 id="api">API Overview</h2> - -<h3 id="usb">Screens Support APIs</h3> - -<p>Android 3.2 introduces new screens support APIs that give you more -control over how their applications are displayed across different screen sizes. -The API builds on the existing screens-support API, including the platform's -generalized screen density model, but extends it with the ability to precisely -target specific screen ranges by their dimensions, measured in -density-independent pixel units (such as 600dp or 720dp wide), rather than -by their generalized screen sizes (such as large or xlarge)</p> - -<p>When designing an application's UI, you can still rely on the platform to -provide density abstraction, which means that applications do not need to -compensate for the differences in actual pixel density across devices. You -can design the application UI according to the amount of horizontal or vertical -space available. The platform expresses the amount of space available using three new -characteristics: <em>smallestWidth</em>, <em>width</em>, and -<em>height</em>.</p> - -<ul> -<li>A screen's <em>smallestWidth</em> is its fundamental minimum size, -measured in density-independent pixel ("dp") units. Of the screen's height or -width, it is the shorter of the two. For a screen in portrait orientation, the -smallestWidth is normally based on its width, while in landscape orientation it is based -on its height. In all cases, the smallestWidth is derived from a fixed characteristic of the -screen and the value does not change, regardless of orientation. The smallestWidth -is important for applications because it represents the shortest possible width -in which the application UI will need to be drawn, not including screen areas -reserved by the system. -</li> - -<li>In contrast, a screen's <em>width</em> and <em>height</em> represent the -current horizontal or vertical space available for application layout, measured -in "dp" units, not including screen areas reserved by the system. The width and -height of a screen change when the user switches orientation between landscape -and portrait. </li> - -</ul> - -<p>The new screens support API is designed to let you manage application UI -according to the smallestWidth of the current screen. You can also manage the -UI according to current width or height, as needed. For those purposes, the API -provides these tools:</p> - -<ul> -<li>New resource qualifiers for targeting layouts and other resources to a -minimum smallestWidth, width, or height, and</li> -<li>New manifest attributes, for specifying the app's maximum -screen compatibility range</li> -</ul> - -<p>Additionally, applications can still query the system and manage UI and -resource loading at runtime, as in the previous versions of the platform.</p> - -<p>Since the new API lets you target screens more directly through smallestWidth, -width, and height, it's helpful to understand the typical -characteristics of the different screen types. The table below provides some -examples, measured in "dp" units. </p> - -<p class="caption"><strong>Table 1.</strong> Typical devices, with density -and size in dp.</p> - -<table> -<tr> -<th>Type</th> -<th>Density (generalized)</th> -<th>Dimensions (dp)</th> -<th>smallestWidth (dp)</th> -</tr> -<tr> -<td>Baseline phone</td> -<td>mdpi</td> -<td>320x480</td> -<td>320</td> -</td> -<tr> -<td>Small tablet/large phone</td> -<td>mdpi</td> -<td>480x800</td> -<td>480</td> -</tr> -<tr> -<td>7-inch tablet</td> -<td>mdpi</td> -<td>600x1024</td> -<td>600</td> -</tr> -<tr> -<td>10-inch tablet</td> -<td>mdpi</td> -<td>800x1280</td> -<td>800</td> -</tr> -</table> - -<p>The sections below provide more information about the new screen qualifiers -and manifest attributes. For complete information about how to use the screen -support API, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p> - -<h4>New resource qualifiers for screens support</h4> - -<p>The new resource qualifiers in Android 3.2 let you better target your layouts -for ranges of screen sizes. Using the qualifiers, you can create resource -configurations designed for a specific minimum smallestWidth, current width, or -current height, measured in density-independent pixels.</p> - -<p>The new qualifiers are:</p> -<ul> -<li><code>swNNNdp</code> — Specifies the minimum smallestWidth on which -the resource should be used, measured in "dp" units. As mentioned above, a -screen's smallestWidth is constant, regardless of orientation. Examples: -<code>sw320dp</code>, <code>sw720dp</code>, <code>sw720dp</code>.</li> - -<li><code>wNNNdp</code> and <code>hNNNdp</code> — Specifies the minimum -width or height on which the resource should be used, measured in "dp" units. As -mentioned above, a screen's width and height are relative to the orientation of -the screen and change whenever the orientation changes. Examples: -<code>w320dp</code>, <code>w720dp</code>, <code>h1024dp</code>.</p></li> -</ul> - -<p>You can also create multiple overlapping resource configurations if needed. -For example, you could tag some resources for use on any screen wider than 480 -dp, others for wider than 600 dp, and others for wider than 720 dp. When -multiple resource configurations are qualified for a given screen, the system -selects the configuration that is the closest match. For precise control over -which resources are loaded on a given screen, you can tag resources with one -qualifier or combine several new or existing qualifiers. - -<p>Based on the typical dimensions listed earlier, here are some examples of how -you could use the new qualifiers:</p> - -<pre class="classic prettyprint">res/layout/main_activity.xml # For phones -res/layout-sw600dp/main_activity.xml # For 7” tablets -res/layout-sw720dp/main_activity.xml # For 10” tablets -res/layout-w600dp/main_activity.xml # Multi-pane when enough width -res/layout-sw600dp-w720dp/main_activity.xml # For large width</pre> - -<p>Older versions of the platform will ignore the new qualifiers, so you can -mix them as needed to ensure that your app looks great on any device. Here -are some examples:</p> - -<pre class="classic prettyprint">res/layout/main_activity.xml # For phones -res/layout-xlarge/main_activity.xml # For pre-3.2 tablets -res/layout-sw600dp/main_activity.xml # For 3.2 and up tablets</pre> - -<p>For complete information about how to use the new qualifiers, see <a href="{@docRoot}guide/practices/screens_support.html#NewQualifiers">Using new -size qualifiers</a>.</p> - -<h4>New manifest attributes for screen-size compatibility</h4> - -<p>The framework offers a new set of <a -href="{@docRoot}"><code><supports-screens></code></a> manifest attributes that let -you manage your app's support for different screen sizess. -Specifically, you can specify the largest and smallest screens on which your app -is designed to run, as well as the largest screen on which it is designed run -without needing the system's new <a href="{@docRoot}guide/practices/screen-compat-mode.html">screen -compatibility mode</a>. Like the resource qualifiers described above, the new -manifest attributes specify the range of screens that the application supports, -as specified by the smallestWidth. </p> - -<p>The new manifest attributes for screen support are: </p> - -<ul> -<li><code>android:compatibleWidthLimitDp="<em>numDp"</em></code> — This -attribute lets you specify the maximum smallestWidth on which the application -can run without needing compatibility mode. If the current screen is larger than -the value specified, the system displays the application in normal mode but -allows the user to optionally switch to compatibility mode through a setting in -the system bar.</li> - -<li><code>android:largestWidthLimitDp="<em>numDp</em>"</code> — This -attribute lets you specify the maximum smallestWidth on which the application -is designed to run. If the current screen is larger than the value specified, -the system forces the application into screen compatibility mode, to ensure best -display on the current screen.</li> - -<li><code>android:requiresSmallestWidthDp="<em>numDp"</em></code> — This -attribute lets you specify the minimum smallestWidth on which the application -can run. If the current screen is smaller than the value specified, the system -considers the application incompatible with the device, but does not prevent it -from being installed and run.</li> -</ul> - -<p class="note"><strong>Note:</strong> Google Play does not currently filter -apps based on any of the attributes above. Support for filtering will be -added in a later platform release. Applications that require -filtering based on screen size can use the existing <code><supports-screens></code> -attributes.</p> - -<p>For complete information about how to use the new attributes, see <a href="{@docRoot}guide/practices/screens_support.html#DeclaringScreenSizeSupport">Declaring -screen size support</a>.</p> - -<h4>Screen compatibility mode</h4> - -<p>Android 3.2 provides a new screen compatibility mode for applications -explicitly declaring that they do not support screens as large as the one on -which they are running. This new "zoom" mode is a pixel-scaled — it -renders the application in a smaller screen area and then scales the pixels to -fill the current screen.</p> - -<p>By default, the system offers screen compatibility mode as an user option, for apps -that require it. Users can turn the zoom mode on and off using a control available -in the system bar. </p> - -<p>Because the new screen compatibility mode may not be appropriate for all -applications, the platform allows the application to disable it using manifest -attributes. When disabled by the app, the system does not offer "zoom" compatibility -mode as an option for users when the app is running.</p> - -<p class="note"><strong>Note:</strong> For important information about how -to control compatibility mode in your applications, please review the <a -href="http://android-developers.blogspot.com/2011/07/new-mode-for-apps-on-large- -screens.html">New Mode for Apps on Large Screens</a> article on the Android -Developers Blog. </p> - -<h4>New screen density for 720p televisions and similar devices</h4> - -<p>To meet the needs of applications running on 720p televisions or similar with -moderate density screens, Android 3.2 introduces a new generalized density, -<code>tvdpi</code>, with an approximate dpi of 213. Applications can query for -the new density in {@link android.util.DisplayMetrics#densityDpi} and can use -the new <code>tvdpi</code> qualifier to tag resources for televisions and -similar devices. For example:</p> - -<pre class="classic prettyprint">res/drawable-tvdpi/my_icon.png # Bitmap for tv density</pre> - -<p>In general, applications should not need to work with this density. For situations -where output is needed for a 720p screen, the UI elements can be scaled -automatically by the platform.</p> - - -<h3 id="ui" style="margin-top:1.25em;">UI framework</h3> -<ul> -<li>Fragments - <ul> - <li>New {@link android.app.Fragment.SavedState} class holds the state - information retrieved from a fragment instance through - {@link android.app.FragmentManager#saveFragmentInstanceState(android.app.Fragment) saveFragmentInstanceState()}.</li> - <li>New method {@link android.app.FragmentManager#saveFragmentInstanceState(android.app.Fragment) saveFragmentInstanceState()} - saves the current instance state of - the given Fragment. The state can be used later when creating a new instance - of the Fragment that matches the current state.</li> - <li>New method {@link android.app.Fragment#setInitialSavedState(SavedState) setInitialSavedState()} - sets the initial saved state for a Fragment when first constructed.</li> - <li>New {@link android.app.Fragment#onViewCreated(android.view.View, android.os.Bundle) - onViewCreated()} callback method notifies the Fragment that - {@link android.app.Fragment#onCreateView(LayoutInflater, ViewGroup, Bundle) onCreateView()} - has returned, but before any saved state has been restored in to the View.</li> - <li>{@link android.app.Fragment#isDetached()} method determines whether - the Fragment has been explicitly detached from the UI.</li> - <li>New {@link android.app.FragmentTransaction#attach(android.app.Fragment) attach()} - and {@link android.app.FragmentTransaction#detach(android.app.Fragment) detach()} - methods let an application re-attach or detach fragments in the UI.</li> - <li>A new {@link android.app.FragmentTransaction#setCustomAnimations(int, int, int, int) - setCustomAnimations()} overload method lets you set specific animation - resources to run for enter/exit operations and specifically when - popping the back stack. The existing implementation does not account - for the different behavior of fragments when popping the back stack.</li> - </ul> -</li> -<li>Screen size information in ActivityInfo and ApplicationInfo - <ul> - <li>{@link android.content.pm.ActivityInfo} adds {@link android.content.pm.ActivityInfo#CONFIG_SCREEN_SIZE} - and {@link android.content.pm.ActivityInfo#CONFIG_SMALLEST_SCREEN_SIZE} as bit masks - in {@link android.R.attr#configChanges}. The bits indicate whether an Activity can - itself handle the screen size and smallest screen size.</li> - <li>{@link android.content.pm.ApplicationInfo} adds - {@link android.content.pm.ApplicationInfo#largestWidthLimitDp}, {@link android.content.pm.ApplicationInfo#compatibleWidthLimitDp}, - and {@link android.content.pm.ApplicationInfo#requiresSmallestWidthDp} fields, - derived from the corresponding <code><supports-screens></code> attributes - in the application manifest file.</li> - </ul> -</li> -<li>Helpers for getting display size from WindowManager - <ul> - <li>New methods {@link android.view.Display#getSize(android.graphics.Point) - getSize()} and {@link android.view.Display#getRectSize(android.graphics.Rect) - getRectSize()} let applications get the raw size of the display.</li> - </ul> -</li> -<li>New public "holographic" styles - <ul> - <li>The platform now exposes a variety of public "holographic" styles - for text, actionbar widgets and tabs, and more. See - {@link android.R.style} for a full list.</li> - </ul> -</li> -<li>{@link android.app.LocalActivityManager}, {@link android.app.ActivityGroup}, and - {@link android.app.LocalActivityManager} are now deprecated - <ul> - <li>New applications should use Fragments instead of these classes. To - continue to run on older versions of the platform, you can use the v4 Support - Library (compatibility library), available in the Android SDK. The v4 Support - Library provides a version of the Fragment API that is compatible down to - Android 1.6 (API level 4). - <li>For apps developing against Android 3.0 (API level - 11) or higher, tabs are typically presented in the UI using the new - {@link android.app.ActionBar#newTab() ActionBar.newTab()} and related APIs - for placing tabs within their action bar area.</p></li> - </ul> -</li> -</ul> - -<h3 id="media" style="margin-top:1em;">Media framework</h3> -<ul> - <li>Applications that use the platform's media provider ({@link - android.provider.MediaStore}) can now read media data directly from the - removeable SD card, where supported by the device. Applications can also - interact with the SD card files directly, using the MTP API. </li> - -</ul> -<h3 id="graphics" style="margin-top:1.25em;">Graphics</h3> -<ul> -<li>Parcelable utilities in Point and PointF - <ul> - <li>{@link android.graphics.Point} and {@link android.graphics.PointF} - classes now include the {@link android.os.Parcelable} interface and utility methods {@link - android.graphics.Point#describeContents()}, {@link - android.graphics.Point#readFromParcel(android.os.Parcel) readFromParcel()}, and {@link - android.graphics.Point#writeToParcel(android.os.Parcel, int) writeToParcel()}.</li> - </ul> -</li> -</ul> - - -<h3 id="ime" style="margin-top:1.25em;">IME framework</h3> -<ul> - <li>New {@link android.view.KeyEvent#getModifiers()} method for - retrieving the current state of the modifier keys.</li> -</ul> - - -<h3 id="usb" style="margin-top:1.25em;">USB framework</h3> -<ul> - <li>New {@link - android.hardware.usb.UsbDeviceConnection#getRawDescriptors()} method for - retrieving the raw USB descriptors for the device. You can use the - method to access descriptors not supported directly via the higher - level APIs.</li> -</ul> - - -<h3 id="network" style="margin-top:1.25em;">Network</h3> -<ul> -<li>Network type constants - <ul> - <li>{@link android.net.ConnectivityManager} adds the constants {@link - android.net.ConnectivityManager#TYPE_ETHERNET} and {@link - android.net.ConnectivityManager#TYPE_BLUETOOTH}.</li> - </ul> -</li> -</ul> - - -<h3 id="telephony" style="margin-top:1.25em;">Telephony</h3> -<ul> - <li>New {@link android.telephony.TelephonyManager#NETWORK_TYPE_HSPAP} network type constant.</li> -</ul> - -<h3 id="other" style="margin-top:1.25em;">Core utilities</h3> -<ul> -<li>Parcelable utilities - <ul> - <li>New interface {@link android.os.Parcelable.ClassLoaderCreator} allows - the application to receive the ClassLoader in which the object is being created.</li> - <li>New {@link android.os.ParcelFileDescriptor#adoptFd(int) adoptFd}, {@link - android.os.ParcelFileDescriptor#dup(java.io.FileDescriptor) dup()}, and {@link - android.os.ParcelFileDescriptor#fromFd(int) fromFd()} for managing - {@link android.os.ParcelFileDescriptor} objects.</li> - </ul> -</li> -<li>Binder and IBinder - <ul> - <li>New method {@link android.os.Binder#dumpAsync(java.io.FileDescriptor, java.lang.String[]) dumpAsync()} - in {@link android.os.Binder} and {@link android.os.IBinder} let applications - dump to a specified file, ensuring that the target executes asynchronously.</li> - <li>New {@link android.os.IBinder} protocol transaction code {@link - android.os.IBinder#TWEET_TRANSACTION} lets applications send a tweet - to the target object.</li> - </ul> -</li> -</ul> - - - - -<h3 id="features">New feature constants</h3> - -<p>The platform adds new hardware feature constants that you can declare -in their application manifests, to inform external entities such as Google -Play of required hardware and software capabilities. You declare these -and other feature constants in <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code -<uses-feature>}</a> manifest elements. - -<p>Google Play filters applications based on their <code><uses-feature></code> attributes, to ensure that they are available only to devices on which their requirements are met. </p> - -<ul> -<li>Feature constants for landscape or portrait requirements - -<p>Android 3.2 introduces new feature constants that let applications specify whether they require display in landscape orientation, portrait orientation, or both. Declaring these constants indicates that the application must not be installed on a device that doesn't offer the associated orientation. Conversely, if one or both of the constants are not declared, it indicates that the application does not have a preference for the undeclared orientations and may be installed on a device that doesn't offer them. </p> - -<ul> - <li>{@link android.content.pm.PackageManager#FEATURE_SCREEN_LANDSCAPE -android.hardware.screen.landscape} — The application requires display in -landscape orientation.</li> - <li>{@link android.content.pm.PackageManager#FEATURE_SCREEN_PORTRAIT -android.hardware.screen.portrait} — The application requires display in -portrait orientation.</li> -</ul> - -<p>A typical application that functions properly in both landscape and portrait orientations would not normally need to declare an orientation requirement. Rather, an application designed primarily for one orientation, such as an app designed for a television, could declare one of the constants to ensure that it isn't available to devices that don't provide that orientation.</p> - -<p>If any of activities declared in the manifest request that they run in a specific orientation, -using the <a href="{@docRoot}guide/topics/manifest/activity-element.html#screen">{@code -android:screenOrientation}</a> attribute, then this also declares that the application -requires that orientation.</p> - -</li> -<li>Other feature constants - -<ul> - <li>{@link android.content.pm.PackageManager#FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT -android.hardware.faketouch.multitouch.distinct} — The application requires support for emulated mulitouch input with distinct tracking of two or more points.</li> - - <li>{@link android.content.pm.PackageManager#FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND -android.hardware.faketouch.multitouch.jazzhand} — The application requires support for emulated mulitouch input with distinct tracking of five or more points.</li> -</ul> - -</li> -</ul> - - -<h3 id="api-diff">API Differences Report</h3> - -<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API -Level -{@sdkPlatformApiLevel}), see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API -Differences Report</a>.</p> - - - - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} platform delivers an updated version of -the framework API. The Android {@sdkPlatformVersion} API -is assigned an integer identifier — -<strong>{@sdkPlatformApiLevel}</strong> — that is -stored in the system itself. This identifier, called the "API Level", allows the -system to correctly determine whether an application is compatible with -the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, -you need compile the application against the Android library that is provided in -the Android {@sdkPlatformVersion} SDK platform. Depending on your needs, you -might -also need to add an <code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> -attribute to the <code><uses-sdk></code> element in the application's -manifest.</p> - -<p>For more information about how to use API Level, see the <a -href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> document. </p> - - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>API Demos</li> -<li>Browser</li> -<li>Calculator</li> -<li>Camera</li> -<li>Clock</li> -<li>Contacts</li> -<li>Custom Locale</li> -<li>Dev Tools</li> -<li>Downloads</li> -<li>Email</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Gallery</li> -<li>Gestures Builder</li> -<li>Messaging</li> -<li>Music</li> -<li>Search</li> -<li>Settings</li> -<li>Spare Parts</li> -<li>Speech Recorder</li> -<li>Widget Preview</li> -</ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable SDK platform provides a variety -of -built-in locales. In some cases, region-specific strings are available for the -locales. In other cases, a default version of the language is used. The -languages that are available in the Android 3.0 system -image are listed below (with <em>language</em>_<em>country/region</em> locale -descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Arabic, Egypt (ar_EG)</li> -<li>Arabic, Israel (ar_IL)</li> -<li>Bulgarian, Bulgaria (bg_BG)</li> -<li>Catalan, Spain (ca_ES)</li> -<li>Czech, Czech Republic (cs_CZ)</li> -<li>Danish, Denmark(da_DK)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Greek, Greece (el_GR)</li> -<li>English, Australia (en_AU)</li> -<li>English, Canada (en_CA)</li> -<li>English, Britain (en_GB)</li> -<li>English, Ireland (en_IE)</li> -<li>English, India (en_IN)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>English, US (en_US)</li> -<li>English, Zimbabwe (en_ZA)</li> -<li>Spanish (es_ES)</li> -<li>Spanish, US (es_US)</li> -<li>Finnish, Finland (fi_FI)</li> -<li>French, Belgium (fr_BE)</li> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>French, France (fr_FR)</li> -<li>Hebrew, Israel (he_IL)</li> -<li>Hindi, India (hi_IN)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>Croatian, Croatia (hr_HR)</li> -<li>Hungarian, Hungary (hu_HU)</li> -<li>Indonesian, Indonesia (id_ID)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Italian, Italy (it_IT)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Lithuanian, Lithuania (lt_LT)</li> -<li>Latvian, Latvia (lv_LV)</li> -<li>Norwegian bokmål, Norway (nb_NO)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Polish (pl_PL)</li> -<li>Portuguese, Brazil (pt_BR)</li> -<li>Portuguese, Portugal (pt_PT)</li> -<li>Romanian, Romania (ro_RO)</li> -<li>Russian (ru_RU)</li></li> -<li>Slovak, Slovakia (sk_SK)</li> -<li>Slovenian, Slovenia (sl_SI)</li> -<li>Serbian (sr_RS)</li> -<li>Swedish, Sweden (sv_SE)</li> -<li>Thai, Thailand (th_TH)</li> -<li>Tagalog, Philippines (tl_PH)</li> -<li>Turkish, Turkey (tr_TR)</li> -<li>Ukrainian, Ukraine (uk_UA)</li> -<li>Vietnamese, Vietnam (vi_VN)</li> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -</td> -</tr> -</table> - -<p class="note"><strong>Note:</strong> The Android platform may support more -locales than are included in the SDK system image. All of the supported locales -are available in the <a href="http://source.android.com/">Android Open Source -Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes the following emulator skin:</p> - -<ul> - <li> - WXGA (1280x800, medium density, xlarge screen) - </li> -</ul> - -<p>For more information about how to develop an application that displays -and functions properly on all Android-powered devices, see <a -href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple -Screens</a>.</p> diff --git a/docs/html/sdk/android-4.0-highlights.jd b/docs/html/sdk/android-4.0-highlights.jd deleted file mode 100644 index 98f467d..0000000 --- a/docs/html/sdk/android-4.0-highlights.jd +++ /dev/null @@ -1,1009 +0,0 @@ -page.title=Android 4.0 Platform Highlights - -@jd:body - - -<style type="text/css"> -#jd-content { - max-width:1024px; -} -#jd-content div.screenshot { - float:left; - clear:left; - padding:15px 30px 15px 0; -} -#jd-content div.video { - float:right; - padding:0 0 40px 60px; - margin-top:-30px; -} -#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"> -<iframe width="380" height="223" src="http://www.youtube.com/embed/-F_ke3rxopc?hd=1" frameborder="0" -allowfullscreen></iframe> -</div> - -<p>Welcome to Android 4.0!</p> - -<p>Android 4.0 delivers a refined, unified UI for phones and tablets and -introduces innovative features for users and developers. This document provides -a glimpse of the many new features and technologies that make Android 4.0 -simple, beautiful, and beyond smart. <!--For technical details about -new developer APIs described below, see the <a -href="{@docRoot}sdk/android-4.0.html">Android 4.0 API Overview</a> -document.--></p> - -<ul> - <li><a href="#UserFeatures">Android 4.0 for Users</a></li> - <li><a href="#DeveloperApis">Android 4.0 for Developers</a></li> -</ul> - -<h2 id="UserFeatures" style="clear:right">Android 4.0 for Users</h2> - -<div style="padding-bottom:0em;"> -<a href="{@docRoot}sdk/images/4.0/home-lg.png" target="_android"><img style="float:right;xborder:1px solid #ddd;border-radius: 5px;" src="{@docRoot}sdk/images/4.0/home.png" alt="" height="300" width="180" /></a> -<a href="{@docRoot}sdk/images/4.0/lock-lg.png" target="_android"><img style="float:right;border:1px solid #ddd;border-radius: 5px;" src="{@docRoot}sdk/images/4.0/lock.png" alt="" height="300" width="180" /></a> -</div> - - -<h3 id="simple" style="color:#172861">Simple, beautiful, beyond smart</h3> - -<p>Android 4.0 builds on the things people love most about Android — easy -multitasking, rich notifications, customizable home screens, resizable widgets, -and deep interactivity — and adds powerful new ways of communicating and -sharing.</p> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Refined, evolved UI</strong></p> - -<p>Focused on bringing the power of Android to the surface, Android 4.0 makes -<strong>common actions more visible</strong> and lets users navigate with -simple, intuitive gestures. Refined <strong>animations</strong> and feedback -throughout the system make interactions engaging and interesting. An entirely -<strong>new typeface</strong> optimized for high-resolution screens improves -readability and brings a polished, modern feel to the user interface.</p> - -<p>Virtual buttons in the System Bar let users navigate instantly to Back, Home, -and Recent Apps. The <strong>System Bar</strong> and virtual buttons are present -across all apps, but can be dimmed by applications for full-screen viewing. -Users can access each application's contextual options in the <strong>Action -Bar</strong>, displayed at the top (and sometimes also at the bottom) of the -screen.</p> - -<p><strong>Multitasking</strong> is a key strength of Android and it's made even -easier and more visual on Android 4.0. The Recent Apps button lets users jump -instantly from one task to another using the list in the System Bar. The list -pops up to show thumbnail images of apps used recently — tapping a -thumbnail switches to the app.</p> - -<div style="padding-top:0em;"> -<div style="margin-right:.5em;float:left;width:182px;padding-top:.5em;"> -<a href="{@docRoot}sdk/images/4.0/tasks-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/tasks.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1em;font-size:.9em;padding-right:1em;">The Recent Apps list makes multitasking simple.</div> -<a href="{@docRoot}sdk/images/4.0/lock-camera-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/lock-camera.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1em;font-size:.9em;padding-right:1.75em;">Jump to the camera or see notifications without unlocking.</div> -<a href="{@docRoot}sdk/images/4.0/contact-call-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/contact-call.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a> -<!--<a href="{@docRoot}sdk/images/4.0/quick-response-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/quick-responses-new.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a>--> -<div style="padding-left:1em;padding-bottom:.5em;font-size:.9em;padding-right:1.75em;">For incoming calls, you can respond instantly by text.</div> -</div> -</div> - -<p>Rich and interactive <strong>notifications</strong> let users keep in -constant touch with incoming messages, play music tracks, see real-time updates -from apps, and much more. On smaller-screen devices, notifications appear at the -top of the screen, while on larger-screen devices they appear in the System -Bar.</p> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;margin-top:.5em;margin-bottom:0;padding-bottom:0;width:326px"> -<a href="{@docRoot}sdk/images/4.0/allapps-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/allapps.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<a href="{@docRoot}sdk/images/4.0/calendar-widget-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/calendar-widget.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure 3.</strong>-->The All Apps launcher (left) and resizable widgets (right) give you apps and rich content from the home screen.</div> -</div> -</div> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Home screen folders and -favorites tray</strong></p> - -<p>New home screen <strong>folders</strong> offer a new way for users to group -their apps and shortcuts logically, just by dragging one onto another. Also, -in All Apps launcher, users can now simply <strong>drag an app</strong> to get -information about it or immediately uninstall it, or disable a pre-installed app.</p> - -<p>On smaller-screen devices, the home screen now includes a customizable -<strong>favorites tray</strong> visible from all home screens. Users can drag -apps, shortcuts, folders, and other priority items in or out of the favorites -tray for instant access from any home screen.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Resizable -widgets</strong></p> - -<p>Home screens in Android 4.0 are designed to be content-rich and customizable. -Users can do much more than add shortcuts — they can embed live -application content directly through interactive <strong>widgets</strong>. -Widgets let users check email, flip through a calendar, play music, check social -streams, and more — right from the home screen, without having to launch -apps. Widgets are resizable, so users can expand them to show more content or -shrink them to save space.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>New lock screen -actions</strong></p> - -<p>The lock screens now let users do more without unlocking. From the slide lock -screen, users can <strong>jump directly to the camera</strong> for a picture or -<strong>pull down the notifications window</strong> to check for messages. When -listening to music, users can even manage music tracks and see album art. </p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Quick responses for -incoming calls</strong></p> - -<p>When an incoming call arrives, users can now quickly <strong>respond by text -message</strong>, without needing to pick up the call or unlock the device. On -the incoming call screen, users simply slide a control to see a list of text -responses and then tap to send and end the call. Users can add their own -responses and manage the list from the Settings app.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Swipe to dismiss -notifications, tasks, and browser tabs</strong></p> - -<p>Android 4.0 makes managing notifications, recent apps, and browser tabs even -easier. Users can now dismiss individual notifications, apps from the Recent -Apps list, and browser tabs with a simple swipe of a finger. </p> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;margin-top:1.5em;margin-bottom:0;padding-bottom:0;width:200px"> -<a href="{@docRoot}sdk/images/4.0/text-replace-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/text-replace.png" alt="" width="190" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure 3.</strong>-->A spell-checker lets you find errors and fix them faster. </div> -<a href="{@docRoot}sdk/images/4.0/tts-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/tts.png" alt="" width="190" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em">A powerful voice input engine lets you dictate continously.</div> -</div> -</div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Improved text input and -spell-checking</strong></p> - -<p>The soft keyboard in Android 4.0 makes text input even faster and more -accurate. Error correction and word suggestion are improved through a new set of -default dictionaries and more accurate heuristics for handling cases such as -double-typed characters, skipped letters, and omitted spaces. Word suggestion -is also improved and the suggestion strip is simplified to show only three -words at a time.</p> - -<p>To fix misspelled words more easily, Android 4.0 adds a -<strong>spell-checker</strong> that locates and underlines errors and suggests -replacement words. With one tap, users can choose from multiple spelling -suggestions, delete a word, or add it to the dictionary. Users can even tap to -see replacement suggestions for words that are spelled correctly. For -specialized features or additional languages, users can now download and install -third-party dictionaries, spell-checkers, and other text services.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Powerful voice input -engine</strong></p> - -<p>Android 4.0 introduces a powerful new voice input engine that offers a -continuous "open microphone" experience and streaming voice recognition. The new -voice input engine lets users dictate the text they want, for as long as they -want, using the language they want. Users can <strong>speak continously</strong> for a prolonged -time, even pausing for intervals if needed, and dictate punctuation to create -correct sentences. As the voice input engine enters text, it underlines possible -dictation errors in gray. After dictating, users can tap the underlined words to -quickly replace them from a list of suggestions.</p> - -<div style="padding-top:0em;"> -<div style="margsin-right:.8em;float:left;width:350px;padding-top:1em;"> -<a href="{@docRoot}sdk/images/4.0/usage-all-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/usage-all.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<a href="{@docRoot}sdk/images/4.0/usage-maps-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/usage-maps.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1em;font-size:.9em;padding-right:1.75em;"><!--<strong>Figure 3.</strong>--> Data usage controls let you monitor total usage by network type and application and then set limits if needed.</div> -</div> -</div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Control over network -data</strong></p> - -<p>Mobile devices can make extensive use of network data for streaming content, -synchronizing data, downloading apps, and more. To meet the needs of users with -<strong>tiered or metered data plans</strong>, Android 4.0 adds new controls for -managing network data usage.</p> - -<p>In the Settings app, colorful charts show the total data usage on each -network type (mobile or Wi-Fi), as well as amount of data used by each running -application. Based on their data plans, users can optionally set warning levels -or hard limits on data usage or disable mobile data altogether. Users can also -manage the background data used by individual applications as needed.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Designed for -accessibility</strong></p> - -<p>A variety of new features greatly enhance the accessibility of Android 4.0 -for blind or visually impaired users. Most important is a new -<strong>explore-by-touch mode</strong> that lets users navigate without having -to see the screen. Touching the screen once triggers audible feedback that -identifies the UI component below; a second touch in the same component -activates it with a full touch event. The new mode is especially important to -support users on new devices that use virtual buttons in the System Bar, rather -than dedicated hardware buttons or trackballs. Also, standard apps are updated -to offer an improved accessibility experience. The <strong>Browser</strong> -supports a script-based screen reader for reading favorite web content and -navigating sites. For improved readability, users can also increase the default -font size used across the system.</p> - -<p>The accessibility experience begins at first setup — a simple -<strong>touch gesture</strong> during setup (clockwise square from upper left) -activates all accessibility features and loads a setup tutorial. Once -accessibility features are active, everything visible on the screen can be -spoken aloud by the standard screen reader.</p> - - -<h3 id="comms" style="color:#172861">Communication and sharing</h3> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:.5em;margin-top:1.5em;margin-bottom:0;padding-bottom:0;width:490px"> -<!--<img src="{@docRoot}sdk/images/4.0/contact-call.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" />--> -<a href="{@docRoot}sdk/images/4.0/contact-faves-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/contact-faves.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a> -<a href="{@docRoot}sdk/images/4.0/contact-connect-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/contact-connect.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a> -<a href="{@docRoot}sdk/images/4.0/contact-email-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/contact-email.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;padding:0" /></a> - -<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure 3.</strong>-->Contacts and profiles are integrated across apps and social networks, for a consistent, personal experience everywhere — from incoming calls to emails.</div> -</div> -</div> - -<p>Designed for the way people live, Android 4.0 integrates rich social -communication and sharing touchpoints across the system, making it easy to talk, -email, text, and share.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>People and -profiles</strong></p> - -<p>Throughout the system, a user’s social groups, profiles, and contacts are -linked together and integrated for easy accessibility. At the center is a new -<strong>People app</strong> that offers richer profile information, including a -large profile picture, phone numbers, addresses and accounts, status updates, -events, stream items, and a new button for connecting on integrated social networks. </p> - -<p>The user's own contact information is stored in a new <strong>"Me" -profile</strong>, allowing easier sharing with apps and people. All of the -user's integrated contacts are displayed in an easy to manage list, including -controls over which contacts are shown from any integrated account or social -network. Wherever the user navigates across the system, tapping a profile photo -displays Quick Contacts, with large profile pictures, shortcuts to phone numbers, -text messaging, and more. </p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Unified calendar, visual -voicemail</strong></p> - -<p>To help organize appointments and events, an updated <strong>Calendar -app</strong> brings together personal, work, school, and social agendas. With -user permission, other applications can contribute events to the calendar and -manage reminders, for an integrated view across multiple calendar providers. The -app is redesigned to let users manage events more easily. Calendars are -color-coded and users can <strong>swipe left or right</strong> to change dates -and pinch to zoom in or out agendas. </p> - -<p>In the phone app, a new <strong>visual voicemail</strong> features integrates -incoming messages, voice transcriptions, and audio files from one or more -providers. Third-party applications can integrate with the Phone app to add -their own voice messages, transcriptions, and more to the visual voicemail -inbox. </p> - -<div style="padding-top:0em;"> -<div style="margsin-right:0em;float:left;width:282px;padding-top:1em;"> -<a href="{@docRoot}sdk/images/4.0/camera-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/camera.png" alt="" width="240" height="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<a href="{@docRoot}sdk/images/4.0/gallery-edit-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/gallery-edit.png" alt="" width="240" height="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<a href="{@docRoot}sdk/images/4.0/gallery-share-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/gallery-share.png" alt="" width="240" height="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1em;font-size:.9em;padding-right:2.75em;">Capture the picture you want, edit, and share instantly. </div> -</div> -</div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Rich and versatile camera -capabilities</strong></p> - -<p>The Camera app includes many new features that let users capture special moments -with great photos and videos. After capturing images, they can edit and share -them easily with friends. </p> - -<p>When taking pictures, <strong>continuous focus</strong>, <strong>zero shutter -lag exposure</strong>, and decreased shot-to-shot speed help capture clear, -precise images. <strong>Stabilized image zoom</strong> lets users compose photos -and video in the way they want, including while video is recording. For new -flexibility and convenience while shooting video, users can now take -<strong>snapshots at full video resolution</strong> just by tapping the screen -as video continues to record.</p> - -<p>To make it easier to take great pictures of people, built-in <strong>face -detection</strong> locates faces in the frame and automatically sets focus. For -more control, users can <strong>tap to focus</strong> anywhere in the preview -image. </p> - -<p>For capturing larger scenes, the Camera introduces a <strong>single-motion -panorama</strong> mode. In this mode, the user starts an exposure and then -slowly turns the Camera to encompass as wide a perspective as needed. The Camera -assembles the full range of continuous imagery into a single panoramic -photo.</p> - -<p>After taking a picture or video, users can quickly share it by email, text -message, bluetooth, social networks, and more, just by tapping the thumbnail in -the camera controls. </p> - - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;padding-top:1em;margin-bottom:1em;padding-bottom:0;width:160px"> -<img src="{@docRoot}sdk/images/4.0/gallery-widget.png" alt="" width="144" style="border:1px solid #ddd;border-radius: 6px;" /> -<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em">A Photo Gallery widget on the home screen.</div> -</div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Redesigned Gallery app -with photo editor</strong></p> - -<p>The Gallery app now makes it easier to manage, show, and share photos and -videos. For managing collections, a <strong>redesigned album layout</strong> -shows many more albums and offers larger thumbnails. There are many ways to sort -albums, including by time, location, people, and tags. To help pictures look -their best, the Gallery now includes a powerful <strong>photo editor</strong>. -Users can crop and rotate pictures, set levels, remove red eyes, add effects, -and much more. After retouching, users can select one or multiple pictures or -videos to share instantly over email, text messaging, bluetooth, social -networks, or other apps.</p> - -<p>An improved <strong>Picture Gallery widget</strong> lets users look at -pictures directly on their home screen. The widget can display pictures from a -selected album, shuffle pictures from all albums, or show a single image. After -adding the widget to the home screen, users can flick through the photo stacks -to locate the image they want, then tap to load it in Gallery. </p> - -<div style="padding-top:0em;clear:right;"> -<div style="margin-right:1em;float:right;margin-left:1em;padding-top:1em;margin-bottom:1em;padding-bottom:0;width:320px"> -<img src="{@docRoot}sdk/images/4.0/live-effects.png" alt="" width="297" style="border:1px solid #ddd;border-radius: 6px;" /> -<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Live Effects let you change backgrounds and use Silly Faces during video.</div> -</div> -</div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Live Effects for transforming video</strong></p> - -<p>Live Effects is a collection of graphical transformations that add interest -and fun to videos captured in the Camera app. For example, users can -<strong>change the background</strong> behind them to any stock or custom image, -for just the right setting when shooting videeo. Also available for video is -Silly Faces, a set of morphing effects that use state-of-the-art face -recognition and GPU filters to transform facial features. For example, you can -use effects such as small eyes, big mouth, big nose, face squeeze, and more. -Outside of the Camera app, Live Effects is available during video chat in the -Google Talk app.</p> - -<div style="padding-top:0em;"> -<div style="margsin-right:.8em;float:left;width:186px;padding-top:1em;"> -<a href="{@docRoot}sdk/images/4.0/screenshot-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/screenshot.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"> Snapping a screenshot.</div> -</div> -</div> -</div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Sharing with screenshots</strong></p> - -<p>Users can now share what's on their screens more easily by taking -screenshots. Hardware buttons let them snap a <strong>screenshot</strong> and -store it locally. Afterward, they can view, edit, and share the screen shot in -Gallery or a similar app.</p> - - -<h3 id="cloud" style="color:#172861">Cloud-connected experience</h3> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;padding-top:1em;margin-bottom:0;padding-bottom:0;width:326px"> -<a href="{@docRoot}sdk/images/4.0/browser-tabs-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/browser-tabs.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<a href="{@docRoot}sdk/images/4.0/browser-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/browser.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1.25em;margin-top:0;padding-top:0;font-size:.9em"><!--<strong>Figure 3.</strong>-->The Browser tabs menu <em>(left)</em> lets you quickly switch browser tabs. The options menu <em>(right)</em> gives you new ways to manage your browsing experience.</div> -<img src="{@docRoot}sdk/images/4.0/bbench.png" alt="" width="310" /> -<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Benchmark comparisons of Android Browser.</div> -</div> -</div> - -<p>Android has always been cloud-connected, letting users browse the web and -sync photos, apps, games, email, and contacts — wherever they are and -across all of their devices. Android 4.0 adds new browsing and email -capabilities to let users take even more with them and keep communication -organized.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Powerful web -browsing</strong></p> - -<p>The Android Browser offers an experience that’s as rich and convenient as a -desktop browser. It lets users instantly sync and manage <strong>Google Chrome -bookmarks</strong> from all of their accounts, jump to their favorite content -faster, and even save it for reading later in case there's no network -available.</p> - -<p>To get the most out of web content, users can now request full -<strong>desktop versions</strong> of web sites, rather than their mobile -versions. Users can set their preference for web sites separately for each -<strong>browser tab</strong>. For longer content, users can save a copy for -<strong>offline reading</strong>. To find and open saved pages, users can browse -a visual list that’s included with browser bookmarks and history. For better -readability and accessibility, users can increase the browser’s <strong>zoom -levels</strong> and override the system default <strong>text sizes</strong>.</p> - -<p>Across all types of content, the Android Browser offers dramatically improved -<strong>page rendering performance</strong> through updated versions of the -WebKit core and the V8 Crankshaft compilation engine for JavaScript. In -benchmarks run on a Nexus S device, the Android 4.0 browser showed an -improvement of nearly 220% over the Android 2.3 browser in the V8 Benchmark -Suite and more than 35% in the SunSpider 9.1 JavaScript Benchmark. When run on a -Galaxy Nexus device, the Android 4.0 browser showed improvement of nearly 550% -in the V8 benchmark and nearly 70% in the SunSpider benchmark.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Improved -email</strong></p> - -<p>In Android 4.0, email is easier to send, read, and manage. For composing -email, <strong>improved auto-completion</strong> of recipients helps with -finding and adding frequent contacts more quickly. For easier input of frequent -text, users can now create <strong>quick responses</strong> and store them in -the app, then enter them from a convenient menu when composing. When replying to -a message, users can now toggle the message to Reply All and Forward without -changing screens.</p> - -<p>For easier browsing across accounts and labels, the app adds an -<strong>integrated menu</strong> of accounts and recent labels. To help users -locate and organize IMAP and Exchange email, the Email app now supports -<strong>nested mail subfolders</strong>, each with synchronization rules. Users -can also search across folders on the server, for faster results. </p> - -<p>For <strong>enterprises</strong>, the Email app supports EAS v14. It supports -EAS certificate authentication, provides ABQ strings for device type and mode, -and allows automatic sync to be disabled while roaming. Administrators can also -limit attachment size or disable attachments.</p> - -<p>For keeping track of incoming email more easily, a <strong>resizable Email -widget</strong> lets users flick through recent email right from the home -screen, then jump into the Email app to compose or reply.</p> - - -<div style="padding-top:0em;"> -<div style="margsin-right:.8em;float:left;width:186px;padding-top:1em;"> -<a href="{@docRoot}sdk/images/4.0/beam-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/beam.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em;padding-right:1.5em;">Android Beam lets users share what they are using with a single tap.</div> -</div> -</div> - -<h3 id="innovation" style="color:#172861">Innovation</h3> - -<p>Android is continously driving innovation forward, pushing the boundaries of -communication and sharing with new capabilities and interactions.</p> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Android Beam for -NFC-based sharing</strong></p> - -<p>Android Beam is an innovative, convenient feature for sharing across two -NFC-enabled devices, It lets people instantly exchange favorite apps, contacts, -music, videos — almost anything. It’s incredibly simple and convenient to -use — there’s no menu to open, application to launch, or pairing needed. -Just touch one Android-powered phone to another, then tap to send.</p> - -<p>For sharing apps, Android Beam pushes a link to the app's details page in -Google Play. On the other device, the Google Play client app launches and loads the -details page, for easy downloading of the app. Individual apps can build on -Android Beam to add other types of interactions, such as passing game scores, -initiating a multiplayer game or chat, and more.</p> - -<div style="padding-top:0em;"> -<div style="margin-right:1em;float:right;margin-left:1em;margin-top:.5em;margin-bottom:0;padding-bottom:0;width:160px"> -<a href="{@docRoot}sdk/images/4.0/face-unlock-lg.png" target="_android"> -<img src="{@docRoot}sdk/images/4.0/face-unlock.png" alt="" height="240" width="144" style="border:1px solid #ddd;border-radius: 6px;" /></a> -<div style="padding-left:1em;padding-bottom:1em;margin-top:0;padding-top:0;font-size:.9em">Face recognition lets you unlock your phone with your face.</div> -</div> -</div> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Face Unlock</strong></p> - -<p>Android 4.0 introduces a completely new approach to securing a device, making -each person's device even more personal — Face Unlock is a new screen-lock -option that lets users unlock their devices with their faces. It takes advantage -of the device front-facing camera and state-of-the-art facial recognition -technology to register a face during setup and then to recognize it again when -unlocking the device. Users just hold their devices in front of their faces to -unlock, or use a backup PIN or pattern. </p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Wi-Fi Direct and Bluetooth HDP</strong></p> - -<p>Support for <strong>Wi-Fi Direct</strong> lets users connect directly to -nearby peer devices over Wi-Fi, for more reliable, higher-speed communication. -No internet connection or tethering is needed. Through third-party apps, users -can connect to compatible devices to take advantage of new features such as -instant sharing of files, photos, or other media; streaming video or audio from -another device; or connecting to compatible printers or other devices.</p> - -<p>Android 4.0 also introduces built-in support for connecting to <strong>Bluetooth Health Device Profile (HDP)</strong> devices. With support from third-party apps, users can connect to wireless medical devices and sensors in hospitals, fitness centers, homes, and elsewhere.</p> - - -<h2 id="DeveloperApis" style="clear:right">New Developer Features</h2> - -<!-- <ul> -<li><a href="#ui-dev">Unified UI framework for phones, tablets, and more</a></li> -<li><a href="#communication-dev">Communication and sharing</a></li> -<li><a href="#media-dev">New media capabilities</a></li> -<li><a href="#connectivity-dev">New types of connectivity</a></li> -<li><a href="#uicomp-dev">New UI components and capabilities</a></li> -<li><a href="input-dev">New input types and text services</a></li> -<li><a href="#accessibility-dev">Enhanced accessibility APIs</a></li> -<li><a href="#data-dev">Efficient network usage</a></li> -<li><a href="#security-dev">Security for apps and content</a></li> -<li><a href="#enterprise-dev">Enhancements for Enterprise</a></li> -</ul>--> - -<h3 id="ui-dev">Unified UI framework for phones, tablets, and more</h3> - -<p>Android 4.0 brings a unified UI framework that lets developers create -elegant, innovative apps for phones, tablets, and more. It includes all of the -familiar Android 3.x interface elements and APIs — fragments, content -loaders, Action Bar, rich notifications, resizable home screen widgets, and more -— as well as new elements and APIs.</p> - -<p>For developers, the unified UI framework in Android 4.0 means new UI tools, -consistent design practices, simplified code and resources, and streamlined -development across the range of Android-powered devices.</p> - -<div class="sidebox-wrapper"> -<div class="sidebox" style="border-left:1px solid #22a5ca;background-color:#fff;"> - <h3>Key Android 3.x developer features, <br>now for phones too</h3> - -<p>Core UI</p> -<ul> -<li>Fragments and content loaders</li> -<li>Resizeable home screen widgets</li> -<li>Rich notifications</li> -<li>Multi-selection, drag-drop, clipboard</li> -<li>Improved screen-support API</li> -<li>Hardware-accelerated 2D graphics</li> -</ul> - -<p>Graphics and animation</p> -<ul> -<li>Property-based animation</li> -<li>Renderscript 3D graphics</li> -</ul> - -<p>Media and connectivity</p> -<ul> -<li>HTTP Live streaming</li> -<li>Bluetooth A2DP and HSP devices</li> -<li>Support for RTP</li> -<li>MTP/PTP file transfer</li> -<li>DRM framework</li> -<li>Input from keyboard, mouse, gamepad, joystick</li> -</ul> - -<p>Enterprise</p> -<ul> -<li>Full device encryption</li> -<li>DPM policies for encrypted storage and passwords</li> -</ul> -</div> -</div> - -<h3 id="communication-dev">Communication and sharing</h3> - -<p>Android 4.0 extends social and sharing features to any application on the -device. Applications can integrate contacts, profile data, stream items, -and calendar events from any of the user’s activities or social networks.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Social API</strong></p> - -<p>A shared social provider and API provide a new unified store for contacts, -profile data, stream items, and photos. Any app or social network with user -permission can contribute raw contacts and make them accessible to other apps -and networks. Applications with user permission can also read profile data from -the provider and display it in their applications.</p> - -<p>The social API lets applications store standard contact data as well as new -types of content for any given contact, including large profile photos, stream -items, and recent activity feedback. Recent activity feedback is a standard way for -applications to “tag” a contact with common activity, such as when the user -calls the contact or sends an email or SMS message. The social provider uses the -recent activity feedback as a new signal in ranking, such as for name -auto-complete, to keep the most relevant contacts ranked closest to the top.</p> - -<p>Applications can also let users set up a social connection to a contact from -the People app. When the user touches Add Connection in a contact, the app -sends a public intent that other apps can handle, displaying any UI needed -to create the social connection.</p> - -<p>Building on the social API, developers can add powerful new interactions that -span multiple social networks and contacts sources.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Calendar API</strong></p> - -<p>A shared calendar content provider and framework API make it easier for -developers to add calendar services to their apps.</p> - -<p>With user permission, any application can add events to the shared database -and manage dates, attendees, alerts, and reminders. Applications can also read -entries from the database, including events contributed by other applications, -and handle the display of event alerts and reminders. Using the calendar -provider, applications can take advantage of event data sourced from a variety -of apps and protocols, to offer innovative ways of viewing and managing a user’s -events. Apps can also use calendar data to improve the relevance of their -other content.</p> - -<p>For lighter-weight access to calendar services, the Calendar app defines a -set of public Intents for creating, viewing, and editing events. Rather than -needing to implement a calendar UI and integrate directly with the calendar -provider, applications can simply broadcast calendar Intents. When the Calendar -app receives the Intents, it launches the appropriate UI and stores any event -data entered. Using calendar Intents, for example, apps can let users add events -directly from lists, dialogs, or home screen widgets, such as for making -restaurant reservations or booking time with friends.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Visual voicemail -API</strong></p> - -<p>A shared Voicemail provider and API allow developers to build applications -that contribute to a unified voicemail store. Voicemails are displayed and -played in the call log tab of the platform’s Phone app.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Android Beam</strong></p> - -<p>Android Beam is an NFC-based feature that lets users instantly share -information about the apps they are using, just by touching two NFC-enabled -phones together. When the devices are in range — within a few centimeters -— the system sets up an NFC connection and displays a sharing UI. To share -whatever they are viewing with the other device, users just touch the screen. -</p> - -<p>For developers, Android Beam is a new way of triggering almost any type of -proximity-based interaction. For example, it can let users instantly exchange -contacts, set up multiplayer gaming, join a chat or video call, share a photo or -video, and more. The system provides the low-level NFC support and the sharing -UI, while the foreground app provides lightweight data to transfer to the other -device. Developers have complete control over the data that is shared and how it -is handled, so almost any interaction is possible. For larger payloads, -developers can even use Android Beam to initiate a connection and transfer the -data over Bluetooth, without the need for user-visible pairing.</p> - -<p>Even if developers do not add custom interactions based on Android Beam they -can still benefit from it being deeply integrated into Android. By default the -system shares the app’s Google Play URL, so it’s easy for the user to -download or purchase the app right away.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Modular sharing -widget</strong></p> - -<p>The UI framework includes a new widget, ShareActionProvider, that lets -developers quickly embed standard share functionality and UI in the Action Bar -of their applications. Developers simply add ShareActionProvider to the menu and -set an intent that describes the desired sharing action. The system handles the -rest, building up the list of applications that can handle the share intent and -dispatching the intent when the user chooses from the menu.</p> - - -<h3 id="media-dev">New media capabilities</h3> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Low-level streaming -multimedia</strong></p> - -<p>Android 4.0 provides a direct, efficient path for low-level streaming -multimedia. The new path is ideal for applications that need to maintain -complete control over media data before passing it to the platform for -presentation. For example, media applications can now retrieve data from any -source, apply proprietary encryption/decryption, and then send the data to the -platform for display.</p> - -<p>Applications can now send processed data to the platform as a multiplexed -stream of audio/video content in MPEG-2 transport stream format. The platform -de-muxes, decodes, and renders the content. The audio track is rendered to the -active audio device, while the video track is rendered to either a Surface or a -SurfaceTexture. When rendering to a SurfaceTexture, the application can apply -subsequent graphics effects to each frame using OpenGL.</p> - -<p>To support this low-level streaming, the platform introduces a new native API -based on <a href="http://www.khronos.org/openmax/al/" target="_top">Khronos -OpenMAX AL 1.0.1</a>. The API is implemented on the same underlying services as -the platform’s existing OpenSL ES API, so developers can make use of both APIs -together if needed. Tools support for low-level streaming multimedia will be -available in an upcoming release of the Android NDK.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>New camera -capabilities</strong></p> - -<p>Developers can take advantage of a variety of new camera features in Android -4.0. ZSL exposure, continuous focus, and image zoom let apps capture better -still and video images, including during video capture. Apps can even capture -full-resolution snapshots while shooting video. Apps can now set custom metering -regions in a camera preview, then manage white balance and exposure dynamically -for those regions. For easier focusing and image processing, a face-detection -service identifies and tracks faces in a preview and returns their screen -coordinates.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Media effects for -transforming images and video</strong></p> - -<p>A set of high-performance transformation filters let developers apply rich -effects to any image passed as an OpenGL ES 2.0 texture. Developers can adjust -color levels and brightness, change backgrounds, sharpen, crop, rotate, add lens -distortion, and apply other effects. The transformations are processed by the -GPU, so they are fast enough for processing image frames loaded from disk, -camera, or video stream.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Audio remote -controls</strong></p> - -<p>Android 4.0 adds a new audio remote control API that lets media applications -integrate with playback controls that are displayed in a remote view. Media -applications can integrate with a remote music playback control that’s built -into in the platform’s lock screen, allowing users to control song selection and -playback without having to unlock and navigate to the music app.</p> - -<p>Using the audio remote control API, any music or media app can register to -receive media button events from the remote control and then manage play state -accordingly. The application can also supply metadata to the remote control, -such as album art or image, play state, track number and description, duration, -genre, and more.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>New media codecs and -containers</strong></p> - -<p>Android 4.0 adds support for additional media types and containers to give -developers access to the formats they need. For high-quality compressed images, -the media framework adds support for WebP content. For video, the framework now -supports streaming VP8 content. For streaming multimedia, the framework supports -HTTP Live streaming protocol version 3 and encoding of ADTS-contained AAC -content. Additionally, developers can now use Matroska containers for Vorbis and -VP8 content.</p> - - -<h3 id="connectivity-dev">New types of connectivity</h3> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Wi-Fi Direct</strong></p> - -<p>Developers can use a framework API to discover and connect directly to nearby -devices over a high-performance, secure Wi-Fi Direct connection. No internet -connection or hotspot is needed.</p> - -<p>Wi-Fi Direct opens new opportunities for developers to add innovative -features to their applications. Applications can use Wi-Fi Direct to share -files, photos, or other media between devices or between a desktop computer and -an Android-powered device. Applications could also use Wi-Fi Direct to stream -media content from a peer device such as a digital television or audio player, -connect a group of users for gaming, print files, and more.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Bluetooth Health Device -Profile (HDP)</strong></p> - -<p>Developers can now build powerful medical applications that use Bluetooth to -communicate with wireless devices and sensors in hospitals, fitness centers, -homes, and elsewhere. Applications can collect and manage data from HDP source -devices and transmit it to backend medical applications such as records systems, -data analysis services, and others.</p> - -<p>Using a framework API, applications can use Bluetooth to discover nearby -devices, establish reliable or streaming data channels, and manage data -transmission. Applications can supply any IEEE 11073 Manager to retrieve and -interpret health data from Continua-certified devices such as heart-rate -monitors, blood meters, thermometers, and scales. </p> - - -<h3 id="uicomp-dev">New UI components and capabilities</h3> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Layout -enhancements</strong></p> - -<p>A new layout, GridLayout, improves the performance of Android applications by -supporting flatter view hierarchies that are faster to layout and render. -Because hierarchies are flatter, developers can also manage alignments between -components that are visually related to each other even when they are not -logically related, for precise control over application UI. GridLayout is also -specifically designed to be configured by drag-and-drop design tools such as the -ADT Plug-in for Eclipse.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>OpenGL ES texture -views</strong></p> - -<p>A new TextureView object lets developers directly integrate OpenGL ES -textures as rendering targets in a UI hierarchy. The object lets developers -display and manipulate OpenGL ES rendering just as they would a normal view -object in the hierarchy, including moving, transforming, and animating the view -as needed. The TextureView object makes it easy for developers to embed camera -preview, decoded video, OpenGL game scenes, and more. TextureView can be viewed -as a more powerful version of the existing SurfaceView object, since it offers -the same benefits of access to a GL rendering surface, with the added advantage -of having that surface participate fully in the normal view hierarchy.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Hardware-accelerated 2D -drawing</strong></p> - -<p>All Android-powered devices running Android 4.0 are required to support -hardware-accelerated 2D drawing. Developers can take advantage of this to add -great UI effects while maintaining optimal performance on high-resolution -screens, even on phones. For example, developers can rely on accelerated -scaling, rotation, and other 2D operations, as well as accelerated UI components -such as TextureView and compositing modes such as filtering, blending, and -opacity.</p> - - -<h3 id="input-dev">New input types and text services</h3> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Stylus input, button -support, hover events</strong></p> - -<p>Android 4.0 includes full support for stylus input events, including tilt and -distance axes, pressure, and related motion event properties. To help -applications distinguish motion events from different sources, the platform adds -distinct tool types for stylus, finger, mouse, and eraser. For improved input -from multi-button pointing devices, the platform now provides distinct primary, -secondary, and tertiary buttons, as well as back and forward buttons. -Hover-enter and hover-exit events are also added, for improved navigation and -accessibility. Developers can build on these new input features to add powerful -interactions to their apps, such as precise drawing and gesturing, handwriting -and shape recognition, improved mouse input, and others.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Text services API for -integrating spelling checkers</strong></p> - -<p>Android 4.0 lets applications query available text services such as -dictionaries and spell checkers for word suggestions, corrections, and similar -data. The text services are external to the active IME, so developers can create -and distribute dictionaries and suggestion engines that plug into the platform. -When an application receives results from a text service — for example, -word suggestions — it can display them in a dedicated suggestion popup -window directly inside the text view, rather than relying on the IME to display -them. </p> - - -<h3 id="accessibility-dev">Enhanced accessibility APIs</h3> - -<p>Android 4.0 adds new accessibility features and an enhanced API to let -developers improve the user experience in their apps, especially on devices that -don’t have hardware buttons. For accessibility services such as screen readers -in particular, the platform offers new APIs to query window content, for easier -navigation, better feedback, and richer user interfaces.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Accessibility -API</strong></p> - -<p>To let applications manage interactions more effectively when accessibility -features are enabled, the platform adds accessibility events for -explore-by-touch mode, scrolling, and text selection. For these and other -events, the platform can attach a new object called an accessibility record that -provides extra information about the event context.</p> - -<p>Using the accessibility record and related APIs, applications can now access -the view hierarchy associated with an event. Applications can query for key -properties such as parent and child nodes, available states, supported actions, -screen position, and more. Applications can also request changes to certain -properties to help manage focus and selected state. For example, an -accessibility service could use these new capabilities to add convenient -features such as screen-search by text. </p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Text-to-speech -API</strong></p> - -<p>A new framework API lets developers write text-to-speech engines and make -them available to any app requesting TTS capabilities.</p> - - -<h3 id="data-dev">Efficient network usage</h3> - -<p>In Android 4.0, users can see how much network data their running apps are -using. They can also set limits on data usage by network type and disable -background data usage for specific applications. In this context, developers -need to design their apps to run efficiently and follow best practices for -checking the network connection. Android 4.0 provides network APIs to let -applications meet those goals.</p> - -<p>As users move between networks or set limits on network data, the platform -lets applications query for connection type and availability. Developers can use -this information to dynamically manage network requests to ensure the best -experience for users. Developers can also build custom network and data-usage -options into their apps, then expose them to users directly from Settings by -means of a new system Intent.</p> - - -<h3 id="security-dev">Security for apps and content</h3> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Secure management of -credentials</strong></p> - -<p>Android 4.0 makes it easier for applications to manage authentication and -secure sessions. A new keychain API and underlying encrypted storage let -applications store and retrieve private keys and their corresponding certificate -chains. Any application can use the keychain API to install and store user -certificates and CAs securely.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Address Space Layout -Randomization</strong></p> - -<p>Android 4.0 now provides address space layout randomization (ASLR) to help -protect system and third party applications from exploitation due to -memory-management issues.</p> - - -<h3 id="enterprise-dev">Enhancements for Enterprise</h3> - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>VPN client -API</strong></p> - -<p>Developers can now build or extend their own VPN solutions on the platform -using a new VPN API and underlying secure credential storage. With user -permission, applications can configure addresses and routing rules, process -outgoing and incoming packets, and establish secure tunnels to a remote server. -Enterprises can also take advantage of a standard VPN client built into the -platform that provides access to L2TP and IPSec protocols.</p> - - -<p style="margin-top:1em;margin-bottom:.75em;"><strong>Device policy management -for camera</strong></p> - -<p>The platform adds a new policy control for administrators who manage devices -using an installed Device Policy Manager. Administrators can now remotely -disable the camera on a managed device for users working in sensitive -environments.</p> - - - - - diff --git a/docs/html/sdk/android-4.0.3.jd b/docs/html/sdk/android-4.0.3.jd deleted file mode 100644 index f6dbee0..0000000 --- a/docs/html/sdk/android-4.0.3.jd +++ /dev/null @@ -1,555 +0,0 @@ -page.title=Android 4.0.3 Platform -sdk.platform.version=4.0.3 -sdk.platform.apiLevel=15 -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api">API Overview</a></li> - <li><a href="#Honeycomb">Previous APIs</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/15/changes.html">API -Differences Report »</a> </li> -</ol> - -</div> -</div> - -<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android {@sdkPlatformVersion} is an incremental release of the Android 4.x -(Ice Cream Sandwich) platform family. This release includes new features for -users and developers, API changes, and various bug fixes.</p> - -<p>For developers, the Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK. The development platform includes a -fully compliant Android library and system image as well as a set of emulator -skins, sample applications, and more. The downloadable platform includes no -external libraries.</p> - -<p>To start developing or testing against Android {@sdkPlatformVersion}, -use the Android SDK Manager to download the platform into your SDK. For more -information, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>. If you are new to Android, <a -href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> first.</p> - -<p>For a high-level overview of the new user and developer features, see the -<a href="http://developer.android.com/sdk/android-4.0-highlights.html">Platform -Highlights</a>.</p> - - -<h2 id="relnotes">Development Platform Revisions</h2> - -<p>The sections below provide notes about successive revisions of the Android -{@sdkPlatformVersion} development platform for the Android SDK, as denoted by -revision number. To determine what revisions you have installed in your SDK -environment, refer to the "Installed Packages" listing in the Android SDK -Manager.</p> - -<p class="caution"><strong>Important:</strong> To download the new Android -4.0.x system components from the Android SDK Manager, you must first update the -SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, -the Android 4.0.x system components will not be available for download.</p> - -<div class="toggle-content opened" style="padding-left:1em;"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" -class="toggle-content-img" alt="" /> - Revision 3</a> <em>(March 2012)</em> - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em;"> - - <p>Maintenance update. The system version is 4.0.4.</p> - <p class="note"><strong>Note:</strong> This system image includes support for emulator -hardware graphics acceleration when used with SDK Tools r17 or higher. -(<a href="{@docRoot}guide/developing/devices/emulator.html#accel-graphics">more info</a>)</p> - <dl> - <dt>Dependencies:</dt> - <dd>SDK Tools r17 or higher is required.</dd> - </dl> - - </div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Revision 2</a> <em>(January 2012)</em> - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em;"> - - <p>Maintenance update. The system version is 4.0.3.</p> - <dl> - <dt>Dependencies:</dt> - <dd>SDK Tools r14 or higher is required.</dd> - </dl> - - </div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Revision 1</a> <em>(December 2011)</em> - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em;"> - - <p>Initial release. The system version is 4.0.3.</p> - <dl> - <dt>Dependencies:</dt> - <dd>SDK Tools r14 or higher is required.</dd> - </dl> - - </div> -</div> - -<h2 id="api">API Overview</h2> - -<p>The sections below provide a technical overview of new APIs in Android 4.0.3.</p> - -<div class="toggle-content closed" style="padding-left:1em;"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - <strong>Table of Contents</strong> - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em;"> - <ol class="toc" style="margin-left:-1em"> - <li><a href="#contacts">Social stream API in Contacts Provider</a></li> - <li><a href="#calendar">Calendar Provider</a></li> - <li><a href="#widgets">Home screen widgets</a></li> - <li><a href="#textservices">Spell-checking</a></li> - <li><a href="#bluetooth">Bluetooth</a></li> - <li><a href="#ui">UI toolkit</a></li> - <li><a href="#accessibility">Accessibility</a></li> - <li><a href="#tts">Text-to-speech</a></li> - <li><a href="#database">Database</a></li> - <li><a href="#intents">Intents</a></li> - <li><a href="#camera">Camera</a></li> - <li><a href="#permissions">Permissions</a></li> - </ol> - </div> -</div> - - - - - -<h3 id="contacts">Social stream API in Contacts Provider</h3> - -<p>Applications that use social stream data such as status updates and check-ins -can now sync that data with each of the user’s contacts, providing items in a -stream along with photos for each.</p> - -<p>The database table that contains an individual contact’s social stream is -defined by {@link android.provider.ContactsContract.StreamItems}, the Uri for -which is nested within the {@link android.provider.ContactsContract.RawContacts} -directory to which the stream items belong. Each social stream table includes -several columns for metadata about each stream item, such as an icon -representing the source (an avatar), a label for the item, the primary text -content, comments about the item (such as responses from other people), and -more. Photos associated with a stream are stored in another table, defined by -{@link android.provider.ContactsContract.StreamItemPhotos}, which is available -as a sub-directory of the {@link android.provider.ContactsContract.StreamItems} -Uri.</p> - -<p>See {@link android.provider.ContactsContract.StreamItems} and -{@link android.provider.ContactsContract.StreamItemPhotos} for more information.</p> - -<p>To read or write social stream items for a contact, an application must -request permission from the user by declaring <code><uses-permission -android:name="android.permission.READ_SOCIAL_STREAM"></code> and/or <code><uses-permission -android:name="android.permission.WRITE_SOCIAL_STREAM"></code> in their manifest files.</p> - -<h3 id="calendar">Calendar Provider</h4> -<ul> -<li>Adds the class {@link android.provider.CalendarContract.Colors} to represent -a color table in the <a href="{@docRoot}guide/topics/providers/calendar-provider.html">Calendar -Provider</a>. The class provides fields for accessing -colors available for a given account. Colors are referenced by -{@link android.provider.CalendarContract.ColorsColumns#COLOR_KEY COLOR_KEY} -which must be unique for a given account name/type. These values can only be -updated by the sync adapter.</li> -<li>Adds {@link android.provider.CalendarContract.CalendarColumns#ALLOWED_AVAILABILITY ALLOWED_AVAILABILITY} -and -{@link android.provider.CalendarContract.CalendarColumns#ALLOWED_ATTENDEE_TYPES ALLOWED_ATTENDEE_TYPES} -for exchange/sync support.</li> -<li>Adds {@link android.provider.CalendarContract.AttendeesColumns#TYPE_RESOURCE} -(such as conference rooms) for attendees and -{@link android.provider.CalendarContract.EventsColumns#AVAILABILITY_TENTATIVE}, -as well as {@link android.provider.CalendarContract.EventsColumns#EVENT_COLOR_KEY} -for events.</li> -</ul> - -<h3 id="widgets">Home screen widgets</h3> - -<p>Starting from Android 4.0, home screen widgets should no longer include their -own padding. Instead, the system now automatically adds padding for each widget, -based the characteristics of the current screen. This leads to a more uniform, -consistent presentation of widgets in a grid. To assist applications that host -home screen widgets, the platform provides a new method -{@link android.appwidget.AppWidgetHostView#getDefaultPaddingForWidget(android.content.Context, android.content.ComponentName, android.graphics.Rect) -getDefaultPaddingForWidget()}. Applications can call this method to get the -system-defined padding and account for it when computing the number of cells to -allocate to the widget.</p> - -<h3 id="textservices">Spell-checking</h3> - -<ul> -<li>For apps that accessing spell-checker services, a new {@link -android.view.textservice.SpellCheckerSession#cancel() cancel()} method cancels -any pending and running spell-checker tasks in a session.</li> - -<li>For spell-checker services, a new suggestions flag, -{@link android.view.textservice.SuggestionsInfo#RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS}, -lets the services distinguish higher-confidence suggestions from -lower-confidence ones. For example, a spell-checker could set the flag if an -input word is not in the user dictionary but has likely suggestions, or not set -the flag if an input word is not in the dictionary and has suggestions that are -likely to be less useful. - -<p>Apps connected to the spell-checker can use the {@link -android.view.textservice.SuggestionsInfo#RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS} -flag in combination with other suggestion attributes, as well as the {@link -android.view.textservice.SuggestionsInfo#getSuggestionsAttributes()} and {@link -android.view.textservice.SuggestionsInfo#getSuggestionsCount()} methods, to -determine whether to mark input words as typos and offer suggestions.</p></li> - -<li>A new {@link android.text.style.SuggestionSpan#FLAG_AUTO_CORRECTION} style -for text spans indicates that auto correction is about to be applied to a -word/text that the user is typing/composing. This type of suggestion is rendered -differently, to indicate the auto correction is happening.</li> -</ul> - -<h3 id="bluetooth">Bluetooth</h3> -<p>New public methods {@link -android.bluetooth.BluetoothDevice#fetchUuidsWithSdp()} and {@link -android.bluetooth.BluetoothDevice#getUuids()} let apps determine the features -(UUIDs) supported by a remote device. In the case of {@link -android.bluetooth.BluetoothDevice#fetchUuidsWithSdp()}, the system performs a -service discovery on the remote device to get the UUIDs supported, then -broadcasts the result in an {@link -android.bluetooth.BluetoothDevice#ACTION_UUID} intent.</p> - -<h3 id="ui">UI toolkit</h3> - -<p>New methods {@link android.app.Fragment#setUserVisibleHint(boolean) setUserVisibleHint()} and -{@link android.app.Fragment#getUserVisibleHint() getUserVisibleHint()} allow a -fragment to set a hint of whether or not it is currently user-visible. The -system defers the start of fragments that are not user-visible until the loaders -for visible fragments have run. The visibility hint is "true" by default.</li> -</p> - -<h3 id="graphics">Graphics</h3> - -<ul> -<li>New method {@link android.graphics.SurfaceTexture#setDefaultBufferSize(int -width, int height)} in {@link android.graphics.SurfaceTexture} sets the default size of the image -buffers. This method may be used to set the image size when producing images -with {@link android.graphics.Canvas} (via {@link -android.view.Surface#lockCanvas}), or OpenGL ES (via an EGLSurface).</li> -<li>Adds definitions for the enums of the GL_OES_EGL_image_external OpenGL ES extension — -{@link android.opengl.GLES11Ext#GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES}, -{@link android.opengl.GLES11Ext#GL_SAMPLER_EXTERNAL_OES}, -{@link android.opengl.GLES11Ext#GL_TEXTURE_BINDING_EXTERNAL_OES}, and -{@link android.opengl.GLES11Ext#GL_TEXTURE_EXTERNAL_OES}.</li> -</ul> - -<h3 id="accessibility">Accessibility</h3> - -<ul> -<li>Clients of {@link android.widget.RemoteViews} can now use the method {@link -android.widget.RemoteViews#setContentDescription(int, java.lang.CharSequence) -setContentDescription()} to set and get the content description of any View in -the inflated layout.</li> - -<li>The methods {@link android.view.accessibility.AccessibilityRecord#getMaxScrollX()}, -{@link android.view.accessibility.AccessibilityRecord#getMaxScrollY()}, -{@link android.view.accessibility.AccessibilityRecord#setMaxScrollX(int) setMaxScrollX()}, and -{@link android.view.accessibility.AccessibilityRecord#setMaxScrollY(int) setMaxScrollY()} -allow apps to get and set the maximum scroll offset for an -{@link android.view.accessibility.AccessibilityRecord} object.</li> - -<li>When touch-exploration mode is enabled, a new secure setting -{@link android.provider.Settings.Secure#ACCESSIBILITY_SPEAK_PASSWORD} -indicates whether the user requests the IME to speak text entered in password fields, even when -a headset is not in use. By default, no password text is spoken unless a headset -is in use.</li> -</ul> - -<h3 id="tts">Text-to-speech</h3> - -<ul> -<li>Adds the new method {@link -android.speech.tts.TextToSpeech.Engine#getFeatures(java.util.Locale) -getFeatures()}for querying and enabling network TTS support. -<li>Adds a new listener class, {@link -android.speech.tts.UtteranceProgressListener}, that engines can register to -receive notification of speech-synthesis errors.</li> -</ul> - -<h3 id="database">Database</h3> - -<ul> -<li>A new {@link android.database.CrossProcessCursorWrapper} class lets content -providers return results for a cross-process query more efficiently. The new -class is a useful building block for wrapping cursors that will be sent to -processes remotely. It can also transform normal {@link android.database.Cursor} -objects into {@link android.database.CrossProcessCursor} objects -transparently. - -<p>The {@link android.database.CrossProcessCursorWrapper} class fixes common -performance issues and bugs that applications have encountered when -implementing content providers.</p></li> - -<li>The {@link android.database.CursorWindow#CursorWindow(java.lang.String)} -constructor now takes a name string as input. The system no longer distinguishes -between local and remote cursor windows, so {@link -android.database.CursorWindow#CursorWindow(boolean)} is now deprecated.</li> -</ul> - -<h3 id="intents">Intents</h3> - -<p>Adds new categories for targeting common types of applications on the -device, such as {@link android.content.Intent#CATEGORY_APP_BROWSER}, {@link -android.content.Intent#CATEGORY_APP_CALENDAR}, {@link -android.content.Intent#CATEGORY_APP_MAPS}, and more.</li> - -<h3 id="camera">Camera</h3> - -<ul> -<li>{@link android.media.MediaMetadataRetriever} adds the new constant -{@link android.media.MediaMetadataRetriever#METADATA_KEY_LOCATION} to let apps -access retrieve location information for an image or video. </li> - -<li>{@link android.media.CamcorderProfile} adds the QVGA (320x240) resolution -profiles. Quality level is represented by the -{@link android.media.CamcorderProfile#QUALITY_QVGA}.and -{@link android.media.CamcorderProfile#QUALITY_TIME_LAPSE_QVGA} constants.</li> - -<li>New methods {@link android.hardware.Camera.Parameters#setVideoStabilization(boolean) setVideoStabilization()}, -{@link android.hardware.Camera.Parameters#getVideoStabilization() setVideoStabilization()}, and {@link android.hardware.Camera.Parameters#isVideoStabilizationSupported() isVideoStabilizationSupported()} -let you check and manage video stabilization for a {@link android.hardware.Camera}.</li> -</ul> - -<h3 id="Permissions">Permissions</h3> - -<p>The following are new permissions:</p> -<ul> -<li>{@link android.Manifest.permission#READ_SOCIAL_STREAM} and -{@link android.Manifest.permission#WRITE_SOCIAL_STREAM}: Allow a sync -adapter to read and write social stream data to a contact in the shared -Contacts Provider.</li> -</ul> - - -<div class="special" style="margin-top:2em"> -<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API Level -{@sdkPlatformApiLevel}), see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API Differences Report</a>.</p> -</div> - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} API is assigned an integer -identifier—<strong>{@sdkPlatformApiLevel}</strong>—that is stored in the system itself. -This identifier, called the "API level", allows the system to correctly determine whether an -application is compatible with the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need compile the -application against an Android platform that supports API level {@sdkPlatformApiLevel} or -higher. Depending on your needs, you might also need to add an -<code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> attribute to the -<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> -element.</p> - -<p>For more information, see the <a href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> -document. </p> - - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>API Demos</li> -<li>Browser</li> -<li>Calculator</li> -<li>Calendar</li> -<li>Camera</li> -<li>Clock</li> -<li>Custom Locale</li> -<li>Dev Tools</li> -<li>Downloads</li> -<li>Email</li> -<li>Gallery</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Gestures Builder</li> -<li>Messaging</li> -<li>Music</li> -<li>People</li> -<li>Phone</li> -<li>Search</li> -<li>Settings</li> -<li>Speech Recorder</li> -<li>Widget Preview</li> -</ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable SDK platform provides a variety of built-in -locales. In some cases, region-specific strings are available for the locales. In other cases, a -default version of the language is used. The languages that are available in the Android 3.0 system -image are listed below (with <em>language</em>_<em>country/region</em> locale descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Arabic, Egypt (ar_EG)</li> -<li>Arabic, Israel (ar_IL)</li> -<li>Bulgarian, Bulgaria (bg_BG)</li> -<li>Catalan, Spain (ca_ES)</li> -<li>Czech, Czech Republic (cs_CZ)</li> -<li>Danish, Denmark(da_DK)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Greek, Greece (el_GR)</li> -<li>English, Australia (en_AU)</li> -<li>English, Canada (en_CA)</li> -<li>English, Britain (en_GB)</li> -<li>English, Ireland (en_IE)</li> -<li>English, India (en_IN)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>English, US (en_US)</li> -<li>English, South Africa (en_ZA)</li> -<li>Spanish (es_ES)</li> -<li>Spanish, US (es_US)</li> -<li>Finnish, Finland (fi_FI)</li> -<li>French, Belgium (fr_BE)</li> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>French, France (fr_FR)</li> -<li>Hebrew, Israel (he_IL)</li> -<li>Hindi, India (hi_IN)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>Croatian, Croatia (hr_HR)</li> -<li>Hungarian, Hungary (hu_HU)</li> -<li>Indonesian, Indonesia (id_ID)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Italian, Italy (it_IT)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Lithuanian, Lithuania (lt_LT)</li> -<li>Latvian, Latvia (lv_LV)</li> -<li>Norwegian bokmål, Norway (nb_NO)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Polish (pl_PL)</li> -<li>Portuguese, Brazil (pt_BR)</li> -<li>Portuguese, Portugal (pt_PT)</li> -<li>Romanian, Romania (ro_RO)</li> -<li>Russian (ru_RU)</li></li> -<li>Slovak, Slovakia (sk_SK)</li> -<li>Slovenian, Slovenia (sl_SI)</li> -<li>Serbian (sr_RS)</li> -<li>Swedish, Sweden (sv_SE)</li> -<li>Thai, Thailand (th_TH)</li> -<li>Tagalog, Philippines (tl_PH)</li> -<li>Turkish, Turkey (tr_TR)</li> -<li>Ukrainian, Ukraine (uk_UA)</li> -<li>Vietnamese, Vietnam (vi_VN)</li> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -</td> -</tr> -</table> - -<p class="note"><strong>Note:</strong> The Android platform may support more -locales than are included in the SDK system image. All of the supported locales -are available in the <a href="http://source.android.com/">Android Open Source -Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes the following emulator skins:</p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA400 (240x400, low density, normal screen) - </li> - <li> - WQVGA432 (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> - <li> - WXGA720 (1280x720, extra-high density, normal screen) - </li> - <li> - WSVGA (1024x600, medium density, large screen) - </li> - <li> - WXGA (1280x800, medium density, xlarge screen) - </li> -</ul> - -<p>To test your application on an emulator that represents the latest Android device, you can create -an AVD with the new WXGA720 skin (it's an xhdpi, normal screen device). Note that the emulator -currently doesn't support the new on-screen navigation bar for devices without hardware navigation -buttons, so when using this skin, you must use keyboard keys <em>Home</em> for the Home button, -<em>ESC</em> for the Back button, and <em>F2</em> or <em>Page-up</em> for the Menu button.</p> - -<p>However, due to performance issues in the emulator when running high-resolution screens such as -the one for the WXGA720 skin, we recommend that you primarily use the traditional WVGA800 skin -(hdpi, normal screen) to test your application.</p> - diff --git a/docs/html/sdk/android-4.0.jd b/docs/html/sdk/android-4.0.jd deleted file mode 100644 index e3b13c8..0000000 --- a/docs/html/sdk/android-4.0.jd +++ /dev/null @@ -1,2059 +0,0 @@ -page.title=Android 4.0 Platform -sdk.platform.version=4.0 -sdk.platform.apiLevel=14 -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#relnotes">Revisions</a></li> - <li><a href="#api">API Overview</a></li> - <li><a href="#Honeycomb">Previous APIs</a></li> - <li><a href="#api-level">API Level</a></li> - <li><a href="#apps">Built-in Applications</a></li> - <li><a href="#locs">Locales</a></li> - <li><a href="#skins">Emulator Skins</a></li> -</ol> - -<h2>Reference</h2> -<ol> -<li><a -href="{@docRoot}sdk/api_diff/14/changes.html">API -Differences Report »</a> </li> -</ol> - -</div> -</div> - - -<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p> - -<p>Android 4.0 is a major platform release that adds a variety of new features for users and app -developers. Besides all the new features and APIs discussed below, Android 4.0 is an important -platform release because it brings the extensive set of APIs and Holographic themes from Android 3.x -to smaller screens. As an app developer, you now have a single platform and unified API framework -that enables you to develop and publish your application with a single APK that provides an -optimized user experience for handsets, tablets, and more, when running the same version of -Android—Android 4.0 (API level 14) or greater. </p> - -<p>The Android {@sdkPlatformVersion} platform is available as a -downloadable component for the Android SDK so you can begin developing and testing your -applications on Android 4.0 with the Android emulator. The downloadable platform includes -an Android library and system image, as well as a set of emulator skins and -more. The downloadable platform does not include any external libraries.</p> - -<p>To start developing or testing against Android {@sdkPlatformVersion}, -use the Android SDK Manager to download the platform into your SDK. For more -information, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK -Components</a>. If you are new to Android, <a -href="{@docRoot}sdk/index.html">download the SDK Starter Package</a> first.</p> - -<p class="note"><strong>Reminder:</strong> If you've already published an -Android application, please test your application on Android {@sdkPlatformVersion} as -soon as possible to be sure your application provides the best -experience possible on the latest Android-powered devices.</p> - -<p>For a high-level overview of the new user and developer features in Android 4.0, see the -<a href="http://developer.android.com/sdk/android-4.0-highlights.html">Platform Highlights</a>.</p> - - - -<h2 id="relnotes">Revisions</h2> - -<p>To determine what revision of the Android {@sdkPlatformVersion} platform you -have installed, refer to the "Installed Packages" listing in the Android SDK Manager.</p> - -<p class="caution"><strong>Important:</strong> To download the new Android -4.0 system components from the Android SDK Manager, you must first update the -SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, -the Android 4.0 system components will not be available for download.</p> - -<div class="toggle-content opened" style="padding-left:1em;"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 2</a> <em>(December 2011)</em> - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em;"> - <p>Maintenance update. The system version is 4.0.2.</p> - <dl> - <dt>Dependencies:</dt> - <dd>SDK Tools r14 or higher is required.</dd> - </dl> - </div> -</div> - -<div class="toggle-content closed" style="padding-left:1em;"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - Android {@sdkPlatformVersion}, Revision 1</a> <em>(October 2011)</em> - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em;"> - <p>Initial release. The system version is 4.0.1.</p> - <dl> - <dt>Dependencies:</dt> - <dd>SDK Tools r14 or higher is required.</dd> - </dl> - </div> -</div> - - -<h2 id="api">API Overview</h2> - -<p>The sections below provide a technical overview of new APIs in Android 4.0.</p> - -<div class="toggle-content closed" style="padding-left:1em;"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" -class="toggle-content-img" alt="" /> - <strong>Table of Contents</strong> - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em;"> - <ol class="toc" style="margin-left:-1em"> - <li><a href="#Contacts">Social APIs in Contacts Provider</a></li> - <li><a href="#Calendar">Calendar Provider</a></li> - <li><a href="#Voicemail">Voicemail Provider</a></li> - <li><a href="#Multimedia">Multimedia</a></li> - <li><a href="#Camera">Camera</a></li> - <li><a href="#AndroidBeam">Android Beam (NDEF Push with NFC)</a></li> - <li><a href="#WiFiDirect">Wi-Fi Direct</a></li> - <li><a href="#Bluetooth">Bluetooth Health Devices</a></li> - <li><a href="#A11y">Accessibility</a></li> - <li><a href="#SpellChecker">Spell Checker Services</a></li> - <li><a href="#TTS">Text-to-speech Engines</a></li> - <li><a href="#NetworkUsage">Network Usage</a></li> - <li><a href="#RenderScript">RenderScript</a></li> - <li><a href="#Enterprise">Enterprise</a></li> - <li><a href="#Sensors">Device Sensors</a></li> - <li><a href="#ActionBar">Action Bar</a></li> - <li><a href="#UI">User Interface and Views</a></li> - <li><a href="#Input">Input Framework</a></li> - <li><a href="#Properties">Properties</a></li> - <li><a href="#HwAccel">Hardware Acceleration</a></li> - <li><a href="#Jni">JNI Changes</a></li> - <li><a href="#WebKit">WebKit</a></li> - <li><a href="#Permissions">Permissions</a></li> - <li><a href="#DeviceFeatures">Device Features</a></li> - </ol> - </div> -</div> - - - - - -<h3 id="Contacts">Social APIs in Contacts Provider</h3> - -<p>The contact APIs defined by the {@link android.provider.ContactsContract} provider have been -extended to support new social-oriented features such as a personal profile for the device owner and -the ability for users to invite individual contacts to social networks that are installed on the -device.</p> - - -<h4>User Profile</h4> - -<p>Android now includes a personal profile that represents the device owner, as defined by the -{@link android.provider.ContactsContract.Profile} table. Social apps that maintain a user identity -can contribute to the user's profile data by creating a new {@link -android.provider.ContactsContract.RawContacts} entry within the {@link -android.provider.ContactsContract.Profile}. That is, raw contacts that represent the device user do -not belong in the traditional raw contacts table defined by the {@link -android.provider.ContactsContract.RawContacts} Uri; instead, you must add a profile raw contact in -the table at {@link android.provider.ContactsContract.Profile#CONTENT_RAW_CONTACTS_URI}. Raw -contacts in this table are then aggregated into the single user-visible profile labeled "Me".</p> - -<p>Adding a new raw contact for the profile requires the {@link -android.Manifest.permission#WRITE_PROFILE} permission. Likewise, in order to read from the profile -table, you must request the {@link android.Manifest.permission#READ_PROFILE} permission. However, -most apps should not need to read the user profile, even when contributing data to the -profile. Reading the user profile is a sensitive permission and you should expect users to be -skeptical of apps that request it.</p> - - -<h4>Invite Intent</h4> - -<p>The {@link android.provider.ContactsContract.Intents#INVITE_CONTACT} intent action allows an app -to invoke an action that indicates the user wants to add a contact to a social network. The app -receiving the app uses it to invite the specified contact to that -social network. Most apps will be on the receiving-end of this operation. For example, the -built-in People app invokes the invite intent when the user selects "Add connection" for a specific -social app that's listed in a person's contact details.</p> - -<p>To make your app visible as in the "Add connection" list, your app must provide a sync adapter to -sync contact information from your social network. You must then indicate to the system that your -app responds to the {@link android.provider.ContactsContract.Intents#INVITE_CONTACT} intent by -adding the {@code inviteContactActivity} attribute to your app’s sync configuration file, with a -fully-qualified name of the activity that the system should start when sending the invite intent. -The activity that starts can then retrieve the URI for the contact in question from the intent’s -data and perform the necessary work to invite that contact to the network or add the person to the -user’s connections.</p> - -<p>See the <a href="{@docRoot}resources/samples/SampleSyncAdapter/index.html">Sample Sync -Adapter</a> app for an example (specifically, see the <a -href="{@docRoot}resources/samples/SampleSyncAdapter/res/xml-v14/contacts.html">contacts.xml</a> -file).</p> - - -<h4>Large photos</h4> - -<p>Android now supports high resolution photos for contacts. Now, when you push a photo into a -contact record, the system processes it into both a 96x96 thumbnail (as it has previously) and a -256x256 "display photo" that's stored in a new file-based photo store (the exact dimensions that the -system chooses may vary in the future). You can add a large photo to a contact by putting a large -photo in the usual {@link android.provider.ContactsContract.CommonDataKinds.Photo#PHOTO} column of a -data row, which the system will then process into the appropriate thumbnail and display photo -records.</p> - - -<h4>Contact Usage Feedback</h4> - -<p>The new {@link android.provider.ContactsContract.DataUsageFeedback} APIs allow you to help track -how often the user uses particular methods of contacting people, such as how often the user uses -each phone number or e-mail address. This information helps improve the ranking for each contact -method associated with each person and provide better suggestions for contacting each person.</p> - - - - - -<h3 id="Calendar">Calendar Provider</h3> - -<p>The new calendar APIs allow you to read, add, modify and delete calendars, events, attendees, -reminders and alerts, which are stored in the Calendar Provider.</p> - -<p>A variety of apps and widgets can use these APIs to read and modify calendar events. However, -some of the most compelling use cases are sync adapters that synchronize the user's calendar from -other calendar services with the Calendar Provider, in order to offer a unified location for all the -user's events. Google Calendar events, for example, are synchronized with the Calendar Provider by -the Google Calendar Sync Adapter, allowing these events to be viewed with Android's built-in -Calendar app.</p> - -<p>The data model for calendars and event-related information in the Calendar Provider is -defined by {@link android.provider.CalendarContract}. All the user’s calendar data is stored in a -number of tables defined by various subclasses of {@link android.provider.CalendarContract}:</p> - -<ul> -<li>The {@link android.provider.CalendarContract.Calendars} table holds the calendar-specific -information. Each row in this table contains the details for a single calendar, such as the name, -color, sync information, and so on.</li> - -<li>The {@link android.provider.CalendarContract.Events} table holds event-specific information. -Each row in this table contains the information for a single event, such as the -event title, location, start time, end time, and so on. The event can occur one time or recur -multiple times. Attendees, reminders, and extended properties are stored in separate tables and -use the event’s {@code _ID} to link them with the event.</li> - -<li>The {@link android.provider.CalendarContract.Instances} table holds the start and end time for -occurrences of an event. Each row in this table represents a single occurrence. For one-time events -there is a one-to-one mapping of instances to events. For recurring events, multiple rows are -automatically generated to correspond to the multiple occurrences of that event.</li> - -<li>The {@link android.provider.CalendarContract.Attendees} table holds the event attendee or guest -information. Each row represents a single guest of an event. It specifies the type of guest the -person is and the person’s response for the event.</li> - -<li>The {@link android.provider.CalendarContract.Reminders} table holds the alert/notification data. -Each row represents a single alert for an event. An event can have multiple reminders. The number of -reminders per event is specified in {@code MAX_REMINDERS}, which is set by the sync adapter that -owns the given calendar. Reminders are specified in number-of-minutes before the event is -scheduled and specify an alarm method such as to use an alert, email, or SMS to remind -the user.</li> - -<li>The {@link android.provider.CalendarContract.ExtendedProperties} table hold opaque data fields -used by the sync adapter. The provider takes no action with items in this table except to delete -them when their related events are deleted.</li> -</ul> - -<p>To access a user’s calendar data with the Calendar Provider, your application must request -the {@link android.Manifest.permission#READ_CALENDAR} permission (for read access) and -{@link android.Manifest.permission#WRITE_CALENDAR} (for write access).</p> - - -<h4>Event intent</h4> - -<p>If all you want to do is add an event to the user’s calendar, you can use an {@link -android.content.Intent#ACTION_INSERT} intent with the data defined by {@link -android.provider.CalendarContract.Events#CONTENT_URI Events.CONTENT_URI} in order to start an -activity in the Calendar app that creates new events. Using the intent does not require any -permission and you can specify event details with the following extras:</p> - -<ul> - <li>{@link android.provider.CalendarContract.EventsColumns#TITLE Events.TITLE}: Name for the -event</li> - <li>{@link -android.provider.CalendarContract#EXTRA_EVENT_BEGIN_TIME CalendarContract.EXTRA_EVENT_BEGIN_TIME}: -Event begin time in milliseconds from the -epoch</li> - <li>{@link -android.provider.CalendarContract#EXTRA_EVENT_END_TIME CalendarContract.EXTRA_EVENT_END_TIME}: Event -end time in milliseconds from the epoch</li> - <li>{@link android.provider.CalendarContract.EventsColumns#EVENT_LOCATION Events.EVENT_LOCATION}: -Location of the event</li> - <li>{@link android.provider.CalendarContract.EventsColumns#DESCRIPTION Events.DESCRIPTION}: Event -description</li> - <li>{@link android.content.Intent#EXTRA_EMAIL Intent.EXTRA_EMAIL}: Email addresses of those to -invite</li> - <li>{@link android.provider.CalendarContract.EventsColumns#RRULE Events.RRULE}: The recurrence -rule for the event</li> - <li>{@link android.provider.CalendarContract.EventsColumns#ACCESS_LEVEL Events.ACCESS_LEVEL}: -Whether the event is private or public</li> - <li>{@link android.provider.CalendarContract.EventsColumns#AVAILABILITY Events.AVAILABILITY}: -Whether the time period of this event allows for other events to be scheduled at the same time</li> -</ul> - - - - -<h3 id="Voicemail">Voicemail Provider</h3> - -<p>The new Voicemail Provider allows applications to add voicemails to the -device, in order to present all the user's voicemails in a single visual presentation. For instance, -it’s possible that a user has multiple voicemail sources, such as -one from the phone’s service provider and others from VoIP or other alternative voice -services. These apps can use the Voicemail Provider APIs to add their voicemails to the device. The -built-in Phone application then presents all voicemails to the user in a unified presentation. -Although the system’s Phone application is the only application that can read all the voicemails, -each application that provides voicemails can read those that it has added to the system (but cannot -read voicemails from other services).</p> - -<p>Because the APIs currently do not allow third-party apps to read all the voicemails from the -system, the only third-party apps that should use the voicemail APIs are those that have voicemail -to deliver to the user.</p> - -<p>The {@link android.provider.VoicemailContract} class defines the content provider for the -Voicemail Provder. The subclasses {@link android.provider.VoicemailContract.Voicemails} and {@link -android.provider.VoicemailContract.Status} provide tables in which apps can -insert voicemail data for storage on the device. For an example of a voicemail provider app, see the -<a href="{@docRoot}resources/samples/VoicemailProviderDemo/index.html">Voicemail Provider -Demo</a>.</p> - - - - - -<h3 id="Multimedia">Multimedia</h3> - -<p>Android 4.0 adds several new APIs for applications that interact with media such as photos, -videos, and music.</p> - - -<h4>Media Effects</h4> - -<p>A new media effects framework allows you to apply a variety of visual effects to images and -videos. For example, image effects allow you to easily fix red-eye, convert an image to grayscale, -adjust brightness, adjust saturation, rotate an image, apply a fisheye effect, and much more. The -system performs all effects processing on the GPU to obtain maximum performance.</p> - -<p>For maximum performance, effects are applied directly to OpenGL textures, so your application -must have a valid OpenGL context before it can use the effects APIs. The textures to which you apply -effects may be from bitmaps, videos or even the camera. However, there are certain restrictions that -textures must meet:</p> -<ol> -<li>They must be bound to a {@link android.opengl.GLES20#GL_TEXTURE_2D} texture image</li> -<li>They must contain at least one mipmap level</li> -</ol> - -<p>An {@link android.media.effect.Effect} object defines a single media effect that you can apply to -an image frame. The basic workflow to create an {@link android.media.effect.Effect} is:</p> - -<ol> -<li>Call {@link android.media.effect.EffectContext#createWithCurrentGlContext -EffectContext.createWithCurrentGlContext()} from your OpenGL ES 2.0 context.</li> -<li>Use the returned {@link android.media.effect.EffectContext} to call {@link -android.media.effect.EffectContext#getFactory EffectContext.getFactory()}, which returns an instance -of {@link android.media.effect.EffectFactory}.</li> -<li>Call {@link android.media.effect.EffectFactory#createEffect createEffect()}, passing it an -effect name from @link android.media.effect.EffectFactory}, such as {@link -android.media.effect.EffectFactory#EFFECT_FISHEYE} or {@link -android.media.effect.EffectFactory#EFFECT_VIGNETTE}.</li> -</ol> - -<p>You can adjust an effect’s parameters by calling {@link android.media.effect.Effect#setParameter -setParameter()} and passing a parameter name and parameter value. Each type of effect accepts -different parameters, which are documented with the effect name. For example, {@link -android.media.effect.EffectFactory#EFFECT_FISHEYE} has one parameter for the {@code scale} of the -distortion.</p> - -<p>To apply an effect on a texture, call {@link android.media.effect.Effect#apply apply()} on the -{@link -android.media.effect.Effect} and pass in the input texture, it’s width and height, and the output -texture. The input texture must be bound to a {@link android.opengl.GLES20#GL_TEXTURE_2D} texture -image (usually done by calling the {@link android.opengl.GLES20#glTexImage2D glTexImage2D()} -function). You may provide multiple mipmap levels. If the output texture has not been bound to a -texture image, it will be automatically bound by the effect as a {@link -android.opengl.GLES20#GL_TEXTURE_2D} and with one mipmap level (0), which will have the same -size as the input.</p> - -<p>All effects listed in {@link android.media.effect.EffectFactory} are guaranteed to be supported. -However, some additional effects available from external libraries are not supported by all devices, -so you must first check if the desired effect from the external library is supported by calling -{@link android.media.effect.EffectFactory#isEffectSupported isEffectSupported()}.</p> - - -<h4>Remote control client</h4> - -<p>The new {@link android.media.RemoteControlClient} allows media players to enable playback -controls from remote control clients such as the device lock screen. Media players can also expose -information about the media currently playing for display on the remote control, such as track -information and album art.</p> - -<p>To enable remote control clients for your media player, instantiate a {@link -android.media.RemoteControlClient} with its constructor, passing it a {@link -android.app.PendingIntent} that broadcasts {@link -android.content.Intent#ACTION_MEDIA_BUTTON}. The intent must also declare the explicit {@link -android.content.BroadcastReceiver} component in your app that handles the {@link -android.content.Intent#ACTION_MEDIA_BUTTON} event.</p> - -<p>To declare which media control inputs your player can handle, you must call {@link -android.media.RemoteControlClient#setTransportControlFlags setTransportControlFlags()} on your -{@link android.media.RemoteControlClient}, passing a set of {@code FLAG_KEY_MEDIA_*} flags, such as -{@link android.media.RemoteControlClient#FLAG_KEY_MEDIA_PREVIOUS} and {@link -android.media.RemoteControlClient#FLAG_KEY_MEDIA_NEXT}.</p> - -<p>You must then register your {@link android.media.RemoteControlClient} by passing it to {@link -android.media.AudioManager#registerRemoteControlClient MediaManager.registerRemoteControlClient()}. -Once registered, the broadcast receiver you declared when you instantiated the {@link -android.media.RemoteControlClient} will receive {@link android.content.Intent#ACTION_MEDIA_BUTTON} -events when a button is pressed from a remote control. The intent you receive includes the {@link -android.view.KeyEvent} for the media key pressed, which you can retrieve from the intent with {@link -android.content.Intent#getParcelableExtra getParcelableExtra(Intent.EXTRA_KEY_EVENT)}.</p> - -<p>To display information on the remote control about the media playing, call {@link -android.media.RemoteControlClient#editMetadata editMetaData()} and add metadata to the returned -{@link android.media.RemoteControlClient.MetadataEditor}. You can supply a bitmap for media artwork, -numerical information such as elapsed time, and text information such as the track title. For -information on available keys see the {@code METADATA_KEY_*} flags in {@link -android.media.MediaMetadataRetriever}.</p> - -<p>For a sample implementation, see the <a -href="{@docRoot}resources/samples/RandomMusicPlayer/index.html">Random Music Player</a>, which -provides compatibility logic such that it enables the remote control client on Android 4.0 -devices while continuing to support devices back to Android 2.1.</p> - - -<h4>Media player</h4> - -<ul> -<li>Streaming online media from {@link android.media.MediaPlayer} now requires the {@link -android.Manifest.permission#INTERNET} permission. If you use {@link android.media.MediaPlayer} to -play content from the Internet, be sure to add the {@link android.Manifest.permission#INTERNET} -permission to your manifest or else your media playback will not work beginning with Android -4.0.</li> - -<li>{@link android.media.MediaPlayer#setSurface(Surface) setSurface()} allows you define a {@link -android.view.Surface} to behave as the video sink.</li> - -<li>{@link android.media.MediaPlayer#setDataSource(Context,Uri,Map) setDataSource()} allows you to -send additional HTTP headers with your request, which can be useful for HTTP(S) live streaming</li> - -<li>HTTP(S) live streaming now respects HTTP cookies across requests</li> -</ul> - - -<h4>Media types</h4> - -<p>Android 4.0 adds support for:</p> -<ul> -<li>HTTP/HTTPS live streaming protocol version 3 </li> -<li>ADTS raw AAC audio encoding</li> -<li>WEBP images</li> -<li>Matroska video</li> -</ul> -<p>For more info, see <a href="{@docRoot}guide/appendix/media-formats.html">Supported Media -Formats</a>.</p> - - - - - -<h3 id="Camera">Camera</h3> - -<p>The {@link android.hardware.Camera} class now includes APIs for detecting faces and controlling -focus and metering areas.</p> - - -<h4>Face detection</h4> - -<p>Camera apps can now enhance their abilities with Android’s face detection APIs, which not -only detect the face of a subject, but also specific facial features, such as the eyes and mouth. -</p> - -<p>To detect faces in your camera application, you must register a {@link -android.hardware.Camera.FaceDetectionListener} by calling {@link -android.hardware.Camera#setFaceDetectionListener setFaceDetectionListener()}. You can then start -your camera surface and start detecting faces by calling {@link -android.hardware.Camera#startFaceDetection}.</p> - -<p>When the system detects one or more faces in the camera scene, it calls the {@link -android.hardware.Camera.FaceDetectionListener#onFaceDetection onFaceDetection()} callback in your -implementation of {@link android.hardware.Camera.FaceDetectionListener}, including an array of -{@link android.hardware.Camera.Face} objects.</p> - -<p>An instance of the {@link android.hardware.Camera.Face} class provides various information about -the face detected, including:</p> -<ul> -<li>A {@link android.graphics.Rect} that specifies the bounds of the face, relative to the camera's -current field of view</li> -<li>An integer betwen 1 and 100 that indicates how confident the system is that the object is a -human face</li> -<li>A unique ID so you can track multiple faces</li> -<li>Several {@link android.graphics.Point} objects that indicate where the eyes and mouth are -located</li> -</ul> - -<p class="note"><strong>Note:</strong> Face detection may not be supported on some -devices, so you should check by calling {@link -android.hardware.Camera.Parameters#getMaxNumDetectedFaces()} and ensure the return -value is greater than zero. Also, some devices may not support identification of eyes and mouth, -in which case, those fields in the {@link android.hardware.Camera.Face} object will be null.</p> - - -<h4>Focus and metering areas</h4> - -<p>Camera apps can now control the areas that the camera uses for focus and for metering white -balance -and auto-exposure. Both features use the new {@link android.hardware.Camera.Area} class to specify -the region of the camera’s current view that should be focused or metered. An instance of the {@link -android.hardware.Camera.Area} class defines the bounds of the area with a {@link -android.graphics.Rect} and the area's weight—representing the level of importance of that -area, relative to other areas in consideration—with an integer.</p> - -<p>Before setting either a focus area or metering area, you should first call {@link -android.hardware.Camera.Parameters#getMaxNumFocusAreas} or {@link -android.hardware.Camera.Parameters#getMaxNumMeteringAreas}, respectively. If these return zero, then -the device does not support the corresponding feature.</p> - -<p>To specify the focus or metering areas to use, simply call {@link -android.hardware.Camera.Parameters#setFocusAreas setFocusAreas()} or {@link -android.hardware.Camera.Parameters#setMeteringAreas setMeteringAreas()}. Each take a {@link -java.util.List} of {@link android.hardware.Camera.Area} objects that indicate the areas to consider -for focus or metering. For example, you might implement a feature that allows the user to set the -focus area by touching an area of the preview, which you then translate to an {@link -android.hardware.Camera.Area} object and request that the camera focus on that area of the scene. -The focus or exposure in that area will continually update as the scene in the area changes.</p> - - -<h4>Continuous auto focus for photos</h4> - -<p>You can now enable continuous auto focusing (CAF) when taking photos. To enable CAF in your -camera app, pass {@link android.hardware.Camera.Parameters#FOCUS_MODE_CONTINUOUS_PICTURE} -to {@link android.hardware.Camera.Parameters#setFocusMode setFocusMode()}. When ready to capture -a photo, call {@link android.hardware.Camera#autoFocus autoFocus()}. Your {@link -android.hardware.Camera.AutoFocusCallback} immediately receives a callback to indicate whether -focus was achieved. To resume CAF after receiving the callback, you must call {@link -android.hardware.Camera#cancelAutoFocus()}.</p> - -<p class="note"><strong>Note:</strong> Continuous auto focus is also supported when capturing -video, using {@link android.hardware.Camera.Parameters#FOCUS_MODE_CONTINUOUS_VIDEO}, which was -added in API level 9.</p> - - -<h4>Other camera features</h4> - -<ul> -<li>While recording video, you can now call {@link android.hardware.Camera#takePicture -takePicture()} to save a photo without interrupting the video session. Before doing so, you should -call {@link android.hardware.Camera.Parameters#isVideoSnapshotSupported} to be sure the hardware -supports it.</li> - -<li>You can now lock auto exposure and white balance with {@link -android.hardware.Camera.Parameters#setAutoExposureLock setAutoExposureLock()} and {@link -android.hardware.Camera.Parameters#setAutoWhiteBalanceLock setAutoWhiteBalanceLock()} to prevent -these properties from changing.</li> - -<li>You can now call {@link android.hardware.Camera#setDisplayOrientation -setDisplayOrientation()} while the camera preview is running. Previously, you could call this -only before beginning the preview, but you can now change the orientation at any time.</li> -</ul> - - -<h4>Camera broadcast intents</h4> - -<ul> -<li>{@link android.hardware.Camera#ACTION_NEW_PICTURE Camera.ACTION_NEW_PICTURE}: -This indicates that the user has captured a new photo. The built-in Camera app invokes this -broadcast after a photo is captured and third-party camera apps should also broadcast this intent -after capturing a photo.</li> -<li>{@link android.hardware.Camera#ACTION_NEW_VIDEO Camera.ACTION_NEW_VIDEO}: -This indicates that the user has captured a new video. The built-in Camera app invokes this -broadcast after a video is recorded and third-party camera apps should also broadcast this intent -after capturing a video.</li> -</ul> - - - - - -<h3 id="AndroidBeam">Android Beam (NDEF Push with NFC)</h3> - -<p>Android Beam is a new NFC feature that allows you to send NDEF messages from one device to -another (a process also known as “NDEF Push"). The data transfer is initiated when two -Android-powered devices that support Android Beam are in close proximity (about 4 cm), usually with -their backs touching. The data inside the NDEF message can contain any data that you wish to share -between devices. For example, the People app shares contacts, YouTube shares videos, and Browser -shares URLs using Android Beam.</p> - -<p>To transmit data between devices using Android Beam, you need to create an {@link -android.nfc.NdefMessage} that contains the information you want to share while your activity is in -the foreground. You must then pass the {@link android.nfc.NdefMessage} to the system in one of two -ways:</p> - -<ul> -<li>Define a single {@link android.nfc.NdefMessage} to push while in the activity: -<p>Call {@link android.nfc.NfcAdapter#setNdefPushMessage setNdefPushMessage()} at any time to set -the message you want to send. For instance, you might call this method and pass it your {@link -android.nfc.NdefMessage} during your activity’s {@link android.app.Activity#onCreate onCreate()} -method. Then, whenever Android Beam is activated with another device while the activity is in the -foreground, the system sends the {@link android.nfc.NdefMessage} to the other device.</p></li> - -<li>Define the {@link android.nfc.NdefMessage} to push at the time that Android Beam is initiated: -<p>Implement {@link android.nfc.NfcAdapter.CreateNdefMessageCallback}, in which your -implementation of the {@link -android.nfc.NfcAdapter.CreateNdefMessageCallback#createNdefMessage createNdefMessage()} -method returns the {@link android.nfc.NdefMessage} you want to send. Then pass the {@link -android.nfc.NfcAdapter.CreateNdefMessageCallback} implementation to {@link -android.nfc.NfcAdapter#setNdefPushMessageCallback setNdefPushMessageCallback()}.</p> -<p>In this case, when Android Beam is activated with another device while your activity is in the -foreground, the system calls {@link -android.nfc.NfcAdapter.CreateNdefMessageCallback#createNdefMessage createNdefMessage()} to retrieve -the {@link android.nfc.NdefMessage} you want to send. This allows you to define the {@link -android.nfc.NdefMessage} to deliver only once Android Beam is initiated, in case the contents -of the message might vary throughout the life of the activity.</p></li> -</ul> - -<p>In case you want to run some specific code once the system has successfully delivered your NDEF -message to the other device, you can implement {@link -android.nfc.NfcAdapter.OnNdefPushCompleteCallback} and set it with {@link -android.nfc.NfcAdapter#setOnNdefPushCompleteCallback setNdefPushCompleteCallback()}. The system will -then call {@link android.nfc.NfcAdapter.OnNdefPushCompleteCallback#onNdefPushComplete -onNdefPushComplete()} when the message is delivered.</p> - -<p>On the receiving device, the system dispatches NDEF Push messages in a similar way to regular NFC -tags. The system invokes an intent with the {@link android.nfc.NfcAdapter#ACTION_NDEF_DISCOVERED} -action to start an activity, with either a URL or a MIME type set according to the first {@link -android.nfc.NdefRecord} in the {@link android.nfc.NdefMessage}. For the activity you want to -respond, you can declare intent filters for the URLs or MIME types your app cares about. For more -information about Tag Dispatch see the <a -href="{@docRoot}guide/topics/nfc/index.html#dispatch">NFC</a> developer guide.</p> - -<p>If you want your {@link android.nfc.NdefMessage} to carry a URI, you can now use the convenience -method {@link android.nfc.NdefRecord#createUri createUri} to construct a new {@link -android.nfc.NdefRecord} based on either a string or a {@link android.net.Uri} object. If the URI is -a special format that you want your application to also receive during an Android Beam event, you -should create an intent filter for your activity using the same URI scheme in order to receive the -incoming NDEF message.</p> - -<p>You should also pass an “Android application record" with your {@link android.nfc.NdefMessage} in -order to guarantee that your application handles the incoming NDEF message, even if other -applications filter for the same intent action. You can create an Android application record by -calling {@link android.nfc.NdefRecord#createApplicationRecord createApplicationRecord()}, passing it -your application’s package name. When the other device receives the NDEF message with the -application record and multiple applications contain activities that handle the specified intent, -the system always delivers the message to the activity in your application (based on the matching -application record). If the target device does not currently have your application installed, the -system uses the Android application record to launch Google Play and take the user to the -application in order to install it.</p> - -<p>If your application doesn’t use NFC APIs to perform NDEF Push messaging, then Android provides a -default behavior: When your application is in the foreground on one device and Android Beam is -invoked with another Android-powered device, then the other device receives an NDEF message with an -Android application record that identifies your application. If the receiving device has the -application installed, the system launches it; if it’s not installed, Google Play opens and takes -the user to your application in order to install it.</p> - -<p>You can read more about Android Beam and other NFC features in the <a -href="{@docRoot}guide/topics/nfc/nfc.html">NFC Basics</a> developer guide. For some example code -using Android Beam, see the <a -href="{@docRoot}resources/samples/AndroidBeamDemo/src/com/example/android/beam/Beam.html">Android -Beam Demo</a>.</p> - - - - - -<h3 id="WiFiDirect">Wi-Fi Direct</h3> - -<p>Android now supports Wi-Fi Direct for peer-to-peer (P2P) connections between Android-powered -devices and other device types without a hotspot or Internet connection. The Android framework -provides a set of Wi-Fi P2P APIs that allow you to discover and connect to other devices when each -device supports Wi-Fi Direct, then communicate over a speedy connection across distances much longer -than a Bluetooth connection.</p> - -<p>A new package, {@link android.net.wifi.p2p}, contains all the APIs for performing peer-to-peer -connections with Wi-Fi. The primary class you need to work with is {@link -android.net.wifi.p2p.WifiP2pManager}, which you can acquire by calling {@link -android.app.Activity#getSystemService getSystemService(WIFI_P2P_SERVICE)}. The {@link -android.net.wifi.p2p.WifiP2pManager} includes APIs that allow you to:</p> -<ul> -<li>Initialize your application for P2P connections by calling {@link -android.net.wifi.p2p.WifiP2pManager#initialize initialize()}</li> - -<li>Discover nearby devices by calling {@link android.net.wifi.p2p.WifiP2pManager#discoverPeers -discoverPeers()}</li> - -<li>Start a P2P connection by calling {@link android.net.wifi.p2p.WifiP2pManager#connect -connect()}</li> -<li>And more</li> -</ul> - -<p>Several other interfaces and classes are necessary as well, such as:</p> -<ul> -<li>The {@link android.net.wifi.p2p.WifiP2pManager.ActionListener} interface allows you to receive -callbacks when an operation such as discovering peers or connecting to them succeeds or fails.</li> - -<li>{@link android.net.wifi.p2p.WifiP2pManager.PeerListListener} interface allows you to receive -information about discovered peers. The callback provides a {@link -android.net.wifi.p2p.WifiP2pDeviceList}, from which you can retrieve a {@link -android.net.wifi.p2p.WifiP2pDevice} object for each device within range and get information such as -the device name, address, device type, the WPS configurations the device supports, and more.</li> - -<li>The {@link android.net.wifi.p2p.WifiP2pManager.GroupInfoListener} interface allows you to -receive information about a P2P group. The callback provides a {@link -android.net.wifi.p2p.WifiP2pGroup} object, which provides group information such as the owner, the -network name, and passphrase.</li> - -<li>{@link android.net.wifi.p2p.WifiP2pManager.ConnectionInfoListener} interface allows you to -receive information about the current connection. The callback provides a {@link -android.net.wifi.p2p.WifiP2pInfo} object, which has information such as whether a group has been -formed and who is the group owner.</li> -</ul> - -<p>In order to use the Wi-Fi P2P APIs, your app must request the following user permissions:</p> -<ul> -<li>{@link android.Manifest.permission#ACCESS_WIFI_STATE}</li> -<li>{@link android.Manifest.permission#CHANGE_WIFI_STATE}</li> -<li>{@link android.Manifest.permission#INTERNET} (although your app doesn’t technically connect -to the Internet, communicating to Wi-Fi Direct peers with standard java sockets requires Internet -permission).</li> -</ul> - -<p>The Android system also broadcasts several different actions during certain Wi-Fi P2P events:</p> -<ul> -<li>{@link android.net.wifi.p2p.WifiP2pManager#WIFI_P2P_CONNECTION_CHANGED_ACTION}: The P2P -connection state has changed. This carries {@link -android.net.wifi.p2p.WifiP2pManager#EXTRA_WIFI_P2P_INFO} with a {@link -android.net.wifi.p2p.WifiP2pInfo} object and {@link -android.net.wifi.p2p.WifiP2pManager#EXTRA_NETWORK_INFO} with a {@link android.net.NetworkInfo} -object.</li> - -<li>{@link android.net.wifi.p2p.WifiP2pManager#WIFI_P2P_STATE_CHANGED_ACTION}: The P2P state has -changed between enabled and disabled. It carries {@link -android.net.wifi.p2p.WifiP2pManager#EXTRA_WIFI_STATE} with either {@link -android.net.wifi.p2p.WifiP2pManager#WIFI_P2P_STATE_DISABLED} or {@link -android.net.wifi.p2p.WifiP2pManager#WIFI_P2P_STATE_ENABLED}</li> - -<li>{@link android.net.wifi.p2p.WifiP2pManager#WIFI_P2P_PEERS_CHANGED_ACTION}: The list of peer -devices has changed.</li> - -<li>{@link android.net.wifi.p2p.WifiP2pManager#WIFI_P2P_THIS_DEVICE_CHANGED_ACTION}: The details for -this device have changed.</li> -</ul> - -<p>See the {@link android.net.wifi.p2p.WifiP2pManager} documentation for more information. Also -look at the <a href="{@docRoot}resources/samples/WiFiDirectDemo/index.html">Wi-Fi Direct Demo</a> -sample application.</p> - - - - - -<h3 id="Bluetooth">Bluetooth Health Devices</h3> - -<p>Android now supports Bluetooth Health Profile devices, so you can create applications that use -Bluetooth to communicate with health devices that support Bluetooth, such as heart-rate monitors, -blood meters, thermometers, and scales.</p> - -<p>Similar to regular headset and A2DP profile devices, you must call {@link -android.bluetooth.BluetoothAdapter#getProfileProxy getProfileProxy()} with a {@link -android.bluetooth.BluetoothProfile.ServiceListener} and the {@link -android.bluetooth.BluetoothProfile#HEALTH} profile type to establish a connection with the profile -proxy object.</p> - -<p>Once you’ve acquired the Health Profile proxy (the {@link android.bluetooth.BluetoothHealth} -object), connecting to and communicating with paired health devices involves the following new -Bluetooth classes:</p> -<ul> -<li>{@link android.bluetooth.BluetoothHealthCallback}: You must extend this class and implement the -callback methods to receive updates about changes in the application’s registration state and -Bluetooth channel state.</li> -<li>{@link android.bluetooth.BluetoothHealthAppConfiguration}: During callbacks to your {@link -android.bluetooth.BluetoothHealthCallback}, you’ll receive an instance of this object, which -provides configuration information about the available Bluetooth health device, which you must use -to perform various operations such as initiate and terminate connections with the {@link -android.bluetooth.BluetoothHealth} APIs.</li> -</ul> - -<p>For more information about using the Bluetooth Health Profile, see the documentation for {@link -android.bluetooth.BluetoothHealth}.</p> - - - - - -<h3 id="A11y">Accessibility</h3> - -<p>Android 4.0 improves accessibility for sight-impaired users with new explore-by-touch mode -and extended APIs that allow you to provide more information about view content or -develop advanced accessibility services.</p> - - -<h4>Explore-by-touch mode</h4> - -<p>Users with vision loss can now explore the screen by touching and dragging a finger across the -screen to hear voice descriptions of the content. Because the explore-by-touch mode works like a -virtual cursor, it allows screen readers to identify the descriptive text the same way that screen -readers can when the user navigates with a d-pad or trackball—by reading information provided -by {@link android.R.attr#contentDescription android:contentDescription} and {@link -android.view.View#setContentDescription setContentDescription()} upon a simulated "hover" event. So, -consider this is a reminder that you should provide descriptive text for the views in your -application, especially for {@link android.widget.ImageButton}, {@link android.widget.EditText}, -{@link android.widget.ImageView} and other widgets that might not naturally contain descriptive -text.</p> - - -<h4>Accessibility for views</h4> - -<p>To enhance the information available to accessibility services such as screen readers, you can -implement new callback methods for accessibility events in your custom {@link -android.view.View} components.</p> - -<p>It's important to first note that the behavior of the {@link -android.view.View#sendAccessibilityEvent sendAccessibilityEvent()} method has changed in Android -4.0. As with previous version of Android, when the user enables accessibility services on the device -and an input event such as a click or hover occurs, the respective view is notified with a call to -{@link android.view.View#sendAccessibilityEvent sendAccessibilityEvent()}. Previously, the -implementation of {@link android.view.View#sendAccessibilityEvent sendAccessibilityEvent()} would -initialize an {@link android.view.accessibility.AccessibilityEvent} and send it to {@link -android.view.accessibility.AccessibilityManager}. The new behavior involves some additional callback -methods that allow the view and its parents to add more contextual information to the event: -<ol> - <li>When invoked, the {@link -android.view.View#sendAccessibilityEvent sendAccessibilityEvent()} and {@link -android.view.View#sendAccessibilityEventUnchecked sendAccessibilityEventUnchecked()} methods defer -to {@link android.view.View#onInitializeAccessibilityEvent onInitializeAccessibilityEvent()}. - <p>Custom implementations of {@link android.view.View} might want to implement {@link -android.view.View#onInitializeAccessibilityEvent onInitializeAccessibilityEvent()} to -attach additional accessibility information to the {@link -android.view.accessibility.AccessibilityEvent}, but should also call the super implementation to -provide default information such as the standard content description, item index, and more. -However, you should not add additional text content in this callback—that happens -next.</p></li> - <li>Once initialized, if the event is one of several types that should be populated with text -information, the view then receives a call to {@link -android.view.View#dispatchPopulateAccessibilityEvent dispatchPopulateAccessibilityEvent()}, which -defers to the {@link android.view.View#onPopulateAccessibilityEvent onPopulateAccessibilityEvent()} -callback. - <p>Custom implementations of {@link android.view.View} should usually implement {@link -android.view.View#onPopulateAccessibilityEvent onPopulateAccessibilityEvent()} to add additional -text content to the {@link android.view.accessibility.AccessibilityEvent} if the {@link -android.R.attr#contentDescription android:contentDescription} text is missing or -insufficient. To add more text description to the -{@link android.view.accessibility.AccessibilityEvent}, call {@link -android.view.accessibility.AccessibilityEvent#getText()}.{@link java.util.List#add add()}.</p> -</li> - <li>At this point, the {@link android.view.View} passes the event up the view hierarchy by calling -{@link android.view.ViewGroup#requestSendAccessibilityEvent requestSendAccessibilityEvent()} on the -parent view. Each parent view then has the chance to augment the accessibility information by -adding an {@link android.view.accessibility.AccessibilityRecord}, until it -ultimately reaches the root view, which sends the event to the {@link -android.view.accessibility.AccessibilityManager} with {@link -android.view.accessibility.AccessibilityManager#sendAccessibilityEvent -sendAccessibilityEvent()}.</li> -</ol> - -<p>In addition to the new methods above, which are useful when extending the {@link -android.view.View} class, you can also intercept these event callbacks on any {@link -android.view.View} by extending {@link -android.view.View.AccessibilityDelegate AccessibilityDelegate} and setting it on the view with -{@link android.view.View#setAccessibilityDelegate setAccessibilityDelegate()}. -When you do, each accessibility method in the view defers the call to the corresponding method in -the delegate. For example, when the view receives a call to {@link -android.view.View#onPopulateAccessibilityEvent onPopulateAccessibilityEvent()}, it passes it to the -same method in the {@link android.view.View.AccessibilityDelegate}. Any methods not handled by -the delegate are given right back to the view for default behavior. This allows you to override only -the methods necessary for any given view without extending the {@link android.view.View} class.</p> - - -<p>If you want to maintain compatibility with Android versions prior to 4.0, while also supporting -the new the accessibility APIs, you can do so with the latest version of the <em>v4 support -library</em> (in <a href="{@docRoot}sdk/compatibility-library.html">Compatibility Package, r4</a>) -using a set of utility classes that provide the new accessibility APIs in a backward-compatible -design.</p> - - - - -<h4>Accessibility services</h4> - -<p>If you're developing an accessibility service, the information about various accessibility events -has been significantly expanded to enable more advanced accessibility feedback for users. In -particular, events are generated based on view composition, providing better context information and -allowing accessibility services to traverse view hierarchies to get additional view information and -deal with special cases.</p> - -<p>If you're developing an accessibility service (such as a screen reader), you can access -additional content information and traverse view hierarchies with the following procedure:</p> -<ol> -<li>Upon receiving an {@link android.view.accessibility.AccessibilityEvent} from an application, -call the {@link android.view.accessibility.AccessibilityEvent#getRecord(int) -AccessibilityEvent.getRecord()} to retrieve a specific {@link -android.view.accessibility.AccessibilityRecord} (there may be several records attached to the -event).</li> - -<li>From either {@link android.view.accessibility.AccessibilityEvent} or an individual {@link -android.view.accessibility.AccessibilityRecord}, you can call {@link -android.view.accessibility.AccessibilityRecord#getSource() getSource()} to retrieve a {@link -android.view.accessibility.AccessibilityNodeInfo} object. - <p>An {@link android.view.accessibility.AccessibilityNodeInfo} represents a single node -of the window content in a format that allows you to query accessibility information about that -node. The {@link android.view.accessibility.AccessibilityNodeInfo} object returned from {@link -android.view.accessibility.AccessibilityEvent} describes the event source, whereas the source from -an {@link android.view.accessibility.AccessibilityRecord} describes the predecessor of the event -source.</p></li> - -<li>With the {@link android.view.accessibility.AccessibilityNodeInfo}, you can query information -about it, call {@link -android.view.accessibility.AccessibilityNodeInfo#getParent getParent()} or {@link -android.view.accessibility.AccessibilityNodeInfo#getChild getChild()} to traverse the view -hierarchy, and even add child views to the node.</li> -</ol> - -<p>In order for your application to publish itself to the system as an accessibility service, it -must declare an XML configuration file that corresponds to {@link -android.accessibilityservice.AccessibilityServiceInfo}. For more information about creating an -accessibility service, see {@link -android.accessibilityservice.AccessibilityService} and {@link -android.accessibilityservice.AccessibilityService#SERVICE_META_DATA -SERVICE_META_DATA} for information about the XML configuration.</p> - - -<h4>Other accessibility APIs</h4> - -<p>If you're interested in the device's accessibility state, the {@link -android.view.accessibility.AccessibilityManager} has some new APIs such as:</p> -<ul> - <li>{@link android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener} -is an interface that allows you to receive a callback whenever accessibility is enabled or -disabled.</li> - <li>{@link android.view.accessibility.AccessibilityManager#getEnabledAccessibilityServiceList - getEnabledAccessibilityServiceList()} provides information about which accessibility services - are currently enabled.</li> - <li>{@link android.view.accessibility.AccessibilityManager#isTouchExplorationEnabled()} tells - you whether the explore-by-touch mode is enabled.</li> -</ul> - - - - - - -<h3 id="SpellChecker">Spell Checker Services</h3> - -<p>A new spell checker framework allows apps to create spell checkers in a manner similar to the -input method framework (for IMEs). To create a new spell checker, you must implement a service that -extends -{@link android.service.textservice.SpellCheckerService} and extend the {@link -android.service.textservice.SpellCheckerService.Session} class to provide spelling suggestions based -on text provided by the interface's callback methods. In the {@link -android.service.textservice.SpellCheckerService.Session} callback methods, you must return the -spelling suggestions as {@link android.view.textservice.SuggestionsInfo} objects. </p> - -<p>Applications with a spell checker service must declare the {@link -android.Manifest.permission#BIND_TEXT_SERVICE} permission as required by the service. -The service must also declare an intent filter with {@code <action -android:name="android.service.textservice.SpellCheckerService" />} as the intent’s action and should -include a {@code <meta-data>} element that declares configuration information for the spell -checker. </p> - -<p>See the sample <a href="{@docRoot}resources/samples/SpellChecker/SampleSpellCheckerService/index.html"> -Spell Checker Service</a> app and -sample <a href="{@docRoot}resources/samples/SpellChecker/HelloSpellChecker/index.html"> -Spell Checker Client</a> app for example code.</p> - - - - -<h3 id="TTS">Text-to-speech Engines</h3> - -<p>Android’s text-to-speech (TTS) APIs have been significantly extended to allow applications to -more easily implement custom TTS engines, while applications that want to use a TTS engine have a -couple new APIs for selecting an engine.</p> - - -<h4>Using text-to-speech engines</h4> - -<p>In previous versions of Android, you could use the {@link android.speech.tts.TextToSpeech} class -to perform text-to-speech (TTS) operations using the TTS engine provided by the system or set a -custom engine using {@link android.speech.tts.TextToSpeech#setEngineByPackageName -setEngineByPackageName()}. In Android 4.0, the {@link -android.speech.tts.TextToSpeech#setEngineByPackageName setEngineByPackageName()} method has been -deprecated and you can now specify the engine to use with a new {@link -android.speech.tts.TextToSpeech} constructor that accepts the package name of a TTS engine.</p> - -<p>You can also query the available TTS engines with {@link -android.speech.tts.TextToSpeech#getEngines()}. This method returns a list of {@link -android.speech.tts.TextToSpeech.EngineInfo} objects, which include meta data such as the engine’s -icon, label, and package name.</p> - - -<h4>Building text-to-speech engines</h4> - -<p>Previously, custom engines required that the engine be built using an undocumented native header -file. In Android 4.0, there is a complete set of framework APIs for building TTS engines. </p> - -<p>The basic setup requires an implementation of {@link android.speech.tts.TextToSpeechService} that -responds to the {@link android.speech.tts.TextToSpeech.Engine#INTENT_ACTION_TTS_SERVICE} intent. The -primary work for a TTS engine happens during the {@link -android.speech.tts.TextToSpeechService#onSynthesizeText onSynthesizeText()} callback in a service -that extends {@link android.speech.tts.TextToSpeechService}. The system delivers this method two -objects:</p> -<ul> -<li>{@link android.speech.tts.SynthesisRequest}: This contains various data including the text to -synthesize, the locale, the speech rate, and voice pitch.</li> -<li>{@link android.speech.tts.SynthesisCallback}: This is the interface by which your TTS engine -delivers the resulting speech data as streaming audio. First the engine must call {@link -android.speech.tts.SynthesisCallback#start start()} to indicate that the engine is ready to deliver -the audio, then call {@link android.speech.tts.SynthesisCallback#audioAvailable audioAvailable()}, -passing it the audio data in a byte buffer. Once your engine has passed all audio through the -buffer, call {@link android.speech.tts.SynthesisCallback#done()}.</li> -</ul> - -<p>Now that the framework supports a true API for creating TTS engines, support for the native code -implementation has been removed. Look for a blog post about a compatibility layer -that you can use to convert your old TTS engines to the new framework.</p> - -<p>For an example TTS engine using the new APIs, see the <a -href="{@docRoot}resources/samples/TtsEngine/index.html">Text To Speech Engine</a> sample app.</p> - - - - - - -<h3 id="NetworkUsage">Network Usage</h3> - -<p>Android 4.0 gives users precise visibility of how much network data their applications are using. -The Settings app provides controls that allow users to manage set limits for network data usage and -even disable the use of background data for individual apps. In order to avoid users disabling your -app’s access to data from the background, you should develop strategies to use the data -connection efficiently and adjust your usage depending on the type of connection available.</p> - -<p>If your application performs a lot of network transactions, you should provide user settings that -allow users to control your app’s data habits, such as how often your app syncs data, whether to -perform uploads/downloads only when on Wi-Fi, whether to use data while roaming, etc. With these -controls available to them, users are much less likely to disable your app’s access to data when -they approach their limits, because they can instead precisely control how much data your app uses. -If you provide a preference activity with these settings, you should include in its manifest -declaration an intent filter for the {@link android.content.Intent#ACTION_MANAGE_NETWORK_USAGE} -action. For example:</p> - -<pre> -<activity android:name="DataPreferences" android:label="@string/title_preferences"> - <intent-filter> - <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" /> - <category android:name="android.intent.category.DEFAULT" /> - </intent-filter> -</activity> -</pre> - -<p>This intent filter indicates to the system that this is the activity that controls your -application’s data usage. Thus, when the user inspects how much data your app is using from the -Settings app, a “View application settings" button is available that launches your -preference activity so the user can refine how much data your app uses.</p> - -<p>Also beware that {@link android.net.ConnectivityManager#getBackgroundDataSetting()} is now -deprecated and always returns true—use {@link -android.net.ConnectivityManager#getActiveNetworkInfo()} instead. Before you attempt any network -transactions, you should always call {@link android.net.ConnectivityManager#getActiveNetworkInfo()} -to get the {@link android.net.NetworkInfo} that represents the current network and query {@link -android.net.NetworkInfo#isConnected()} to check whether the device has a -connection. You can then check other connection properties, such as whether the device is -roaming or connected to Wi-Fi.</p> - - - - - - - - -<h3 id="RenderScript">RenderScript</h3> - -<p>Three major features have been added to RenderScript:</p> - -<ul> - <li>Off-screen rendering to a framebuffer object</li> - <li>Rendering inside a view</li> - <li>RS for each from the framework APIs</li> -</ul> - -<p>The {@link android.renderscript.Allocation} class now supports a {@link -android.renderscript.Allocation#USAGE_GRAPHICS_RENDER_TARGET} memory space, which allows you to -render things directly into the {@link android.renderscript.Allocation} and use it as a framebuffer -object.</p> - -<p>{@link android.renderscript.RSTextureView} provides a means to display RenderScript graphics -inside of a {@link android.view.View}, unlike {@link android.renderscript.RSSurfaceView}, which -creates a separate window. This key difference allows you to do things such as move, transform, or -animate an {@link android.renderscript.RSTextureView} as well as draw RenderScript graphics inside -a view that lies within an activity layout.</p> - -<p>The {@link android.renderscript.Script#forEach Script.forEach()} method allows you to call -RenderScript compute scripts from the VM level and have them automatically delegated to available -cores on the device. You do not use this method directly, but any compute RenderScript that you -write will have a {@link android.renderscript.Script#forEach forEach()} method that you can call in -the reflected RenderScript class. You can call the reflected {@link -android.renderscript.Script#forEach forEach()} method by passing in an input {@link -android.renderscript.Allocation} to process, an output {@link android.renderscript.Allocation} to -write the result to, and a {@link android.renderscript.FieldPacker} data structure in case the -RenderScript needs more information. Only one of the {@link android.renderscript.Allocation}s is -necessary and the data structure is optional.</p> - - - - - - - - - -<h3 id="Enterprise">Enterprise</h3> - -<p>Android 4.0 expands the capabilities for enterprise application with the following features.</p> - -<h4>VPN services</h4> - -<p>The new {@link android.net.VpnService} allows applications to build their own VPN (Virtual -Private Network), running as a {@link android.app.Service}. A VPN service creates an interface for a -virtual network with its own address and routing rules and performs all reading and writing with a -file descriptor.</p> - -<p>To create a VPN service, use {@link android.net.VpnService.Builder}, which allows you to specify -the network address, DNS server, network route, and more. When complete, you can establish the -interface by calling {@link android.net.VpnService.Builder#establish()}, which returns a {@link -android.os.ParcelFileDescriptor}. </p> - -<p>Because a VPN service can intercept packets, there are security implications. As such, if you -implement {@link android.net.VpnService}, then your service must require the {@link -android.Manifest.permission#BIND_VPN_SERVICE} to ensure that only the system can bind to it (only -the system is granted this permission—apps cannot request it). To then use your VPN service, -users must manually enable it in the system settings.</p> - - -<h4>Device policies</h4> - -<p>Applications that manage the device restrictions can now disable the camera using {@link -android.app.admin.DevicePolicyManager#setCameraDisabled setCameraDisabled()} and the {@link -android.app.admin.DeviceAdminInfo#USES_POLICY_DISABLE_CAMERA} property (applied with a {@code -<disable-camera />} element in the policy configuration file).</p> - - -<h4>Certificate management</h4> - -<p>The new {@link android.security.KeyChain} class provides APIs that allow you to import and access -certificates in the system key store. Certificates streamline the installation of both client -certificates (to validate the identity of the user) and certificate authority certificates (to -verify server identity). Applications such as web browsers or email clients can access the installed -certificates to authenticate users to servers. See the {@link android.security.KeyChain} -documentation for more information.</p> - - - - - - - -<h3 id="Sensors">Device Sensors</h3> - -<p>Two new sensor types have been added in Android 4.0:</p> - -<ul> - <li>{@link android.hardware.Sensor#TYPE_AMBIENT_TEMPERATURE}: A temperature sensor that provides -the ambient (room) temperature in degrees Celsius.</li> - <li>{@link android.hardware.Sensor#TYPE_RELATIVE_HUMIDITY}: A humidity sensor that provides the -relative ambient (room) humidity as a percentage.</li> -</ul> - -<p>If a device has both {@link android.hardware.Sensor#TYPE_AMBIENT_TEMPERATURE} and {@link -android.hardware.Sensor#TYPE_RELATIVE_HUMIDITY} sensors, you can use them to calculate the dew point -and the absolute humidity.</p> - -<p>The previous temperature sensor, {@link android.hardware.Sensor#TYPE_TEMPERATURE}, has been -deprecated. You should use the {@link android.hardware.Sensor#TYPE_AMBIENT_TEMPERATURE} sensor -instead.</p> - -<p>Additionally, Android’s three synthetic sensors have been greatly improved so they now have lower -latency and smoother output. These sensors include the gravity sensor ({@link -android.hardware.Sensor#TYPE_GRAVITY}), rotation vector sensor ({@link -android.hardware.Sensor#TYPE_ROTATION_VECTOR}), and linear acceleration sensor ({@link -android.hardware.Sensor#TYPE_LINEAR_ACCELERATION}). The improved sensors rely on the gyroscope -sensor to improve their output, so the sensors appear only on devices that have a gyroscope.</p> - - - - - -<h3 id="ActionBar">Action Bar</h3> - -<p>The {@link android.app.ActionBar} has been updated to support several new behaviors. Most -importantly, the system gracefully manages the action bar’s size and configuration when running on -smaller screens in order to provide an optimal user experience on all screen sizes. For example, -when the screen is narrow (such as when a handset is in portrait orientation), the action bar’s -navigation tabs appear in a “stacked bar," which appears directly below the main action bar. You can -also opt-in to a “split action bar," which places all action items in a separate bar at the bottom -of the screen when the screen is narrow.</p> - - -<h4>Split action bar</h4> - -<p>If your action bar includes several action items, not all of them will fit into the action bar on -a narrow screen, so the system will place more of them into the overflow menu. However, Android 4.0 -allows you to enable “split action bar" so that more action items can appear on the screen in a -separate bar at the bottom of the screen. To enable split action bar, add {@link -android.R.attr#uiOptions android:uiOptions} with {@code "splitActionBarWhenNarrow"} to either your -<a href="{@docRoot}guide/topics/manifest/application-element.html">{@code <application>}</a> -tag or -individual <a href="{@docRoot}guide/topics/manifest/activity-element.html">{@code -<activity>}</a> tags -in your manifest file. When enabled, the system will add an additional bar at the bottom of the -screen for all action items when the screen is narrow (no action items will appear in the primary -action bar).</p> - -<p>If you want to use the navigation tabs provided by the {@link android.app.ActionBar.Tab} APIs, -but don’t need the main action bar on top (you want only the tabs to appear at the top), then enable -the split action bar as described above and also call {@link -android.app.ActionBar#setDisplayShowHomeEnabled setDisplayShowHomeEnabled(false)} to disable the -application icon in the action bar. With nothing left in the main action bar, it -disappears—all that’s left are the navigation tabs at the top and the action items at the -bottom of the screen.</p> - - -<h4>Action bar styles</h4> - -<p>If you want to apply custom styling to the action bar, you can use new style properties {@link -android.R.attr#backgroundStacked} and {@link android.R.attr#backgroundSplit} to apply a background -drawable or color to the stacked bar and split bar, respectively. You can also set these styles at -runtime with {@link android.app.ActionBar#setStackedBackgroundDrawable -setStackedBackgroundDrawable()} and {@link android.app.ActionBar#setSplitBackgroundDrawable -setSplitBackgroundDrawable()}.</p> - - -<h4>Action provider</h4> - -<p>The new {@link android.view.ActionProvider} class allows you to create a specialized handler for -action items. An action provider can define an action view, a default action behavior, and a submenu -for each action item to which it is associated. When you want to create an action item that has -dynamic behaviors (such as a variable action view, default action, or submenu), extending {@link -android.view.ActionProvider} is a good solution in order to create a reusable component, rather than -handling the various action item transformations in your fragment or activity.</p> - -<p>For example, the {@link android.widget.ShareActionProvider} is an extension of {@link -android.view.ActionProvider} that facilitates a “share" action from the action bar. Instead of using -traditional action item that invokes the {@link android.content.Intent#ACTION_SEND} intent, you can -use this action provider to present an action view with a drop-down list of applications that handle -the {@link android.content.Intent#ACTION_SEND} intent. When the user selects an application to use -for the action, {@link android.widget.ShareActionProvider} remembers that selection and provides it -in the action view for faster access to sharing with that app.</p> - -<p>To declare an action provider for an action item, include the {@code android:actionProviderClass} -attribute in the <a href="{@docRoot}guide/topics/resources/menu-resource.html#item-element">{@code -<item>}</a> element for your activity’s options menu, with the class name of the action -provider as the value. For example:</p> - -<pre> -<item android:id="@+id/menu_share" - android:title="Share" - android:showAsAction="ifRoom" - android:actionProviderClass="android.widget.ShareActionProvider" /> -</pre> - -<p>In your activity’s {@link android.app.Activity#onCreateOptionsMenu onCreateOptionsMenu()} -callback method, retrieve an instance of the action provider from the menu item and set the -intent:</p> - -<pre> -public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.options, menu); - ShareActionProvider shareActionProvider = - (ShareActionProvider) menu.findItem(R.id.menu_share).getActionProvider(); - // Set the share intent of the share action provider. - shareActionProvider.setShareIntent(createShareIntent()); - ... - return super.onCreateOptionsMenu(menu); -} -</pre> - -<p>For an example using the {@link android.widget.ShareActionProvider}, see <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/ActionBarShareActionProviderActivity.html" ->ActionBarShareActionProviderActivity</a> in ApiDemos.</p> - - -<h4>Collapsible action views</h4> - -<p>Action items that provide an action view can now toggle between their action view state and -traditional action item state. Previously only the {@link android.widget.SearchView} supported -collapsing when used as an action view, but now you can add an action view for any action item and -switch between the expanded state (action view is visible) and collapsed state (action item is -visible).</p> - -<p>To declare that an action item that contains an action view be collapsible, include the {@code -“collapseActionView"} flag in the {@code android:showAsAction} attribute for the <a -href="{@docRoot}guide/topics/resources/menu-resource.html#item-element">{@code -<item>}</a> element in the menu’s XML file.</p> - -<p>To receive callbacks when an action view switches between expanded and collapsed, register an -instance of {@link android.view.MenuItem.OnActionExpandListener} with the respective {@link -android.view.MenuItem} by calling {@link android.view.MenuItem#setOnActionExpandListener -setOnActionExpandListener()}. Typically, you should do so during the {@link -android.app.Activity#onCreateOptionsMenu onCreateOptionsMenu()} callback.</p> - -<p>To control a collapsible action view, you can call {@link -android.view.MenuItem#collapseActionView()} and {@link android.view.MenuItem#expandActionView()} on -the respective {@link android.view.MenuItem}.</p> - -<p>When creating a custom action view, you can also implement the new {@link -android.view.CollapsibleActionView} interface to receive callbacks when the view is expanded and -collapsed.</p> - - -<h4>Other APIs for action bar</h4> -<ul> -<li>{@link android.app.ActionBar#setHomeButtonEnabled setHomeButtonEnabled()} allows you to specify -whether the icon/logo behaves as a button to navigate home or “up" (pass “true" to make it behave as -a button).</li> - -<li>{@link android.app.ActionBar#setIcon setIcon()} and {@link android.app.ActionBar#setLogo -setLogo()} allow you to define the action bar icon or logo at runtime.</li> - -<li>{@link android.app.Fragment#setMenuVisibility Fragment.setMenuVisibility()} allows you to enable -or disable the visibility of the options menu items declared by the fragment. This is useful if the -fragment has been added to the activity, but is not visible, so the menu items should be -hidden.</li> - -<li>{@link android.app.FragmentManager#invalidateOptionsMenu -FragmentManager.invalidateOptionsMenu()} -allows you to invalidate the activity options menu during various states of the fragment lifecycle -in which using the equivalent method from {@link android.app.Activity} might not be available.</li> -</ul> - - - - - - - - -<h3 id="UI">User Interface and Views</h3> - -<p>Android 4.0 introduces a variety of new views and other UI components.</p> - - -<h4>GridLayout</h4> - -<p>{@link android.widget.GridLayout} is a new view group that places child views in a rectangular -grid. Unlike {@link android.widget.TableLayout}, {@link android.widget.GridLayout} relies on a flat -hierarchy and does not make use of intermediate views such as table rows for providing structure. -Instead, children specify which row(s) and column(s) they should occupy (cells can span multiple -rows and/or columns), and by default are laid out sequentially across the grid’s rows and columns. -The {@link android.widget.GridLayout} orientation determines whether sequential children are by -default laid out horizontally or vertically. Space between children may be specified either by using -instances of the new {@link android.widget.Space} view or by setting the relevant margin parameters -on children.</p> - -<p>See <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/index.html">ApiDemos</a -> -for samples using {@link android.widget.GridLayout}.</p> - - - -<h4>TextureView</h4> - -<p>{@link android.view.TextureView} is a new view that allows you to display a content stream, such -as a video or an OpenGL scene. Although similar to {@link android.view.SurfaceView}, {@link -android.view.TextureView} is unique in that it behaves like a regular view, rather than creating a -separate window, so you can treat it like any other {@link android.view.View} object. For example, -you can apply transforms, animate it using {@link android.view.ViewPropertyAnimator}, or -adjust its opacity with {@link android.view.View#setAlpha setAlpha()}.</p> - -<p>Beware that {@link android.view.TextureView} works only within a hardware accelerated window.</p> - -<p>For more information, see the {@link android.view.TextureView} documentation.</p> - - -<h4>Switch widget</h4> - -<p>The new {@link android.widget.Switch} widget is a two-state toggle that users can drag to one -side or the other (or simply tap) to toggle an option between two states.</p> - -<p>You can use the {@code android:textOn} and {@code android:textOff} attributes to specify the text -to appear on the switch when in the on and off setting. The {@code android:text} attribute also -allows you to place a label alongside the switch.</p> - -<p>For a sample using switches, see the <a -href="{@docRoot}resources/samples/ApiDemos/res/layout/switches.html">switches.xml</a> layout file -and respective <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/Switches.html">Switches -</a> activity.</p> - - -<h4>Popup menus</h4> - -<p>Android 3.0 introduced {@link android.widget.PopupMenu} to create short contextual menus that pop -up at an anchor point you specify (usually at the point of the item selected). Android 4.0 extends -the {@link android.widget.PopupMenu} with a couple useful features:</p> -<ul> -<li>You can now easily inflate the contents of a popup menu from an XML <a -href="{@docRoot}guide/topics/resources/menu-resource.html">menu resource</a> with {@link -android.widget.PopupMenu#inflate inflate()}, passing it the menu resource ID.</li> -<li>You can also now create a {@link android.widget.PopupMenu.OnDismissListener} that receives a -callback when the menu is dismissed.</li> -</ul> - - -<h4>Preferences</h4> - -<p>A new {@link android.preference.TwoStatePreference} abstract class serves as the basis for -preferences that provide a two-state selection option. The new {@link -android.preference.SwitchPreference} is an extension of {@link -android.preference.TwoStatePreference} that provides a {@link android.widget.Switch} widget in the -preference view to allow users to toggle a setting on or off without the need to open an additional -preference screen or dialog. For example, the Settings application uses a {@link -android.preference.SwitchPreference} for the Wi-Fi and Bluetooth settings.</p> - - - -<h4>System themes</h4> - -<p>The default theme for all applications that target Android 4.0 (by setting either <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> or -<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> to -{@code “14"} or higher) is now the -"device default" theme: {@link android.R.style#Theme_DeviceDefault Theme.DeviceDefault}. This may be -the dark Holo theme or a different dark theme defined by the specific device.</p> - -<p>The {@link android.R.style#Theme_Holo Theme.Holo} family of themes are guaranteed to not change -from one device to another when running the same version of Android. If you explicitly -apply any of the {@link android.R.style#Theme_Holo Theme.Holo} themes to your activities, you can -rest assured that these themes will not change character on different devices within the same -platform version.</p> - -<p>If you wish for your app to blend in with the overall device theme (such as when different OEMs -provide different default themes for the system), you should explicitly apply themes from the {@link -android.R.style#Theme_DeviceDefault Theme.DeviceDefault} family.</p> - - -<h4>Options menu button</h4> - -<p>Beginning with Android 4.0, you'll notice that handsets no longer require a Menu hardware button. -However, there's no need for you to worry about this if your existing application provides an <a -href="{@docRoot}guide/topics/ui/menus.html#options-menu">options menu</a> and expects there to be a -Menu button. To ensure that existing apps continue to work as they expect, the system provides an -on-screen Menu button for apps that were designed for older versions of Android.</p> - -<p>For the best user experience, new and updated apps should instead use the {@link -android.app.ActionBar} to provide access to menu items and set <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to -{@code "14"} to take advantage of the latest framework default behaviors.</p> - - - -<h4>Controls for system UI visibility</h4> - -<p>Since the early days of Android, the system has managed a UI component known as the <em>status -bar</em>, which resides at the top of handset devices to deliver information such as the carrier -signal, time, notifications, and so on. Android 3.0 added the <em>system bar</em> for tablet -devices, which resides at the bottom of the screen to provide system navigation controls (Home, -Back, and so forth) and also an interface for elements traditionally provided by the status bar. In -Android 4.0, the system provides a new type of system UI called the <em>navigation bar</em>. You -might consider the navigation bar a re-tuned version of the system bar designed for -handsets—it provides navigation controls -for devices that don’t have hardware counterparts for navigating the system, but it leaves out the -system bar's notification UI and setting controls. As such, a device that provides the navigation -bar also has the status bar at the top.</p> - -<p>To this day, you can hide the status bar on handsets using the {@link -android.view.WindowManager.LayoutParams#FLAG_FULLSCREEN} flag. In Android 4.0, the APIs that control -the system bar’s visibility have been updated to better reflect the behavior of both the system bar -and navigation bar:</p> -<ul> -<li>The {@link android.view.View#SYSTEM_UI_FLAG_LOW_PROFILE} flag replaces the {@code -STATUS_BAR_HIDDEN} flag. When set, this flag enables “low profile" mode for the system bar or -navigation bar. Navigation buttons dim and other elements in the system bar also hide. Enabling -this is useful for creating more immersive games without distraction for the system navigation -buttons.</li> - -<li>The {@link android.view.View#SYSTEM_UI_FLAG_VISIBLE} flag replaces the {@code -STATUS_BAR_VISIBLE} flag to request the system bar or navigation bar be visible.</li> - -<li>The {@link android.view.View#SYSTEM_UI_FLAG_HIDE_NAVIGATION} is a new flag that requests -the navigation bar hide completely. Be aware that this works only for the <em>navigation bar</em> -used by some handsets (it does <strong>not</strong> hide the system bar on tablets). The navigation -bar returns to view as soon as the system receives user input. As such, this mode is useful -primarily for video playback or other cases in which the whole screen is needed but user input is -not required.</li> -</ul> - -<p>You can set each of these flags for the system bar and navigation bar by calling {@link -android.view.View#setSystemUiVisibility setSystemUiVisibility()} on any view in your activity. The -window manager combines (OR-together) all flags from all views in your window and -apply them to the system UI as long as your window has input focus. When your window loses input -focus (the user navigates away from your app, or a dialog appears), your flags cease to have effect. -Similarly, if you remove those views from the view hierarchy their flags no longer apply.</p> - -<p>To synchronize other events in your activity with visibility changes to the system UI (for -example, hide the action bar or other UI controls when the system UI hides), you should register a -{@link android.view.View.OnSystemUiVisibilityChangeListener} to be notified when the visibility -of the system bar or navigation bar changes.</p> - -<p>See the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/OverscanActivity.html"> -OverscanActivity</a> class for a demonstration of different system UI options.</p> - - - - - -<h3 id="Input">Input Framework</h3> - -<p>Android 4.0 adds support for cursor hover events and new stylus and mouse button events.</p> - -<h4>Hover events</h4> - -<p>The {@link android.view.View} class now supports “hover" events to enable richer interactions -through the use of pointer devices (such as a mouse or other devices that drive an on-screen -cursor).</p> - -<p>To receive hover events on a view, implement the {@link android.view.View.OnHoverListener} and -register it with {@link android.view.View#setOnHoverListener setOnHoverListener()}. When a hover -event occurs on the view, your listener receives a call to {@link -android.view.View.OnHoverListener#onHover onHover()}, providing the {@link android.view.View} that -received the event and a {@link android.view.MotionEvent} that describes the type of hover event -that occurred. The hover event can be one of the following:</p> -<ul> -<li>{@link android.view.MotionEvent#ACTION_HOVER_ENTER}</li> -<li>{@link android.view.MotionEvent#ACTION_HOVER_EXIT}</li> -<li>{@link android.view.MotionEvent#ACTION_HOVER_MOVE}</li> -</ul> - -<p>Your {@link android.view.View.OnHoverListener} should return true from {@link -android.view.View.OnHoverListener#onHover onHover()} if it handles the hover event. If your -listener returns false, then the hover event will be dispatched to the parent view as usual.</p> - -<p>If your application uses buttons or other widgets that change their appearance based on the -current state, you can now use the {@code android:state_hovered} attribute in a <a -href="{@docRoot}guide/topics/resources/drawable-resource.html#StateList">state list drawable</a> to -provide a different background drawable when a cursor hovers over the view.</p> - -<p>For a demonstration of the new hover events, see the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/Hover.html">Hover</a> class in -ApiDemos.</p> - - -<h4>Stylus and mouse button events</h4> - -<p>Android now provides APIs for receiving input from a stylus input device such as a digitizer -tablet peripheral or a stylus-enabled touch screen.</p> - -<p>Stylus input operates in a similar manner to touch or mouse input. When the stylus is in contact -with the digitizer, applications receive touch events just like they would when a finger is used to -touch the display. When the stylus is hovering above the digitizer, applications receive hover -events just like they would when a mouse pointer was being moved across the display when no buttons -are pressed.</p> - -<p>Your application can distinguish between finger, mouse, stylus and eraser input by querying the -“tool type" associated with each pointer in a {@link android.view.MotionEvent} using {@link -android.view.MotionEvent#getToolType getToolType()}. The currently defined tool types are: {@link -android.view.MotionEvent#TOOL_TYPE_UNKNOWN}, {@link android.view.MotionEvent#TOOL_TYPE_FINGER}, -{@link android.view.MotionEvent#TOOL_TYPE_MOUSE}, {@link android.view.MotionEvent#TOOL_TYPE_STYLUS}, -and {@link android.view.MotionEvent#TOOL_TYPE_ERASER}. By querying the tool type, your application -can choose to handle stylus input in different ways from finger or mouse input.</p> - -<p>Your application can also query which mouse or stylus buttons are pressed by querying the “button -state" of a {@link android.view.MotionEvent} using {@link android.view.MotionEvent#getButtonState -getButtonState()}. The currently defined button states are: {@link -android.view.MotionEvent#BUTTON_PRIMARY}, {@link android.view.MotionEvent#BUTTON_SECONDARY}, {@link -android.view.MotionEvent#BUTTON_TERTIARY}, {@link android.view.MotionEvent#BUTTON_BACK}, and {@link -android.view.MotionEvent#BUTTON_FORWARD}. For convenience, the back and forward mouse buttons are -automatically mapped to the {@link android.view.KeyEvent#KEYCODE_BACK} and {@link -android.view.KeyEvent#KEYCODE_FORWARD} keys. Your application can handle these keys to support -mouse button based back and forward navigation.</p> - -<p>In addition to precisely measuring the position and pressure of a contact, some stylus input -devices also report the distance between the stylus tip and the digitizer, the stylus tilt angle, -and the stylus orientation angle. Your application can query this information using {@link -android.view.MotionEvent#getAxisValue getAxisValue()} with the axis codes {@link -android.view.MotionEvent#AXIS_DISTANCE}, {@link android.view.MotionEvent#AXIS_TILT}, and {@link -android.view.MotionEvent#AXIS_ORIENTATION}.</p> - -<p>For a demonstration of tool types, button states and the new axis codes, see the <a -href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchPaint.html">TouchPaint -</a> class in ApiDemos.</p> - - - - - - -<h3 id="Properties">Properties</h3> - -<p>The new {@link android.util.Property} class provides a fast, efficient, and easy way to specify a -property on any object that allows callers to generically set/get values on target objects. It also -allows the functionality of passing around field/method references and allows code to set/get values -of the property without knowing the details of what the fields/methods are.</p> - -<p>For example, if you want to set the value of field {@code bar} on object {@code foo}, you would -previously do this:</p> -<pre> -foo.bar = value; -</pre> - -<p>If you want to call the setter for an underlying private field {@code bar}, you would previously -do this:</p> -<pre> -foo.setBar(value); -</pre> - -<p>However, if you want to pass around the {@code foo} instance and have some other code set the -{@code bar} value, there is really no way to do it prior to Android 4.0.</p> - -<p>Using the {@link android.util.Property} class, you can declare a {@link android.util.Property} -object {@code BAR} on class {@code Foo} so that you can set the field on instance {@code foo} of -class {@code Foo} like this:</p> -<pre> -BAR.set(foo, value); -</pre> - -<p>The {@link android.view.View} class now leverages the {@link android.util.Property} class to -allow you to set various fields, such as transform properties that were added in Android 3.0 ({@link -android.view.View#ROTATION}, {@link android.view.View#ROTATION_X}, {@link -android.view.View#TRANSLATION_X}, etc.).</p> - -<p>The {@link android.animation.ObjectAnimator} class also uses the {@link android.util.Property} -class, so you can create an {@link android.animation.ObjectAnimator} with a {@link -android.util.Property}, which is faster, more efficient, and more type-safe than the string-based -approach.</p> - - - - - - -<h3 id="HwAccel">Hardware Acceleration</h3> - -<p>Beginning with Android 4.0, hardware acceleration for all windows is enabled by default if your -application has set either <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> or -<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> to -{@code “14"} or higher. Hardware acceleration generally results in smoother animations, smoother -scrolling, and overall better performance and response to user interaction.</p> - -<p>If necessary, you can manually disable hardware acceleration with the <a -href="{@docRoot}guide/topics/manifest/activity-element.html#hwaccel">{@code hardwareAccelerated}</a> -attribute for individual <a href="{@docRoot}guide/topics/manifest/activity-element.html">{@code -<activity>}</a> elements or the <a -href="{@docRoot}guide/topics/manifest/application-element.html">{@code <application>}</a> -element. You can alternatively disable hardware acceleration for individual views by calling {@link -android.view.View#setLayerType setLayerType(LAYER_TYPE_SOFTWARE)}.</p> - -<p>For more information about hardware acceleration, including a list of unsupported drawing -operations, see the <a href="{@docRoot}guide/topics/graphics/hardware-accel.html">Hardware -Acceleration</a> document.</p> - - - -<h3 id="Jni">JNI Changes</h3> - -<p>In previous versions of Android, JNI local references weren’t indirect handles; Android used -direct pointers. This wasn't a problem as long as the garbage collector didn't move objects, but it -seemed to work because it made it possible to write buggy code. In Android 4.0, the system now uses -indirect references in order to detect these bugs.</p> - -<p>The ins and outs of JNI local references are described in “Local and Global References" in <a -href="{@docRoot}guide/practices/design/jni.html">JNI Tips</a>. In Android 4.0, <a -href="http://android-developers.blogspot.com/2011/07/debugging-android-jni-with-checkjni.html"> -CheckJNI</a> has been enhanced to detect these errors. Watch the <a -href="http://android-developers.blogspot.com/">Android Developers Blog</a> for an upcoming post -about common errors with JNI references and how you can fix them.</p> - -<p>This change in the JNI implementation only affects apps that target Android 4.0 by setting either -the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code -targetSdkVersion}</a> or <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code -minSdkVersion}</a> to {@code “14"} or higher. If you’ve set these attributes to any lower value, -then JNI local references behave the same as in previous versions.</p> - - - - - -<h3 id="WebKit">WebKit</h3> -<ul> -<li>WebKit updated to version 534.30</li> -<li>Support for Indic fonts (Devanagari, Bengali, and Tamil, including the complex character support -needed for combining glyphs) in {@link android.webkit.WebView} and the built-in Browser</li> -<li>Support for Ethiopic, Georgian, and Armenian fonts in {@link android.webkit.WebView} and the -built-in Browser</li> -<li>Support for <a -href="http://google-opensource.blogspot.com/2009/05/introducing-webdriver.html">WebDriver</a> makes -it easier for you to test apps that use {@link android.webkit.WebView}</li> -</ul> - - -<h4>Android Browser</h4> - -<p>The Browser application adds the following features to support web applications:</p> -<ul> -<li>Updated V8 JavaScript compiler for faster performance</li> -<li>Plus other notable enhancements carried over from <a -href="{@docRoot}sdk/android-3.0.html">Android -3.0</a> are now available for handsets: -<ul> -<li>Support for fixed position elements on all pages</li> -<li><a href="http://dev.w3.org/2009/dap/camera/">HTML media capture</a></li> -<li><a href="http://dev.w3.org/geo/api/spec-source-orientation.html">Device orientation -events</a></li> -<li><a href="http://www.w3.org/TR/css3-3d-transforms/">CSS 3D transformations</a></li> -</ul> -</li> -</ul> - - - -<h3 id="Permissions">Permissions</h3> - -<p>The following are new permissions:</p> -<ul> -<li>{@link android.Manifest.permission#ADD_VOICEMAIL}: Allows a voicemail service to add voicemail -messages to the device.</li> -<li>{@link android.Manifest.permission#BIND_TEXT_SERVICE}: A service that implements {@link -android.service.textservice.SpellCheckerService} must require this permission for itself.</li> -<li>{@link android.Manifest.permission#BIND_VPN_SERVICE}: A service that implements {@link -android.net.VpnService} must require this permission for itself.</li> -<li>{@link android.Manifest.permission#READ_PROFILE}: Provides read access to the {@link -android.provider.ContactsContract.Profile} provider.</li> -<li>{@link android.Manifest.permission#WRITE_PROFILE}: Provides write access to the {@link -android.provider.ContactsContract.Profile} provider.</li> -</ul> - - - -<h3 id="DeviceFeatures">Device Features</h3> - -<p>The following are new device features:</p> -<ul> -<li>{@link android.content.pm.PackageManager#FEATURE_WIFI_DIRECT}: Declares that the application -uses -Wi-Fi for peer-to-peer communications.</li> -</ul> - - -<div class="special" style="margin-top:3em"> -<p>For a detailed view of all API changes in Android {@sdkPlatformVersion} (API Level -{@sdkPlatformApiLevel}), see the <a -href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API Differences Report</a>.</p> -</div> - - -<h2 id="Honeycomb">Previous APIs</h2> - -<p>In addition to everything above, Android 4.0 naturally supports all APIs from previous releases. -Because the Android 3.x platform is available only for large-screen devices, if you've -been developing primarily for handsets, then you might not be aware of all the APIs added to Android -in these recent releases.</p> - -<p>Here's a look at some of the most notable APIs you might have missed that are now available -on handsets as well:</p> - -<dl> - <dt><a href="android-3.0.html">Android 3.0</a></dt> - <dd> - <ul> - <li>{@link android.app.Fragment}: A framework component that allows you to separate distinct -elements of an activity into self-contained modules that define their own UI and lifecycle. See the -<a href="{@docRoot}guide/topics/fundamentals/fragments.html">Fragments</a> developer guide.</li> - <li>{@link android.app.ActionBar}: A replacement for the traditional title bar at the top of -the activity window. It includes the application logo in the left corner and provides a new -interface for menu items. See the -<a href="{@docRoot}guide/topics/ui/actionbar.html">Action Bar</a> developer guide.</li> - <li>{@link android.content.Loader}: A framework component that facilitates asynchronous -loading of data in combination with UI components to dynamically load data without blocking the -main thread. See the -<a href="{@docRoot}guide/topics/fundamentals/loaders.html">Loaders</a> developer guide.</li> - <li>System clipboard: Applications can copy and paste data (beyond mere text) to and from -the system-wide clipboard. Clipped data can be plain text, a URI, or an intent. See the -<a href="{@docRoot}guide/topics/clipboard/copy-paste.html">Copy and Paste</a> developer guide.</li> - <li>Drag and drop: A set of APIs built into the view framework that facilitates drag and drop -operations. See the -<a href="{@docRoot}guide/topics/ui/drag-drop.html">Drag and Drop</a> developer guide.</li> - <li>An all new flexible animation framework allows you to animate arbitrary properties of any -object (View, Drawable, Fragment, Object, or anything else) and define animation aspects such -as duration, interpolation, repeat and more. The new framework makes Animations in Android -simpler than ever. See the -<a href="{@docRoot}guide/topics/graphics/prop-animation.html">Property Animation</a> developer -guide.</li> - <li>RenderScript graphics and compute engine: RenderScript offers a high performance 3D -graphics rendering and compute API at the native level, which you write in the C (C99 standard), -providing the type of performance you expect from a native environment while remaining portable -across various CPUs and GPUs. See the -<a href="{@docRoot}guide/topics/renderscript/index.html">RenderScript</a> developer -guide.</li> - <li>Hardware accelerated 2D graphics: You can now enable the OpenGL renderer for your -application by setting {android:hardwareAccelerated="true"} in your manifest element's <a -href="{@docRoot}guide/topics/manifest/application-element.html"><code><application></code></a> -element or for individual <a -href="{@docRoot}guide/topics/manifest/activity-element.html"><code><activity></code></a> -elements. This results -in smoother animations, smoother scrolling, and overall better performance and response to user -interaction. - <p class="note"><strong>Note:</strong> If you set your application's <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> or <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to -{@code "14"} or higher, hardware acceleration is enabled by default.</p></li> - <li>And much, much more. See the <a href="android-3.0.html">Android 3.0 Platform</a> -notes for more information.</li> - </ul> - </dd> - - <dt><a href="android-3.1.html">Android 3.1</a></dt> - <dd> - <ul> - <li>USB APIs: Powerful new APIs for integrating connected peripherals with -Android applications. The APIs are based on a USB stack and services that are -built into the platform, including support for both USB host and device interactions. See the <a -href="{@docRoot}guide/topics/usb/index.html">USB Host and Accessory</a> developer guide.</li> - <li>MTP/PTP APIs: Applications can interact directly with connected cameras and other PTP -devices to receive notifications when devices are attached and removed, manage files and storage on -those devices, and transfer files and metadata to and from them. The MTP API implements the PTP -(Picture Transfer Protocol) subset of the MTP (Media Transfer Protocol) specification. See the -{@link android.mtp} documentation.</li> - <li>RTP APIs: Android exposes an API to its built-in RTP (Real-time Transport Protocol) stack, -which applications can use to manage on-demand or interactive data streaming. In particular, apps -that provide VOIP, push-to-talk, conferencing, and audio streaming can use the API to initiate -sessions and transmit or receive data streams over any available network. See the {@link -android.net.rtp} documentation.</li> - <li>Support for joysticks and other generic motion inputs.</li> - <li>See the <a href="android-3.1.html">Android 3.1 Platform</a> -notes for many more new APIs.</li> - </ul> - </dd> - - <dt><a href="android-3.2.html">Android 3.2</a></dt> - <dd> - <ul> - <li>New screens support APIs that give you more control over how your applications are -displayed across different screen sizes. The API extends the existing screen support model with the -ability to precisely target specific screen size ranges by dimensions, measured in -density-independent pixel units (such as 600dp or 720dp wide), rather than by their generalized -screen sizes (such as large or xlarge). For example, this is important in order to help you -distinguish between a 5" device and a 7" device, which would both traditionally be bucketed as -"large" screens. See the blog post, <a -href="http://android-developers.blogspot.com/2011/07/new-tools-for-managing-screen-sizes.html"> -New Tools for Managing Screen Sizes</a>.</li> - <li>New constants for <a -href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> to -declare landscape or portrait screen orientation requirements.</li> - <li>The device "screen size" configuration now changes during a screen orientation -change. If your app targets API level 13 or higher, you must handle the {@code "screenSize"} -configuration change if you also want to handle the {@code "orientation"} configuration change. See -<a href="{@docRoot}guide/topics/manifest/activity-element.html#config">{@code -android:configChanges}</a> for more information.</li> - <li>See the <a href="android-3.2.html">Android 3.2 Platform</a> -notes for other new APIs.</li> - </ul> - </dd> - -</dl> - - - - -<h2 id="api-level">API Level</h2> - -<p>The Android {@sdkPlatformVersion} API is assigned an integer -identifier—<strong>{@sdkPlatformApiLevel}</strong>—that is stored in the system itself. -This identifier, called the "API level", allows the system to correctly determine whether an -application is compatible with the system, prior to installing the application. </p> - -<p>To use APIs introduced in Android {@sdkPlatformVersion} in your application, you need compile the -application against an Android platform that supports API level {@sdkPlatformApiLevel} or -higher. Depending on your needs, you might also need to add an -<code>android:minSdkVersion="{@sdkPlatformApiLevel}"</code> attribute to the -<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> -element.</p> - -<p>For more information, see the <a href="{@docRoot}guide/appendix/api-levels.html">API Levels</a> -document. </p> - - -<h2 id="apps">Built-in Applications</h2> - -<p>The system image included in the downloadable platform provides these -built-in applications:</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>API Demos</li> -<li>Browser</li> -<li>Calculator</li> -<li>Calendar</li> -<li>Camera</li> -<li>Clock</li> -<li>Custom Locale</li> -<li>Dev Tools</li> -<li>Downloads</li> -<li>Email</li> -<li>Gallery</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<ul> -<li>Gestures Builder</li> -<li>Messaging</li> -<li>Music</li> -<li>People</li> -<li>Phone</li> -<li>Search</li> -<li>Settings</li> -<li>Speech Recorder</li> -<li>Widget Preview</li> -</ul> -</td> -</tr> -</table> - - -<h2 id="locs" style="margin-top:.75em;">Locales</h2> - -<p>The system image included in the downloadable SDK platform provides a variety of built-in -locales. In some cases, region-specific strings are available for the locales. In other cases, a -default version of the language is used. The languages that are available in the Android 3.0 system -image are listed below (with <em>language</em>_<em>country/region</em> locale descriptor).</p> - -<table style="border:0;padding-bottom:0;margin-bottom:0;"> -<tr> -<td style="border:0;padding-bottom:0;margin-bottom:0;"> -<ul> -<li>Arabic, Egypt (ar_EG)</li> -<li>Arabic, Israel (ar_IL)</li> -<li>Bulgarian, Bulgaria (bg_BG)</li> -<li>Catalan, Spain (ca_ES)</li> -<li>Czech, Czech Republic (cs_CZ)</li> -<li>Danish, Denmark(da_DK)</li> -<li>German, Austria (de_AT)</li> -<li>German, Switzerland (de_CH)</li> -<li>German, Germany (de_DE)</li> -<li>German, Liechtenstein (de_LI)</li> -<li>Greek, Greece (el_GR)</li> -<li>English, Australia (en_AU)</li> -<li>English, Canada (en_CA)</li> -<li>English, Britain (en_GB)</li> -<li>English, Ireland (en_IE)</li> -<li>English, India (en_IN)</li> -<li>English, New Zealand (en_NZ)</li> -<li>English, Singapore(en_SG)</li> -<li>English, US (en_US)</li> -<li>English, South Africa (en_ZA)</li> -<li>Spanish (es_ES)</li> -<li>Spanish, US (es_US)</li> -<li>Finnish, Finland (fi_FI)</li> -<li>French, Belgium (fr_BE)</li> -<li>French, Canada (fr_CA)</li> -<li>French, Switzerland (fr_CH)</li> -<li>French, France (fr_FR)</li> -<li>Hebrew, Israel (he_IL)</li> -<li>Hindi, India (hi_IN)</li> -</ul> -</td> -<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;"> -<li>Croatian, Croatia (hr_HR)</li> -<li>Hungarian, Hungary (hu_HU)</li> -<li>Indonesian, Indonesia (id_ID)</li> -<li>Italian, Switzerland (it_CH)</li> -<li>Italian, Italy (it_IT)</li> -<li>Japanese (ja_JP)</li> -<li>Korean (ko_KR)</li> -<li>Lithuanian, Lithuania (lt_LT)</li> -<li>Latvian, Latvia (lv_LV)</li> -<li>Norwegian bokmål, Norway (nb_NO)</li> -<li>Dutch, Belgium (nl_BE)</li> -<li>Dutch, Netherlands (nl_NL)</li> -<li>Polish (pl_PL)</li> -<li>Portuguese, Brazil (pt_BR)</li> -<li>Portuguese, Portugal (pt_PT)</li> -<li>Romanian, Romania (ro_RO)</li> -<li>Russian (ru_RU)</li></li> -<li>Slovak, Slovakia (sk_SK)</li> -<li>Slovenian, Slovenia (sl_SI)</li> -<li>Serbian (sr_RS)</li> -<li>Swedish, Sweden (sv_SE)</li> -<li>Thai, Thailand (th_TH)</li> -<li>Tagalog, Philippines (tl_PH)</li> -<li>Turkish, Turkey (tr_TR)</li> -<li>Ukrainian, Ukraine (uk_UA)</li> -<li>Vietnamese, Vietnam (vi_VN)</li> -<li>Chinese, PRC (zh_CN)</li> -<li>Chinese, Taiwan (zh_TW)</li> -</td> -</tr> -</table> - -<p class="note"><strong>Note:</strong> The Android platform may support more -locales than are included in the SDK system image. All of the supported locales -are available in the <a href="http://source.android.com/">Android Open Source -Project</a>.</p> - -<h2 id="skins">Emulator Skins</h2> - -<p>The downloadable platform includes the following emulator skins:</p> - -<ul> - <li> - QVGA (240x320, low density, small screen) - </li> - <li> - WQVGA400 (240x400, low density, normal screen) - </li> - <li> - WQVGA432 (240x432, low density, normal screen) - </li> - <li> - HVGA (320x480, medium density, normal screen) - </li> - <li> - WVGA800 (480x800, high density, normal screen) - </li> - <li> - WVGA854 (480x854 high density, normal screen) - </li> - <li> - WXGA720 (1280x720, extra-high density, normal screen) <span class="new">new</span> - </li> - <li> - WSVGA (1024x600, medium density, large screen) <span class="new">new</span> - </li> - <li> - WXGA (1280x800, medium density, xlarge screen) - </li> -</ul> - -<p>To test your application on an emulator that represents the latest Android device, you can create -an AVD with the new WXGA720 skin (it's an xhdpi, normal screen device). Note that the emulator -currently doesn't support the new on-screen navigation bar for devices without hardware navigation -buttons, so when using this skin, you must use keyboard keys <em>Home</em> for the Home button, -<em>ESC</em> for the Back button, and <em>F2</em> or <em>Page-up</em> for the Menu button.</p> - -<p>However, due to performance issues in the emulator when running high-resolution screens such as -the one for the WXGA720 skin, we recommend that you primarily use the traditional WVGA800 skin -(hdpi, normal screen) to test your application.</p> - diff --git a/docs/html/sdk/api_diff/10/changes/changes-summary.html b/docs/html/sdk/api_diff/10/changes/changes-summary.html index dbb2881..ff0e479 100644 --- a/docs/html/sdk/api_diff/10/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/10/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/11/changes/changes-summary.html b/docs/html/sdk/api_diff/11/changes/changes-summary.html index b6af9ae..18e9f5d 100644 --- a/docs/html/sdk/api_diff/11/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/11/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/12/changes/changes-summary.html b/docs/html/sdk/api_diff/12/changes/changes-summary.html index 2a630c2..e069d3d 100644 --- a/docs/html/sdk/api_diff/12/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/12/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/13/changes/changes-summary.html b/docs/html/sdk/api_diff/13/changes/changes-summary.html index 082fcfb..3b1c55a 100644 --- a/docs/html/sdk/api_diff/13/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/13/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/14/changes/changes-summary.html b/docs/html/sdk/api_diff/14/changes/changes-summary.html index ccb5d26..0cec877 100644 --- a/docs/html/sdk/api_diff/14/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/14/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/15/changes/changes-summary.html b/docs/html/sdk/api_diff/15/changes/changes-summary.html index 0acb973..7f00168 100644 --- a/docs/html/sdk/api_diff/15/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/15/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/3/changes/changes-summary.html b/docs/html/sdk/api_diff/3/changes/changes-summary.html index 65a37f8..4c0012a 100644 --- a/docs/html/sdk/api_diff/3/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/3/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/4/changes/changes-summary.html b/docs/html/sdk/api_diff/4/changes/changes-summary.html index 88b8be6..bbed016 100644 --- a/docs/html/sdk/api_diff/4/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/4/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/5/changes/changes-summary.html b/docs/html/sdk/api_diff/5/changes/changes-summary.html index 3a06d98..1f10f25 100644 --- a/docs/html/sdk/api_diff/5/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/5/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/6/changes/changes-summary.html b/docs/html/sdk/api_diff/6/changes/changes-summary.html index 77ceb25..a1c3985 100644 --- a/docs/html/sdk/api_diff/6/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/6/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/7/changes/changes-summary.html b/docs/html/sdk/api_diff/7/changes/changes-summary.html index 330f727..34d4d25 100644 --- a/docs/html/sdk/api_diff/7/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/7/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/8/changes/changes-summary.html b/docs/html/sdk/api_diff/8/changes/changes-summary.html index f5fa7e6..5041182 100644 --- a/docs/html/sdk/api_diff/8/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/8/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/api_diff/9/changes/changes-summary.html b/docs/html/sdk/api_diff/9/changes/changes-summary.html index f81cea1..4bccfe5 100644 --- a/docs/html/sdk/api_diff/9/changes/changes-summary.html +++ b/docs/html/sdk/api_diff/9/changes/changes-summary.html @@ -73,7 +73,7 @@ body{overflow:auto;} <div id="docTitleContainer"> <h1>Android API Differences Report</h1> <p>This report details the changes in the core Android framework API between two <a -href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a> +href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels" target="_top">API Level</a> specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields. The report also includes general statistics that characterize the extent and type of the differences.</p> <p>This report is based a comparison of the Android API specifications diff --git a/docs/html/sdk/compatibility-library.jd b/docs/html/sdk/compatibility-library.jd deleted file mode 100644 index f81e8ae..0000000 --- a/docs/html/sdk/compatibility-library.jd +++ /dev/null @@ -1,484 +0,0 @@ -page.title=Support Package - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - -<h2>In this document</h2> -<ol> - <li><a href="#Notes">Revisions</a></li> - <li><a href="#Downloading">Downloading the Support Package</a></li> - <li><a href="#SettingUp">Setting Up a Project to Use a Library</a></li> - <li><a href="#Using">Using the v4 Library APIs</a></li> - <li><a href="#Docs">Reference Docs</a></li> - <li><a href="#Samples">Samples</a></li> -</ol> - -<h2>See also</h2> -<ol> - <li><a -href="{@docRoot}guide/practices/optimizing-for-3.0.html">Optimizing Apps for Android 3.0</a></li> - <li><a href="http://code.google.com/p/iosched/">Google I/O App source code</a></li> -</ol> - -</div> -</div> - -<p><em>Minimum API level supported:</em> <b>4</b></p> - -<p>The Support Package includes static "support libraries" that you can add to your Android -application in order to use APIs that are either not available for older platform versions or that -offer "utility" APIs that aren't a part of the framework APIs. The goal is to simplify your -development by offering more APIs that you can bundle with your application so you can -worry less about platform versions.</p> - -<p class="note"><strong>Note:</strong> The Support Package includes more than one support -library. Each one has a different <em>minimum API level</em>. For example, one library requires API -level 4 or higher, while another requires API level 13 or higher (v13 is a superset of v4 and -includes additional -support classes to work with v13 APIs). The minimum version is indicated -by the directory name, such as {@code v4/} and {@code v13/}.</p> - - -<h2 id="Notes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the Support Package, as denoted by revision number.</p> - -<div class="toggle-content open"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img" /> - Support Package, revision 7 (March 2012) - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em"> - <dl> - <dt>Changes for v4 support library:</dt> - <dd> - <ul> - <li>Added {@link android.support.v4.app.ShareCompat}, which provides helper classes -for sending and receiving content for social sharing applications, including new metadata for -attributing shared data to the source app. This class also provides compatible integration with the -new {@link android.widget.ShareActionProvider} in Android 4.0.</li> - <li>Added {@link android.support.v4.app.NavUtils} and {@link -android.support.v4.app.TaskStackBuilder} to provide support for implementing the -<a href="{@docRoot}design/index.html">Android Design</a> guidelines for navigation. These -additions include a way to implement the action bar's <em>Up</em> button across versions. -For an example implementation of this pattern, see the AppNavigation sample in -({@code <em><sdk></em>/samples/<em><platform></em>/AppNavigation}).</li> - <li>Added {@link android.support.v4.app.NotificationCompat.Builder} to provide a -compatibility implementation of Android 3.0's {@link android.app.Notification.Builder} helper class -for creating standardized system notifications.</li> - </ul> - </dd> - </dl> - </div> - -<div class="toggle-content closed"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" /> - Support Package, revision 6 (December 2011) - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em"> - <p class="note"><strong>Note:</strong> Reference for support library APIs are now available with - the framework references, for example: {@link android.support.v4.app}.</p> -<dl> - <dt>Changes for v4 support library:</dt> - <dd> - <ul> - <li>Changes to ViewPager: - <ul> - <li>Added extra decorative view support for {@link android.support.v4.view.ViewPager}. - Decorative views may be supplied as child views of a pager in XML layout.</li> - <li>Added {@link android.support.v4.view.PagerAdapter#getPageTitle - PagerAdapter.getPageTitle()} to supply title strings for pages, which defaults to no - title for each page.</li> - <li>Added {@link android.support.v4.view.PagerTitleStrip}, a non-interactive title - strip, that can be added as a child of ViewPager. Developers can supply text - appearance and color, as well as layout sizing and gravity information.</li> - <li>Updated {@link android.support.v4.view.PagerAdapter} methods to take ViewGroup - objects, rather than View to avoid class casting in adapter implementations.</li> - <li>Updated {@link android.support.v4.view.ViewPager} to use Launcher-style - fling behavior.</li> - <li>Bug fixes for user interface interaction and test automation.</li> - </ul> - </li> - - <li>Support for Fragments: - <ul> - <li>Changed {@code setStartDeferred()} method to {@link - android.support.v4.app.Fragment#setUserVisibleHint}.</li> - <li>Added deferred start for off-screen pages to improve performance.</li> - </ul> - </li> - - <li>Support for Accessiblity APIs: - <ul> - <li>Updated {@link android.support.v4.view.AccessibilityDelegateCompat} methods - to return empty lists instead of null.</li> - <li>Added new APIs needed by the v4 samples.</li> - </ul> - </li> - - </ul> - </dd> - </dl> - </div> - -<div class="toggle-content closed"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" /> - Support Package, revision 5 (December 2011) - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em"> - <dl> - <dt>Changes for v4 support library:</dt> - <dd> - <ul> - <li>Support for Accessiblity APIs: - <ul> - <li>Added {@link android.support.v4.view.AccessibilityDelegateCompat} - to support {@link android.view.View.AccessibilityDelegate}.</li> - - <li>Added {@link android.support.v4.view.accessibility.AccessibilityEventCompat} - to support {@link android.view.accessibility.AccessibilityEvent}.</li> - - <li>Added {@link android.support.v4.view.accessibility.AccessibilityManagerCompat} - to support {@link android.view.accessibility.AccessibilityManager}.</li> - - <li>Added {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat} - to support {@link android.view.accessibility.AccessibilityNodeInfo}.</li> - - <li>Added {@link android.support.v4.view.accessibility.AccessibilityRecordCompat} - to support {@link android.view.accessibility.AccessibilityRecord}.</li> - - <li>Added {@link - android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat} - to support {@link android.accessibilityservice.AccessibilityServiceInfo}.</li> - - <li>Added {@link android.support.v4.view.ViewGroupCompat} - to support accessibility features in {@link android.view.ViewGroup}. - </li> - - <li>Modified {@link android.support.v4.view.ViewCompat} - to support accessibility features in {@link android.view.View}.</li> - </ul> - </li> - - <li>Changes to ViewPager: - <ul> - <li>Added support for margins between pages. - An optional {@link android.graphics.drawable.Drawable} can be provided - to fill the margins.</li> - <li>Added support for {@link android.widget.EdgeEffect}.</li> - <li>Added support for keyboard navigation</li> - <li>Added support to control how many pages are kept to either side - of the current page.</li> - <li>Improved touch physics.</li> - <li>Bug fixes for user interface behavior.</li> - </ul> - </li> - </ul> - </dd> - </dl> - </div> - -<div class="toggle-content closed"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" /> - Support Package, revision 4 (October 2011) - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em"> - <dl> - <dt>Changes for v4 support library:</dt> - <dd> - <ul> - <li>Added <code>EdgeEffectCompat</code> to - support {@link android.widget.EdgeEffect}.</li> - - <li>Added <code>LocalBroadcastManager</code> to allow applications to easily - register for and receive intents within a single application without - broadcasting them globally.</li> - - <li>Added support in <code>ViewCompat</code> to check for and set overscroll - modes for {@link android.view.View}s on Android 2.3 and later.</li> - <li>Changes to Fragment APIs: - <ul> - <li>Added new APIs to control the visibility of new menus.</li> - <li>Added custom animation APIs.</li> - <li>Added APIs in <code>FragmentActivity</code> to retain custom, - non-configuration instance data.</li> - <li>Various bug fixes.</li> - </ul> - </li> - - <li>Fixed a {@link android.content.Loader} bug that caused issues in - canceling {@link android.os.AsyncTask}s when running on Froyo and older - versions of the platform. The support - code now uses its own version of {@link android.os.AsyncTask} to keep the same - behavior on all platform versions.</li> - - </ul> - </dd> - </dl> - </div> - - - -</div> - - -<div class="toggle-content closed"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" /> - Compatibility Package, revision 3 (July 2011) - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em"> - <dl> - <dt>Changes for v4 support library:</dt> - <dd> - <ul> - <li>Adds support for {@link android.app.Fragment.SavedState}</li> - <li>Adds {@code MotionEventCompat} to support newer {@link -android.view.MotionEvent} APIs</li> - <li>Adds {@code VelocityTrackerCompat} to support a newer {@link -android.view.VelocityTracker} APIs</li> - <li>Adds {@code ViewConfigurationCompat} to support a newer {@link -android.view.ViewConfiguration} APIs</li> - <li>All new APIs (available only in the support library) that allow you to create UIs -with horizontal paging, allowing users to swipe left and right between content views. Classes to -support this include: - <ul> - <li>{@code ViewPager}: A {@link android.view.ViewGroup} that manages the -layout for the child views, which the user can swipe between.</li> - <li>{@code PagerAdapter}: An adapter that populates the {@code ViewPager} with the -views that represent each page.</li> - <li>{@code FragmentPagerAdapter}: An extension of {@code PagerAdapter} for flipping -between fragments.</li> - <li>{@code FragmentStatePagerAdapter}: An extension of {@code PagerAdapter} for -flipping between fragments that uses the library's support for {@link -android.app.Fragment.SavedState}.</li> - </ul> - </li> - </ul> - </dd> - <dt>New v13 support library:</dt> - <dd> - <ul> - <li>Includes the {@code FragmentPagerAdapter} and {@code FragmentStatePagerAdapter} -to support the horizontal paging. - <p>These are exactly the same as the APIs added to the v4 support library, but rely on -other platform components in Android 3.2. Use this library instead of v4 if you're developing for -Android 3.2 and higher (all other APIs in the v4 library are already available with API level -13).</p> - </li> - </ul> - </dd> - </dl> - </div> - -</div> - - -<div class="toggle-content closed"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" /> - Compatibility Package, revision 2 (May 2011) - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em"> - <dl> - <dt>Changes for v4 library:</dt> - <dd> - <ul> - <li>Support for fragment animations</li> - <li>Fix {@code android.support.v4.app.Fragment#onActivityResult Fragment.onActivityResult()} - bug</li> - </ul> - </dd> - </dl> - </div> - -</div> - - -<div class="toggle-content closed"> - - <p><a href="#" onclick="return toggleContent(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" /> - Compatibility Package, revision 1 (March 2011) - </a></p> - - <div class="toggle-content-toggleme" style="padding-left:2em"> - <p>Initial release with the v4 library.</p> - </div> - -</div> - - - -<h2 id="Downloading">Downloading the Support Package</h2> - -<p>The Support Package is provided as a downloadable package from the Android SDK -Manager. To install:</p> - -<ol> - <li>Launch the Android SDK Manager. - <p>From Eclipse, you can select <strong>Window</strong> -> <strong>Android SDK Manager</strong>. Or, launch {@code SDK Manager.exe} from -the {@code <sdk>/} directory (on Windows only) or {@code android} from the {@code -<sdk>/tools/} directory.</p></li> - <li>Expand the Android Repository, check <strong>Android Support package</strong> -and click <strong>Install selected</strong>.</li> - <li>Proceed to install the package.</li> -</ol> - -<p>When done, all files (including source code, samples, and the {@code .jar} files) are saved -into the <code><sdk>/extras/android/support/</code> directory. This directory contains -each of the different support libraries, such as the library for API level 4 and up and the library -for API level 13 and up, each named with the respective version (such as {@code v4/}).</p> - - -<h2 id="SettingUp">Setting Up a Project to Use a Library</h2> - -<p>To add one of the libraries to your Android project:</p> -<ol> - <li>In your Android project, create a directory named {@code libs} at the root of your -project (next to {@code src/}, {@code res/}, etc.)</li> - <li>Locate the JAR file for the library you want to use and copy it into the {@code -libs/} directory. - <p>For example, the library that supports API level 4 and up is located at {@code -<sdk>/extras/android/support/v4/android-support-v4.jar}.</p> - </li> - <li>Add the JAR to your project build path. - <p>In Eclipse, right-click the JAR file in the Package Explorer, select <strong>Build -Path</strong> > <strong>Add to Build Path</strong>.</p> - </li> -</ol> - -<p>Your application is now ready to use the library APIs. All the -provided APIs are available in the {@code android.support} package (for -example, {@code android.support.v4}).</p> - -<p class="note"><strong>Tip:</strong> To see the library APIs in action, take a look at the sample -apps in {@code <sdk>/extras/android/support/<version>/samples/}.</p> - -<p class="warning"><strong>Warning:</strong> Be certain that you not confuse the standard -{@code android} packages with those in {@code android.support} library. Some code completion tools -might -get this wrong, especially if you're building against recent versions of the platform. To be safe, -keep your build target set to the same version as you have defined for your <a -href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code android:minSdkVersion}</a> -and double check the import statements for classes that also exist in the support library, such as -{@code SimpleCursorAdapter}.</p> - - -<h2 id="Using">Using the v4 Library APIs</h2> - -<p>The support library for v4 provides access to several classes introduced with Android 3.0 and -beyond, plus some updated version of existing classes, and even some APIs that currently don't -exist in the Android platform. Some of the most useful and notable classes that have -counterparts in the v4 support library are:</p> - -<ul> - <li>{@link android.app.Fragment}</li> - <li>{@link android.app.FragmentManager}</li> - <li>{@link android.app.FragmentTransaction}</li> - <li>{@link android.app.ListFragment}</li> - <li>{@link android.app.DialogFragment}</li> - <li>{@link android.app.LoaderManager}</li> - <li>{@link android.content.Loader}</li> - <li>{@link android.content.AsyncTaskLoader}</li> - <li>{@link android.content.CursorLoader}</li> -</ul> - -<p>For each of the classes above (and others not listed), the APIs work almost exactly the same -as the counterparts in the latest Android platform. Thus, you can usually refer to -the online documentation for information about the supported APIs. There are some -differences, however. Most notably:</p> - -<ul> - <li>When creating an activity to use fragments, you must declare your activity to extend the -{@link android.support.v4.app.FragmentActivity} class (instead of the traditional -{@link android.app.Activity} class).</li> - <li>To manage your fragments and loaders, you must use the methods - {@link android.support.v4.app.FragmentActivity#getSupportFragmentManager - FragmentActivity.getSupportFragmentManager()} and - {@link android.support.v4.app.FragmentActivity#getSupportLoaderManager - FragmentActivity.getSupportLoaderManager()} (instead of the - {@link android.app.Activity#getFragmentManager()} and - {@link android.app.Activity#getLoaderManager()} methods).</li> - <li>The {@link android.app.ActionBar} is <strong>not supported</strong> by the library. -However, when creating your <a href="{@docRoot}guide/topics/ui/menus.html#options-menu">Options -Menu</a>, you can declare which items should be added to the Action Bar when it's available (on -Android 3.0 or later). You can do so with the -{@link android.support.v4.view.MenuCompat#setShowAsAction MenuCompat.setShowAsAction()} method, for -example: -<pre> -public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.options, menu); - MenuCompat.setShowAsAction(menu.findItem(R.id.action_search), 1); - return true; -} -</pre> -<p>Also see the <a href="{@docRoot}resources/samples/ActionBarCompat/index.html">Action Bar -Compatibility</a> sample for a demonstration of how to use {@link android.app.ActionBar} on Android -3.0+ and also support action bar functionality on older versions.</p> -</li> -</ul> - -<div class="note"><p><strong>Tip:</strong> To enable the Holographic theme on devices -running Android 3.0 or higher, declare in your manifest file that your application targets -API level 11, for example:</p> -<pre> -<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11" /> -</pre> -<p>This way, your application automatically receives the Holographic theme and the Action Bar for -each activity when running on Android 3.0 and higher.</p> -</div> - -<p>For more information about how you can optimize your application for the latest -Android-powered devices, read <a href="{@docRoot}guide/practices/optimizing-for-3.0.html">Optimizing -Apps for Android 3.0</a>.</p> - - -<h2 id="Docs">Reference Docs</h2> - -<p>The reference documentation for the Support Packages is included as part of the Android -online developer documentation:</p> - -<ul> - <li><a href="{@docRoot}reference/android/support/v4/app/package-summary.html">Support Package - API 4 Reference</a></li> - <li><a href="{@docRoot}reference/android/support/v13/app/package-summary.html">Support Package - API 13 Reference</a></li> -</ul> - - -<h2 id="Samples">Samples</h2> - -<p>If you want to see some code that uses the support libraries, samples are included with the -Support Package, inside each support library directory, for example; {@code -<sdk>/extras/android/support/v4/samples/}. You can also view these samples as part of the -Android online developer documentation:</p> - -<ul> - <li><a href="{@docRoot}resources/samples/Support4Demos/index.html">Support API 4 Demos</a></li> - <li><a href="{@docRoot}resources/samples/Support13Demos/index.html">Support API 13 Demos</a></li> -</ul> - -<p>Additionally, the <a href="http://code.google.com/p/iosched/">Google I/O App</a> is a complete -application that uses the v4 support library to provide a single APK for both handsets and tablets -and also demonstrates some of Android's best practices in Android UI design.</p> diff --git a/docs/html/sdk/download.jd b/docs/html/sdk/download.jd deleted file mode 100644 index af25609..0000000 --- a/docs/html/sdk/download.jd +++ /dev/null @@ -1,93 +0,0 @@ -page.title=Download an Archived Android SDK -hide_license_footer=true - -@jd:body - -<script type="text/javascript"> - function verify() { - document.getElementById('download-button').disabled = -!document.getElementById('checkbox').checked; - } - function submit() { - var location = window.location.href; - if (location.indexOf('?v=') != -1) { - var filename = location.substring(location.indexOf('=')+1,location.length); - if (document.getElementById('checkbox').checked) { - document.location = "http://dl.google.com/android/" + filename; - } - document.getElementById('click-download').setAttribute("href", "http://dl.google.com/android/" -+ filename); - $("#terms-form").hide(500); - $("#next-steps").show(500); - document.getElementById('checkbox').disabled=true; - document.getElementById('download-button').disabled=true; - } else { - alert("You have not selected an SDK version. Please return to the SDK Archives page"); - } - } -</script> - -<div id="terms-form"> - <p>Please carefully review the Android SDK License Agreement before downloading the SDK. -The License Agreement constitutes a contract between you and Google with respect to your use of the -SDK.</p> - <p class="note"><strong>Note:</strong> You must agree to this license agreement in order to -download one of the archived SDKs, because these SDK packages contain Google software (whereas, the -<a href="http://developer.android.com/sdk/index.html">current SDK</a> packages do not require a -license agreement, because they contain only the open sourced SDK tools).</p> - - <iframe id="terms" style="border:1px solid #888;margin:0 0 1em;height:400px;width:95%;" -src="terms_body.html"> - </iframe> - - <p> - <input type="checkbox" id="checkbox" onclick="verify()" /> - <label for="checkbox">I agree to the terms of the Android SDK License Agreement.</label> - </p> - <p> - <input type="submit" value="Download" id="download-button" disabled="disabled" -onclick="submit()" /> - </p> - <p> - <script language="javascript"> - var loc = window.location.href; - if (loc.indexOf('?v=') != -1) { - var filename = loc.substring(loc.indexOf('=')+1,loc.length).replace(/</g,"<").replace(/>/g,">"); - document.write("File: " + filename); - } - </script> - </p> -</div><!-- end terms-form --> - -<noscript> - <p><strong>Please enable Javascript in your browser in order to agree to the terms and download -the SDK.</strong></p> -</noscript> - -<div class="special" id="next-steps" style="display:none"> - <p>Your download should be underway. If not, <a id="click-download">click here to start the -download</a>.</p> - <p>Beware that you've just downloaded a very old version of the Android SDK, which is not -recommended. We no longer maintain documentation about how to install these archived SDKs nor -support the tools contained within.</p> - <p>We recommend that you instead download the latest <a -href="http://developer.android.com/sdk/index.html">Android SDK starter package</a>, which includes -the latest SDK tools and allows you to develop against any version of the Android platform, back to -Android 1.1.</p> -</div> - -<script type="text/javascript"> - var loc = window.location.href; - var filename = loc.substring(loc.indexOf('=')+1,loc.length); - version = filename.substring(filename.indexOf('.')-1,filename.lastIndexOf('.')); - $(".addVersionPath").each(function(i) { - var oldHref = $(this).attr("href"); - $(this).attr({href: "/sdk/" + version + "/" + oldHref}); - }); -</script> - - - - - - diff --git a/docs/html/sdk/eclipse-adt.jd b/docs/html/sdk/eclipse-adt.jd deleted file mode 100644 index e117118..0000000 --- a/docs/html/sdk/eclipse-adt.jd +++ /dev/null @@ -1,1413 +0,0 @@ -page.title=ADT Plugin for Eclipse -adt.zip.version=18.0.0 -adt.zip.download=ADT-18.0.0.zip -adt.zip.bytes=12834793 -adt.zip.checksum=b446fa157ed97af79d1e21629201efbb - -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - - <h2>In this document</h2> - <ol> - <li><a href="#notes">Revisions</a></li> - <li><a href="#installing">Installing the ADT Plugin</a> - <ol> - <li><a href="#preparing">Preparing for Installation</a></li> - <li><a href="#downloading">Downloading the ADT Plugin</a> - <li><a href="#configuring">Configuring the ADT Plugin</a></li> - <li><a href="#troubleshooting">Troubleshooting</a></li> - </ol> - </li> - <li><a href="#updating">Updating the ADT Plugin</a></li> - </ol> - - <h2>See also</h2> - <ol> - <li><a href="{@docRoot}guide/developing/tools/adt.html">Android Developer Tools</a></li> - </ol> - -</div> -</div> - -<p>Android Development Tools (ADT) is a plugin for the Eclipse IDE -that is designed to give you a powerful, integrated environment in which -to build Android applications.</p> - -<p>ADT extends the capabilities of Eclipse to let you quickly set up new Android -projects, create an application UI, add packages based on the Android -Framework API, debug your applications using the Android SDK tools, and even -export signed (or unsigned) {@code .apk} files in order to distribute your application.</p> - -<p>Developing in Eclipse with ADT is highly recommended and is the fastest way -to get started. With the guided project setup it provides, as well as tools -integration, custom XML editors, and debug output pane, ADT gives you an -incredible boost in developing Android applications. </p> - -<p>This document provides step-by-step instructions on how to download the ADT -plugin and install it into your Eclipse development environment. Note that -before you can install or use ADT, you must have compatible versions of both the -Eclipse IDE and the Android SDK installed. For details, make sure to read <a -href="#installing">Installing the ADT Plugin</a>, below. </p> - -<p>If you are already using ADT, this document also provides instructions on -how to update ADT to the latest version or how to uninstall it, if necessary. -</p> - -<p>For information about the features provided by the ADT plugin, such as code -editor features, SDK tool integration, and the graphical layout editor (for drag-and-drop layout -editing), see the <a href="{@docRoot}guide/developing/tools/adt.html">Android Developer Tools</a> -document.</p> - - -<h2 id="notes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the ADT Plugin, as denoted by revision number. </p> - -<p>For a summary of all known issues in ADT, see <a -href="http://tools.android.com/knownissues">http://tools.android.com/knownissues</a>.</p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { -padding: .25em 1em; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleme a { - text-decoration:underline; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - - -<div class="toggleable opened"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" -width="9px" /> -ADT 18.0.0</a> <em>(April 2012)</em> - <div class="toggleme"> -<dl> - <dt>Dependencies:</dt> - - <dd> - <ul> - <li>Java 1.6 or higher is required for ADT 18.0.0.</li> - <li>Eclipse Helios (Version 3.6.2) or higher is required for ADT 18.0.0.</li> - <li>ADT 18.0.0 is designed for use with <a href="{@docRoot}sdk/tools-notes.html">SDK Tools - r18</a>. If you haven't already installed SDK Tools r18 into your SDK, use the Android SDK - Manager to do so.</li> - </ul> - </dd> - - <dt>Bug fixes:</dt> - <dd> - <ul> - <li>Fixed problem where exporting release package does not recompile libraries in release - mode. - (<a href="http://code.google.com/p/android/issues/detail?id=27940">Issue 27940</a>)</li> - </ul> - </dd> - -</dl> - -</div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 17.0.0</a> <em>(March 2012)</em> - <div class="toggleme"> -<dl> - <dt>Dependencies:</dt> - - <dd> - <ul> - <li>Java 1.6 or higher is required for ADT 17.0.0.</li> - <li>Eclipse Helios (Version 3.6.2) or higher is required for ADT 17.0.0.</li> - <li>ADT 17.0.0 is designed for use with <a href="{@docRoot}sdk/tools-notes.html">SDK Tools - r17</a>. If you haven't already installed SDK Tools r17 into your SDK, use the Android SDK - Manager to do so.</li> - </ul> - </dd> - - <dt>General improvements:</dt> - <dd> - <ul> - <li>New build features - <ul> - <li>Added feature to automatically setup JAR dependencies. Any {@code .jar} files in the - {@code /libs} folder are added to the build configuration (similar to how the Ant build - system works). Also, {@code .jar} files needed by library projects are also automatically - added to projects that depend on those library projects. - (<a href="http://tools.android.com/recent/dealingwithdependenciesinandroidprojects">more - info</a>)</li> - <li>Added a feature that allows you to run some code only in debug mode. Builds now -generate a class called {@code BuildConfig} containing a {@code DEBUG} constant that is -automatically set according to your build type. You can check the ({@code BuildConfig.DEBUG}) -constant in your code to run debug-only functions.</li> - <li>Added support for custom views with custom attributes in libraries. Layouts using -custom attributes must use the namespace URI {@code http://schemas.android.com/apk/res-auto} instead -of the URI that includes the app package name. This URI is replaced with the app specific one at -build time.</li> - </ul> - </li> - <li>Improved Lint features. See the <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r17</a> -release notes.</li> - <li>Improved the Lint user interface - <ul> - <li>Added <strong>Run Lint</strong> toolbar action with a dropdown menu for selecting -specific (or all) projects, clearing results and other actions.</li> - <li>Updated the results window to be organized as a tree rather than a flat list. Each -issue type has a single top level item, which makes it easier to quickly scan through the reported -issues and narrow down to the issues you are most interested in.</li> - <li>Added many new toolbar actions to the results window, including expand/collapse, -ignore in file, ignore in project, ignore everywhere, show options, and configure columns.</li> - <li>Added new column options for the <strong>Lint Warnings</strong> tab, such as -category, priority, project, file and line. The column selection (as well as the column sizes) are -persisted. You can also click on columns to sort by those values.</li> - <li>Added Enable All and Disable All buttons to the Lint Options dialog, and a search -filter textbox to filter by issue id, summary and severity.</li> - </ul> - </li> - <li>Added Quick Outline for XML editors (Ctrl-O, Command-O). This feature shows the structure -of the current file including icons and ids, lets you filter and quickly jump to specific ids.</li> - <li>Updated the resource chooser to shows the resolved value for resources. For example, -when selecting {@code @string/hello} the chooser displays a resolved value such as "Hello World"). -The resource chooser also now allows you to edit the chosen value directly.</li> - <li>Updated Layout Editor so that it does not assign default ids to layouts, includes and -merge tags. This behavior tended to pollute the namespace with a lot of unused resources since -layouts are not usually manipulated via code, or referenced from XML. (The RelativeLayout editor -automatically assigns ids to views without ids when pointing to them.)</li> - <li>Added ability to export screenshots from the Layout Editor</li> - </ul> - </dd> - - <dt>Bug fixes:</dt> - <dd> - <ul> - <li>Fixed problem using Layout Editor with {@link android.widget.SlidingDrawer} which could - not be dragged into the layout on some platforms.</li> - <li>Fixed preview rendering for {@link android.widget.SlidingDrawer} and - {@link android.widget.TabHost}. - (<a href="http://code.google.com/p/android/issues/detail?id=23022">Issue 23022</a>).</li> - <li>Fixed issues that could prevent layout rendering due to unresolvable resources. - (<a href="http://code.google.com/p/android/issues/detail?id=21046">Issue 21046</a>, - <a href="http://code.google.com/p/android/issues/detail?id=21051">Issue 21051</a>)</li> - <li>Fixed a bug in resource chooser which made some types of framework resources impossible to -select. (<a href="http://code.google.com/p/android/issues/detail?id=20589">Issue 20589</a>)</li> - <li>Fixed a bug in the formatter where a certain whitespace pattern could result in a - non-space character getting deleted. - (<a href="http://code.google.com/p/android/issues/detail?id=23940">Issue 23940</a>)</li> - <li>Fixed a locale bug affecting Turkish locales in particular. - (<a href="http://code.google.com/p/android/issues/detail?id=23747">Issue 23747</a>)</li> - <li>Fixed issue where dex complains about duplicate classes in cases where a Library - Project depends on the same jar files or Java-only projects.</li> - <li>Fixed issue where test projects had to independently reference the library projects used - by an app project. Now referencing only the app project is enough.</li> - </ul> - </dd> - -</dl> - -</div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 16.0.1</a> <em>(December 2011)</em> - <div class="toggleme"> -<dl> - <dt>Dependencies:</dt> - - <dd> - <ul> - <li>Eclipse Helios (Version 3.6) or higher is required for ADT 16.0.1.</li> - <li>ADT 16.0.1 is designed for use with <a href="{@docRoot}sdk/tools-notes.html">SDK Tools - r16</a>. If you haven't already installed SDK Tools r16 into your SDK, use the Android SDK - Manager to do so.</li> - </ul> - </dd> - - <dt>Bug fixes:</dt> - <dd> - <ul> - <li>Fixed build issue where the 9-patch could be packaged as normal bitmap in some cases.</li> - <li>Fixed minor issues in the <a href="http://tools.android.com/recent/lint">Lint</a> - tool.</li> - <li>Fixed minor issues in the SDK Manager.</li> - </ul> - </dd> -</dl> - -</div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 16.0.0</a> <em>(December 2011)</em> - <div class="toggleme"> -<dl> - <dt>Dependencies:</dt> - - <dd> - <ul> - <li>Eclipse Helios (Version 3.6) or higher is required for ADT -16.0.0.</li> - <li>ADT 16.0.0 is designed for use with <a -href="{@docRoot}sdk/tools-notes.html">SDK Tools r16</a>. If you haven't already installed SDK Tools -r16 into your SDK, use the Android SDK Manager to do so.</li> - </ul> - </dd> - - <dt>General improvements:</dt> - <dd> - <ul> - <li>Added Lint tool to detect common errors in Android projects. (<a -href="http://tools.android.com/recent/lint">more info</a>)</li> - </ul> - </dd> -</dl> - -</div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 15.0.1</a> <em>(November 2011)</em> - <div class="toggleme"> -<dl> - <dt>Dependencies:</dt> - - <dd>ADT 15.0.1 is designed for use with <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r15</a>. - If you haven't already installed SDK Tools r15 into your SDK, use the Android SDK Manager to - do so.</dd> - - <dt>Bug fixes:</dt> - <dd> - <ul> - <li>Fixed how source files are attached to library project <code>.jar</code> files.</li> - <li>Fixed how the <code>bin/</code> folder for library projects are refreshed. This ensures that parent projects pick up changes in library projects.</li> - <li>Fixed how a parent project's library container is updated when a library project is recompiled. This ensures that parent projects are - recompiled when code in a library project changes.</li> - <li>Fixed how <code>res/</code> folders are checked in library projects. This ensures that all <code>res</code> folders are properly included - even if Eclipse is not aware of them due to refresh issues.</li> - <li>Fixed issue that prevented <code>aapt</code> from running when editing certain XML files.</li> - <li>Fixed minor XML formatting issues.</li> - </ul> - </dd> -</dl> - -</div> -</div> - - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 15.0.0</a> <em>(October 2011)</em> - <div class="toggleme"> -<dl> - -<dt>Dependencies:</dt> - -<dd>ADT 15.0.0 is designed for use with <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r15</a>. -If you haven't already installed SDK Tools r15 into your SDK, use the Android SDK Manager to -do so.</dd> - -<dt>Bug fixes:</dt> -<dd> -<ul> - <li>Fixed build issue when using Renderscript in projects that target API levels 11-13 - (<a href="http://code.google.com/p/android/issues/detail?id=21006">Issue 21006</a>).</li> - <li>Fixed issue when creating projects from existing source code.</li> - <li>Fixed issues in the SDK Manager - (<a href="http://code.google.com/p/android/issues/detail?id=20939">Issue 20939</a>, - <a href="http://code.google.com/p/android/issues/detail?id=20607">Issue 20607</a>).</li> - <li>Fixed scrolling issue in the new Logcat panel of DDMS.</li> -</ul> -</dd> -</dl> - -</div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 14.0.0</a> <em>(October 2011)</em> - <div class="toggleme"> -<dl> - -<dt>Dependencies:</dt> - -<dd>ADT 14.0.0 is designed for use with <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r14</a>. -If you haven't already installed SDK Tools r14 into your SDK, use the Android SDK Manager to -do so.</dd> - -<dt>Build system:</dt> -<dd> - <ul> - <li>Changed <code>default.properties</code> to <code>project.properties</code> and - <code>build.properties</code> to <code>ant.properties</code>. ADT automatically - renames these files, if necessary, when you open a project in Eclipse.</li> - <li>Changed how library projects are built in Eclipse.</a></li> - <li>Changed output of <code>javac</code> from <code>bin/</code> to <code>bin/classes</code> - in Eclipse.</li> - <li>Improved incremental builds so that resource compilation runs less frequently. Builds no - longer run when you edit strings or layouts (unless you add a new <code>id</code>) and no longer - run once for each library project.</li> - <li>Introduced a "PNG crunch cache" that only runs on modified PNG files, instead of - crunching all existing PNG files, all the time.</li> - <li>Modified resource compilation so it no longer happens for normal save operations. It only - happens when running or debugging (the build option that lets you disable the packaging - step, which was introduced in ADT 12, is now on by default.)</li> - </ul> -<p>For a complete overview of the build system changes and what you need to do to support them, -see the <a href="http://tools.android.com/recent/buildchangesinrevision14">Android Tools Project -site</a>.</p> -</dd> - -<dt>General improvements:</dt> -<dd> - <ul> - - -<li>Added a Welcome Wizard to help with the initial setup of the Android -development environment (<a href="http://tools.android.com/recent/welcomewizard">more -info</a>).</li> -<li>Integrated the Android Asset Studio, which helps you create icons for things -like the launcher, menus, and tabs. (<a -href="http://tools.android.com/recent/assetstudiointegration">more -info</a>).</li> -<li>Revamped the Logcat view and added support to display and filter logs by - application names as well as PIDs (<a - href="http://tools.android.com/recent/updatedlogcatviewer">more info</a>).</li> -<li>Revamped the SDK Manager UI (<a href="http://tools.android.com/recent/newsdkmanager">more -info</a>).</li> -<li>Revamped the New Project and the New XML File wizards to have -multiple pages. Sample projects are now copied into the workspace such that they can be modified -and deleted without affecting the master copy -(<a href="http://tools.android.com/recent/revampedwizards">more info</a>).</li> -<li>Removed the dependency on Eclipse GEF.</li> -</ul> -</dd> - -<dt>XML and Java editors:</dt> -<dd> - <ul> - <li>Added a new XML formatter that formats all XML files according to the - standard Android coding style. The formatter can also reorder - attributes to follow a recommended order and processes any changes made in the Layout editor. -(<a href="http://tools.android.com/recent/xmlformatter">more info</a>).</li> - <li>Added the "Go to Matching" (Ctrl-Shift-P) feature, which lets you jump -between opening and closing tags in XML files.</li> - <li>Added support for the "Select Enclosing Element" feature on Mac.</li> - <li>Added a Quickfix for extracting Strings when the caret is inside a String (<a href="">see -more</a>).</li> - <li>Improved "smart indent", which allows automatic indentation and un-indentation - when pressing the Return key in XML editors (<a -href="http://tools.android.com/recent/xmleditingimprovements">more info</a>).</li> - - </ul> -</dd> - -<dt>Layout editor:</dt> -<dd> - <ul> - <li>Added tooltip feedback for dragging and resizing operations. For - example, when dragging in a relative layout, the proposed - constraints are shown. When resizing, the new dimensions are - shown (<a href="http://tools.android.com/recent/layouteditorfeedbacktooltips">more -info</a>).</li> - <li>Added the ability to suppress rendering fidelity warnings (<a -href="http://tools.android.com/recent/suppressrenderwarnings">more info</a>).</li> - <li>Added "Remove Container" visual refactoring that removes the - children of a container up to the top level and transfers - namespace and layout attributes if necessary (<a -href="http://tools.android.com/recent/removecontainervisualrefactoring">more info</a>).</li> - <li>Added pull-right menus to the context menu for accessing - properties of the parents, which is useful when the children fully - cover the parent and make it hard to select on their own.</li> - <li>Improved access to properties in the context menu. The most - frequently set attributes for each view are listed at the top of - the menu. The Properties menu offers access to the most - recently set attributes, attributes organized by their defining - view, and layout attributes only or all attributes alphabetically (<a -href="http://tools.android.com/recent/layouteditorcontextmenuimprovements">more info</a>).</li> - </ul> -</dd> - -<dt>Bug fixes:</dt> -<dd>Fixed many bugs and added <a -href="http://tools.android.com/recent/miscellaneousrecentfixes">minor improvements</a>, in -particular some <a href="http://tools.android.com/recent/linuxfixes">critical bug fixes on -Linux</a>.</dd> - -</div> -</div> - - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 12.0.0</a> <em>(July 2011)</em> - <div class="toggleme"> -<dl> - -<dt>Dependencies:</dt> - -<dd>ADT 12.0.0 is designed for use with <a href="{@docRoot}sdk/tools-notes.html">SDK Tools r12</a>. If you haven't -already installed SDK Tools r12 into your SDK, use -the Android SDK Manager to do so.</dd> - -<dt>Visual Layout Editor:</dt> -<dd> -<ul> - <li>New RelativeLayout drop support with guideline suggestions for - attachments and cycle prevention - (<a href="http://tools.android.com/recent/revampedrelativelayoutsupport">more info</a>).</li> - <li>Resize support in most layouts along with - guideline snapping to the sizes dictated by <code>wrap_content</code> and <code>match_parent</code>. - In LinearLayout, sizes are mapped to weights instead of pixel widths. - (<a href="http://tools.android.com/recent/resizesupport">more info</a>).</li> - <li>Previews of drawables and colors in the resource chooser dialogs - (<a href="http://tools.android.com/recent/imageandcolorpreviews">more info</a>).</li> - <li>Improved error messages and links for rendering errors including - detection of misspelled class names - (<a href="http://tools.android.com/recent/improvedrenderingerrordiagnostics">more info</a>).</li> -</ul> -</dd> - -<dt>Build system:</dt> -<dd> -<ul> - <li id="build-option">A new option lets you disable the packaging step in the automatic - builders. This improves performance when saving files by not - performing a full build, which can take a long time for large projects. - If the option is enabled, the APK is packaged when the - application is deployed to a device or emulator or when the - release APK is exported (<a href="http://tools.android.com/recent/finercontroloveradtbuildprocess">more info</a>).</li> -</ul> -</dd> - -<dt>Bug fixes:</dt> -<dd>Many bug fixes are part of this release -(<a href="http://tools.android.com/recent/adt12bugfixroundup">more info</a>).</dd> - -</div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 11.0.0</a> <em>(June 2011)</em> - <div class="toggleme"> - -<dl> - -<dt>Dependencies:</dt> - -<dd>ADT 11.0.0 is designed for use with SDK Tools r11. If you haven't -already installed SDK Tools r11 into your SDK, use the Android SDK Manager to do -so.</dd> - -<dt>Visual Refactoring:</dt> -<dd> - <ul> - <li>"Extract Style" feature pulls out style-related attributes from your layout and extracts -them as a new style defined in {@code styles.xml} (<a -href="http://tools.android.com/recent/extractstylerefactoring">more info</a>).</li> - <li>"Wrap in Container" feature lets you select a group of views then surround them - in a new layout (a new view group, such as a LinearLayout), and transfers namespace and layout - parameters to the new parent (<a -href="http://tools.android.com/recent/newrefactoringswrapinchangelayoutchangewidget">more -info</a>).</li> - <li>"Change Layout" feature changes layouts from one type - to another, and can also flatten a layout hierarchy (<a -href="http://tools.android.com/recent/newrefactoringswrapinchangelayoutchangewidget">more -info</a>).</li> - <li>"Change Widget Type" feature changes the type of the - selected views to a new type. Also, a new selection context menu - in the visual layout editor makes it easy to select siblings as - well as views anywhere in the layout that have the same type (<a -href="http://tools.android.com/recent/newrefactoringswrapinchangelayoutchangewidget">more -info</a>).</li> - <li>"Extract as Include" feature finds identical collections of views - in other layouts and offers to combine them into a single layout that you can then include in - each layout (<a -href="http://tools.android.com/recent/extractasincludeimprovements">more info</a>).</li> - <li>Quick Assistant in Eclipse can be invoked - from the XML editor (with Ctrl-1) to apply any of the above - refactorings (and Extract String) to the current selection (<a -href="http://tools.android.com/recent/refactoringquickassistant">more info</a>).</li> - </ul> -</dd> - -<dt>Visual Layout Editor:</dt> -<dd> - <ul> - <li>This is the update to the layout editor you've been waiting for! It includes (almost) all -the goodies demonstrated at Google I/O. <a href="http://www.youtube.com/watch?v=Oq05KqjXTvs">Watch -the video</a> on YouTube.</li> - <li>The palette now supports different configurations for supported widgets. That is, a single -view is presented in various different configurations that you can drag into your layout. For -example, there is a <em>Text Fields</em> palette category where you can drag an {@link -android.widget.EditText} widget in as a password field, an e-mail field, a phone field, or other -types of text boxes. Similarly, {@link android.widget.TextView} widgets are preconfigured -with large, normal and small theme sizes, and {@link android.widget.LinearLayout} elements are -preconfigured in horizontal and vertical configurations (<a -href="http://tools.android.com/recent/multipletextfieldandlayouttypes">more info</a>).</li> - <li>The palette supports custom views. You can pick up any custom - implementations of the View class you've created in your project or from included libraries and -drag them into your layout (<a -href="http://tools.android.com/recent/customviewsinthepalette">more info</a>).</li> - <li>Fragments are available in the palette for placement in your layout. In the tool, you can -choose which layout to show rendered for a given fragment tag. Go to declaration works for fragment -classes (<a href="http://tools.android.com/recent/fragmentsupport">more info</a>).</li> - <li>The layout editor automatically applies a "zoom to fit" for newly - opened files as well as on device size and orientation changes to - ensure that large layouts are always fully visible unless you - manually zoom in.</li> - <li>You can drop in an {@code <include>} element from the palette, which will pop up - a layout chooser. When you select the layout to include, it is added with an {@code -<include>}. Similarly, dropping images or image buttons will pop up image - resource choosers (<a -href="http://tools.android.com/recent/includetagdropsupport">more info</a>).</li> - <li>The configuration chooser now applies the "Render Target" and - "Locale" settings project wide, making it trivial to check the - layouts for different languages or render targets without having - to configure these individually for each layout.</li> - <li>The layout editor is smarter about picking a default theme to - render a layout with, consulting factors like theme registrations - in the manifest, the SDK version, and other factors.</li> - <li>The layout editor is smarter about picking a default configuration to render a layout -with, defaulting to the currently visible configuration in the previous file. It also considers the -SDK target to determine whether to default to a tablet or phone screen size.</li> - <li>Basic focus support. The first text field dropped in a layout is assigned focus, and there -are <strong>Request Focus</strong> and <strong>Clear Focus</strong> context menu items on text -fields to change the focus.</li> - </ul> -</dd> - -<dt>XML editors:</dt> -<dd> -<ul> - <li>Code completion has been significantly improved. It now works - with {@code <style>} elements, completes dimensional units, - sorts resource paths in values based on the attribute name, and more. There are also many fixes to -handle text replacement (<a -href="http://tools.android.com/recent/xmlcodecompletionimprovements">more info</a>).</li> - <li>AAPT errors are handled better. They are now underlined for the - relevant range in the editor, and a new quickfix makes it trivial - to create missing resources.</li> - <li>Code completion for drawable, animation and color XML files (<a -href="http://tools.android.com/recent/codecompletionfordrawablescolorsandanimationfiles">more -info</a>).</li> -</ul> -</dd> - -<dt>DDMS:</dt> -<dd> -<ul> - <li>"New Folder" action in the File Explorer.</li> - <li>The screenshot dialog will add timestamps to the filenames and preserve the orientation on -snapshot refresh.</li> -</ul> -</dd> - -<dt>General notes:</dt> -<dd> - <ul> - <li>TraceView supports zooming with the mouse-wheel in the timeline.</li> - <li>The New Android Project wizard now supports Eclipse working sets.</li> - </ul> -</dd> -</dl> -<p>More information about tool changes are available on the <a -href="http://tools.android.com/recent">Android Tools Project Site</a>.</p> -</div> -</div> - - - - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 10.0.1</a> <em>(March 2011)</em> - <div class="toggleme"> - -<dl> - -<dt>Dependencies:</dt> - -<dd>ADT 10.0.1 is designed for use with SDK Tools r10. If you haven't -already installed SDK Tools r10 into your SDK, use the Android SDK Manager to do -so.</dd> - -<dt>General notes:</dt> -<dd> - <ul> - <li>Temporary work-around to resolve the rare cases in which the layout editor will -not open.</li> - <li>Fix issue in which ADT 10.0.0 would install on Eclipse 3.4 and lower, even though ADT -requires Eclipse 3.5 or higher (as of 10.0.0).</li> - </ul> -</dd> -</dl> -</div> -</div> - - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 10.0.0</a> <em>(February 2011)</em> - <div class="toggleme"> - -<dl> - -<dt>Dependencies:</dt> - -<dd>ADT 10.0.0 is designed for use with SDK Tools r10. If you haven't -already installed SDK Tools r10 into your SDK, use the Android SDK Manager to do -so.</dd> - -<dt>General notes:</dt> -<dd> - <ul> - <li>The tools now automatically generate Java Programming Language source files (in the <code>gen/</code> directory) and - bytecode (in the <code>res/raw/</code> directory) from your <code>.rs</code> files.</li> - <li>A Binary XML editor has been added (<a href="http://tools.android.com/recent/binaryxmleditor">details</a>).</li> - <li>Traceview is now integrated into the Eclipse UI (<a href="http://tools.android.com/recent/traceviewineclipse">details</a>).</li> - <li>The "Go To Declaration" feature for XML and <code>.java</code> files quickly show all the matches in the project - and allows you jump to specific items such as string translations or <code>onClick</code> handlers - (<a href="http://tools.android.com/recent/gotodeclarationimprovements">details</a>).</li> - <li>The Resource Chooser can create items such as dimensions, integers, ids, and booleans - (<a href="http://tools.android.com/recent/resourcechoosercannowcreatearbitraryvalues">details</a>).</li> - <li>Improvements to the Visual Layout Editor: - <ul> - <li>A new Palette with categories and rendering previews - (<a href="http://tools.android.com/recent/newpalette">details</a>).</li> - <li>A Layout Actions bar that provides quick access to common layout operations - (<a href="http://tools.android.com/recent/layoutactionsbar">details</a>).</li> - <li>When the Android 3.0 rendering library is selected, layouts render more like they do on devices. - This includes rendering of status and title bars to more accurately reflect the actual - screen space available to applications - (<a href="http://tools.android.com/recent/systembarandactionbar">details</a>).</li> - <li>Zoom improvements such as fit to view, persistent scale, and keyboard access. - (<a href="http://tools.android.com/recent/zoomimprovements">details</a>).</li> - <li>Further improvements to <code><merge></code> layouts, as well as layouts with gesture overlays - (<a href="http://tools.android.com/recent/improvedsupportformergetags">details</a>).</li> - <li>Improved rendering error diagnostics.</li> - </ul> - </li> - </ul> -</dd> -</dl> -</div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 9.0.0</a> <em>(January 2011)</em> - <div class="toggleme"> - -<dl> - -<dt>Dependencies:</dt> - -<dd>ADT 9.0.0 is designed for use with SDK Tools r9. If you haven't -already installed SDK Tools r9 into your SDK, use the Android SDK Manager to do -so.</dd> - -<dt>General notes:</dt> -<dd> - <ul> - <li>"Go To Declaration" hyperlink support: You can jump directly from code references (such as - <code>R.id.main</code>) to the corresponding XML declaration, or from XML attributes (such as - <code>@string</code>) to the corresponding resource definition, or from manifest XML - registrations to activities and services.</li> - <li>Improvements were made to name refactoring.</li> - <li>AVDs now automatically save their state, so they can restart almost instantly. You can enable this feature when - creating an AVD or by editing an AVD with the AVD Manager.</li> - <li>Improvements to the Visual Layout Editor: - <ul> - <li>Support for rendering targets: You can now choose an arbitrary Android platform to - render the current page, regardless of the project's minimum platform. This makes it - easy to verify the layout and appearance of your activity on different versions of - the platform. - </li> - <li>Improved support for empty and nested layouts: Dragging items over nested and - invisible layouts automatically enlarges and highlights these layouts, so that they - can receive drops. - </li> - <li>XML formatting improvements: The editor generates cleaner XML and you can now enable - XML auto-formatting in the <strong>Preferences</strong> menu.</li> - <li>Improved Outline labels: The Outline tab now displays additional information about each - View. Textual Views display a snippet of the actual text. Views with a source - (such as ImageView) displays the resource name. Included Views display the name of the View. - </li> - <li>When you right click a View in the Layout Editor, - the context menu now contains <strong>Edit ID...</strong> and <strong>Edit Text...</strong> - items. The <strong>Properties...</strong> context menus now list all of the properties and - provide a way to edit them - (<a href="http://tools.android.com/recent/editidtextandotherpropertiesviamenu">Details</a>). - </li> - <li>The layout editor now properly handles - <a href="{@docRoot}guide/topics/resources/layout-resource.html#include-element"><code><include></code></a> - and <a href="{@docRoot}guide/topics/resources/layout-resource.html#merge-element"><code><merge></code></a> - tags (<a href="http://tools.android.com/recent/supportforincludeandmerge">Details</a>).</li> - <li>"Extract as Include" refactoring: The Layout Editor has a new refactoring that allows - you to select one or more views in a layout, and extract it into a separate layout - (<a href="http://tools.android.com/recent/extractasincluderefactoring">Details</a>).</li> - <li>Improved diagnostics for class loading and rendering errors: Class loading and rendering - error messages are more useful and provide better information about the root cause of the - error.</li> - <li>Improved error handling to prevent drag and reordering operations from adding children - into an {@link android.widget.AdapterView}.</li> - <li>Outline reordering: Reordering your views in the Outline tab is much easier - (<a href="http://tools.android.com/recent/outlineimprovements">Details</a>).</li> - <li>Fix for keybinding bug where keyboard shortcuts did not work (Issues - <a href="http://code.google.com/p/android/issues/detail?id=13231">13231</a> and - <a href="http://code.google.com/p/android/issues/detail?id=13134">13134</a>).</li> - <li>Fix for problems with Custom layout attribute menu (Issue - <a href="http://code.google.com/p/android/issues/detail?id=13134">13134</a>).</li> - <li>Automatic configuration for various view types: Certain views have properties configured - by default. For example, the width of an {@link android.widget.EditText} object is set to - <code>match_parent</code> when added to a vertical {@link android.widget.LinearLayout} - or a default image is added to an {@link android.widget.ImageButton}.</li> - <li>Previews during dragging: Dragging from the palette or dragging within the layout editor - now shows live previews of the dragged item.</li> - <li>Navigation improvements: In the Layout Editor, double-clicking Views jumps to the - corresponding XML element. In the Outline view, double-clicking opens the Properties view.</li> - <li>The editor has Honeycomb style animation preview support.</li> - <li>Improved rendering support for various Views (such as TabHosts and SlidingDrawers) in - Honeycomb (Issues <a href="http://code.google.com/p/android/issues/detail?id=3162">3162</a> - and <a href="http://code.google.com/p/android/issues/detail?id=13092">13092</a>).</li> - <li>Included layouts can be rendered and edited in the context of the layouts that include - them. From a layout using an <a href="{@docRoot}guide/topics/resources/layout-resource.html#include-element"> - <code><include></code></a> tag, double-clicking on the - <a href="{@docRoot}guide/topics/resources/layout-resource.html#include-element"> - <code><include></code></a> element edits the referenced layout in the context of the - current layout. Additionally, when editing a layout that is included by other layouts, - you can quickly change between context layouts, by right clicking in the editor and choosing - <strong>Show included in...</strong>. This feature is only available in Honeycomb.</li> - </ul> - </li> - <li>This release fixes many other bugs, but the most important ones are listed below: - <ul> - <li>Fixed issue that prevented launching debug builds on productions devices when - <code>debuggable=true</code> was not set in the Android manifest.</li> - <li>The LogCat view in DDMS properly handles UTF-8 characters.</li> - <li>The SDK Manager is more reliable on Windows - (<a href="http://tools.android.com/recent/sdkmanagerfixes">Details</a>).</li> - <li>A JUnit initialization bug that prevented you from working with JUnit tests was fixed - (Issue <a href="http://code.google.com/p/android/issues/detail?id=12411">12411</a>).</li> - </ul> -</li> - </ul> -</dd> -</dl> -</div> -</div> - - - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 8.0.1</a> <em>(December 2010)</em> - <div class="toggleme"> - -<dl> - -<dt>Dependencies:</dt> - -<p><p>ADT 8.0.1 is designed for use with SDK Tools r8. If you haven't -already installed SDK Tools r8 into your SDK, use the Android SDK Manager to do -so.</p></dd> - -<dt>General notes:</dt> -<dd> -<ul> - <li>This is a quick follow-up to ADT 8.0.0 to fix some bugs.</li> - <li>Fixes an issue in which projects failed to compile, citing a dex error.</li> - <li>Better ProGuard error reporting when exporting applications for release.</li> -</ul> -<p>Also see the recent release notes for 8.0.0, below.</p> -</dd> -</dl> -</div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -ADT 8.0.0</a> <em>(December 2010)</em> - <div class="toggleme"> - -<dl> - -<dt>Dependencies:</dt> - -<p><p>ADT 8.0.0 is designed for use with SDK Tools r8. If you haven't -already installed SDK Tools r8 into your SDK, use the Android SDK Manager to do -so.</p></dd> - -<dt>General notes:</dt> -<dd> -<ul> - <li>New version number scheme that follows the SDK Tools revision number. The major version -number for your ADT plugin should now always match the revision number of your SDK Tools. For -example, ADT 8.x is for SDK Tools r8.</li> - <li>Support for true debug build. You no longer need to change the value of the - <code>debuggable</code> attribute in the Android Manifest. - <p>Incremental builds automatically insert <code>debuggable="true"</code>, but if you perform - "export signed/unsigned application package", ADT does <em>not</em> insert it. - If you manually set <code>debuggable="true"</code> in the manifest file, then release builds will - actually create a debug build (it does not remove it if you placed it there).</p></li> - <li>Automatic <a href="{@docRoot}guide/developing/tools/proguard.html">ProGuard</a> support in - release builds. For it to work, you need to have a <code>proguard.config</code> - property in the <code>default.properties</code> file that points to a ProGuard config file.</li> - <li>Completely rewritten Visual Layout Editor. (This is still a work in progress.) Now includes: - <ul> - <li>Full drag and drop from palette to layout for all Layout classes.</li> - <li>Move widgets inside a Layout view, from one Layout view to another and from one layout file to another.</li> - <li>Contextual menu with enum/flag type properties.</li> - <li>New zoom controls.</li> - </ul></li> - <li>New HierarchyViewer plug-in integrated in Eclipse.</li> - <li>Android launch configurations don't recompile the whole workspace on launch anymore.</li> - <li><code>android.jar</code> source and javadoc location can now be configured.</li> -</ul> -</dd> -</dl> - </div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -ADT 0.9.9</a> <em>(September 2010)</em> - <div class="toggleme"> - -<dl> - -<dt>Dependencies:</dt> - -<dd><p>ADT 0.9.9 replaces ADT 0.9.8 and is designed for use with SDK Tools r7 -and later. ADT 0.9.9 includes the ADT 0.9.8 features as well as an important -bugfix, so we recommend that you upgrade as soon as possible. If you haven't -already installed SDK Tools r7 into your SDK, use the Android SDK Manager to do -so.</p></dd> - -<dt>General notes:</dt> -<dd> -<ul> -<li>Fixes a problem in project import, in which source files were deleted in some cases.</li> -<li>Includes all other ADT 0.9.8 features (see below).</li> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -ADT 0.9.8</a> <em>(September 2010)</em> - <div class="toggleme"> - - -</ul> -</dd> - -<dl> - -<dt>Dependencies:</dt> - -<dd><p>ADT 0.9.8 is now deprecated. Please use ADT 0.9.9 instead.</p></dd> - -<dt>General notes:</dt> -<dd> -<ul> -<li>Adds a new Action, "Rename Application Package", to the Android Tools -contextual menu. The Action does a full application package refactoring. -<li>Adds support for library projects that don't have a source folder -called <code>src/</code>. There is now support for any number of source folders, -with no name restriction. They can even be in subfolder such as -<code>src/java</code>. If you are already working with library projects created -in ADT 0.9.7, see <a -href="{@docRoot}guide/developing/projects/index.html#libraryMigrating">Migrating -library projects to ADT 0.9.8</a> for important information about moving -to the new ADT environment.</li> -<li>Adds support for library projects that depend on other library -projects.</li> -<li>Adds support for additional resource qualifiers: -<code>car</code>/<code>desk</code>, <code>night</code>/<code>notnight</code> and -<code>navexposed</code>/<code>navhidden</code>.</li> -<li>Adds more device screen types in the layout editor. All screen -resolution/density combinations listed in the <a -href="{@docRoot}guide/practices/screens_support.html#range">Supporting -Multiple Screens</a> are now available.</li> -<li>Fixes problems with handling of library project names that -contain characters that are incompatible with the Eclipse path variable. -Now properly sets up the link between the main project and the library -project.</li> -</ul> -</dd> -</dl> - </div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -ADT 0.9.7</a> <em>(May 2010)</em> - <div class="toggleme"> - -<dl> -<dt>Library projects:</dt> -<dd> -<p>The ADT Plugin now supports the use of <em>library projects</em> during -development, a capability that lets you store shared Android application -code and resources in a separate development project. You can then reference the -library project from other Android projects and, at build time, the tools -compile the shared code and resources as part of the dependent applications. -More information about this feature is available in the <a -href="{@docRoot}guide/developing/projects/index.html#LibraryProjects">Creating and Managing Projects</a> document. </p> -<p>If you are not developing in Eclipse, <a -href="tools-notes.html">SDK Tools r6</a> provides the equivalent library -project support through the Ant build system.</p> -</dd> -</dl> - </div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -ADT 0.9.6</a> <em>(March 2010)</em> - <div class="toggleme"> - -<dl> -<dt>Dependencies:</dt> - -<dd><p>ADT 0.9.6 is designed for use with SDK Tools r5 and later. Before -updating to ADT 0.9.6, we highly recommend that you use the Android SDK Manager to install SDK -Tools r5 into your SDK.</p></dd> - -<dt>General Notes:</dt> -<dd> -<ul> -<li>Editing <code>default.properties</code> outside of Eclipse will now -automatically update the project.</li> -<li>Loads the SDK content only when a project requires it. This will make -Eclipse use less resources when the SDK contains many versions of Android.</li> -<li>Resolves potential deadlock between modal dialogs, when launching ADT the -first time with the SDK Usage panel.</li> -<li>Fixes issues with the New Project Wizard when selecting samples.</li> -</ul> -</dd> -<dt>AVD/SDK Manager:</dt> -<dd> -<ul> -<li>Adds support for platform samples packages.</li> -<li>Improves support for dependency between packages.</li> -<li>AVDs now sorted by API level.</li> -<li>The AVD creation dialog now enforces a minimum SD card size of 9MB.</li> -<li>Prevents deletion of running AVDs.</li> -</ul> -</dd> -<dt>DDMS:</dt> -<dd> -<ul> -<li>DDMS plug-in now contains the Allocation Tracker view.</li> -<li>New action in the Logcat view: "Go to problem" lets you go directly from an -exception trace output to the code.</li> -</ul> -</dd> -<dt>Editors:</dt> -<dd> -<ul> -<li>Explode mode in the Visual Layout Editor adds a margin to all layout objects -so that it's easier to see embedded or empty layouts.</li> -<li>Outline mode in the Visual Layout Editor draws layout outline to make it -easier to see layout objects.</li> -<li>Several fixes in the configuration selector of the Visual Layout -Editor.</li> -</ul> -</dd> -<dt>Application launching:</dt> -<dd> -<ul> -<li>Applications launched from ADT now behave as if they were clicked from the -Home screen.</li> -<li>Fixes issue where add-on with no optional library would not show up as valid -targets for application launches.</li> -<li>Resolves possible crash when launching applications.</li> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -ADT 0.9.5</a> <em>(December 2009)</em> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> - -<dd><p>ADT 0.9.5 requires features provided in SDK Tools r4 or higher. If you install -ADT 0.9.5, which is highly recommended, you should use the Android SDK -Manager to download the latest SDK Tools into your SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a>.</p> -</dd> - -<dt>General notes:</dt> -<dd> -<ul> -<li>AVD Launch dialog now shows scale value.</li> -<li>Fixes potential NPE in SDK Manager on AVD launch, for older AVD with no skin name specified.</li> -<li>Fixes XML validation issue in on older Java versions.</li> -<li>.apk packaging now properly ignores vi swap files as well as hidden files.</li> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -ADT 0.9.4</a> <em>(October 2009)</em> - <div class="toggleme"> -<dl> -<dt>Dependencies:</dt> - -<dd><p>ADT 0.9.4 requires features provided in SDK Tools r3 or higher. If you install -ADT 0.9.4, which is highly recommended, you should use the Android SDK -Manager to download the latest SDK Tools into your SDK. For more information, -see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a>.</p> -</dd> - -<dt>Project Creation Wizard:</dt> -<dd> -<ul> -<li>New option to create a project from a sample by choosing it from a list.</li> -</ul> -</dd> - -<dt>Layout Editor:</dt> -<dd> -<ul> -<li>Improved Configuration selector that lets you see how your layout will -render on different devices. Default device descriptions include ADP1 -and Google Ion, while SDK add-ons can also provide new descriptions. -A new UI allows you to create custom descriptions.</li> -<li>Adds a new clipping toggle, to let you see your full layout even if it's -bigger than the screen.</li> -</ul> -</dd> - -<dt>DDMS integration:</dt> -<dd> -<ul> -<li>Includes the improvements from the standlone DDMS, revision 3.</li> -<li>Adds an option to open HPROF files into eclipse instead of writing them on -disk. If a profiler such as MAT (<a href="http://eclipse.org/mat">Memory Analyzer -Tool</a>) is installed, it'll open the file.</li> -</ul> -</dd> - -<dt>Android SDK and AVD Manager integration:</dt> -<dd> -<ul> -<li>Includes the improvements from the standalone Android SDK and AVD Manager, -revision 3.</li> -</ul> -</dd> -</dl> - </div> -</div> - - - -<h2 id="installing">Installing the ADT Plugin</h2> - -<p>The sections below provide instructions on how to download and install -ADT into your Eclipse environment. If you encounter problems, see the <a -href="#troubleshooting">Troubleshooting</a> section.</p> - - -<h3 id="preparing">Preparing Your Development Computer</h3> - -<p>ADT is a plugin for the Eclipse IDE. Before you can install or use ADT, -you must have a compatible version of Eclipse installed on your development -computer. Check the <a -href="requirements.html">System Requirements</a> document for -a list of Eclipse versions that are compatible with the Android SDK.</li></p> - -<ul> -<li>If Eclipse is already installed on your computer, make sure that it is -a version that is compatible with ADT and the Android SDK. - -<li>If you need to install or update Eclipse, you can download it from this -location: - -<p style="margin-left:2em;"><a href= -"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a> -</p> - -<p>The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP -version of Eclipse is recommended.</p></li> -</ul> - -<p>Additionally, before you can configure or use ADT, you must install the -Android SDK starter package, as described in <a -href="installing.html#Installing">Downloading the SDK Starter Package</a>. -Specifically, you need to install a compatible version of the Android SDK Tools -and at least one development platform. To simplify ADT setup, we recommend -installing the Android SDK prior to installing ADT. </p> - -<p>When your Eclipse and Android SDK environments are ready, continue with the -ADT installation as described in the steps below. </p> - -<h3 id="downloading">Downloading the ADT Plugin</h3> - -<p>Use the Update Manager feature of your Eclipse installation to install the latest -revision of ADT on your development computer.</p> - -<p>Assuming that you have a compatible version of the Eclipse IDE installed, as -described in <a href="#preparing">Preparing for Installation</a>, above, follow -these steps to download the ADT plugin and install it in your Eclipse -environment.</p> - - -<ol> - <li>Start Eclipse, then select <strong>Help</strong> > <strong>Install New -Software...</strong>.</li> - <li>Click <strong>Add</strong>, in the top-right corner.</li> - <li>In the Add Repository dialog that appears, enter "ADT Plugin" for the <em>Name</em> and the -following URL for the <em>Location</em>: - <pre>https://dl-ssl.google.com/android/eclipse/</pre> - </li> - <li>Click <strong>OK</strong> - <p>Note: If you have trouble acquiring the plugin, try using "http" in the Location URL, -instead of "https" (https is preferred for security reasons).</p></li> - <li>In the Available Software dialog, select the checkbox next to Developer Tools and click -<strong>Next</strong>.</li> - <li>In the next window, you'll see a list of the tools to be downloaded. Click -<strong>Next</strong>. </li> - <li>Read and accept the license agreements, then click <strong>Finish</strong>. - <p>Note: If you get a security warning saying that the authenticity or validity of -the software can't be established, click <strong>OK</strong>.</p></li> - <li>When the installation completes, restart Eclipse. </li> -</ol> - -<h3 id="configuring">Configuring the ADT Plugin</h3> - -<p>After you've successfully downloaded the ADT as described above, the next step -is to modify your ADT preferences in Eclipse to point to the Android SDK directory:</p> - -<ol> - <li>Select <strong>Window</strong> > <strong>Preferences...</strong> to open the Preferences - panel (Mac OS X: <strong>Eclipse</strong> > <strong>Preferences</strong>).</li> - <li>Select <strong>Android</strong> from the left panel.</li> - <p>You may see a dialog asking whether you want to send usage statistics to Google. If so, -make your choice and click <strong>Proceed</strong>. You cannot continue with this procedure until -you click <strong>Proceed</strong>.</p> - <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and - locate your downloaded SDK directory. </li> - <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li> -</ol> - -<p>Done! If you haven't encountered any problems, then the installation is -complete. If you're installing the Android SDK for the first time, return to <a -href="{@docRoot}sdk/installing.html#InstallingADT">Installing the SDK</a> to complete your setup. -</p> - - -<h3 id="troubleshooting">Troubleshooting ADT Installation</h3> - -<p> If you are having trouble downloading the ADT plugin after following the -steps above, here are some suggestions: </p> - -<ul> - <li>If Eclipse can not find the remote update site containing the ADT plugin, -try changing the remote site URL to use http, rather than https. That is, set -the Location for the remote site to: -<pre>http://dl-ssl.google.com/android/eclipse/</pre></li> -<li>If you are behind a firewall (such as a corporate firewall), make sure that -you have properly configured your proxy settings in Eclipse. In Eclipse, -you can configure proxy information from the main Eclipse menu in -<strong>Window</strong> (on Mac OS X, <strong>Eclipse</strong>) > -<strong>Preferences</strong> > <strong>General</strong> > <strong>Network -Connections</strong>.</li> -</ul> - -<p> If you are still unable to use Eclipse to download the ADT plugin as a -remote update site, you can download the ADT zip file to your local machine and -manually install it:</p> - -<ol> - <li>Download the current ADT Plugin zip file from the table below (do not unpack it). - - <table class="download"> - <tr> - <th>Name</th> - <th>Package</th> - <th>Size</th> - <th>MD5 Checksum</th> - </tr> - <tr> - <td>ADT {@adtZipVersion}</td> - <td> - <a href="http://dl.google.com/android/{@adtZipDownload}">{@adtZipDownload}</a> - </td> - <td>{@adtZipBytes} bytes</td> - <td>{@adtZipChecksum}</td> - </tr> -</table> -</li> - -</li> - <li>Follow steps 1 and 2 in the <a href="#installing">default install - instructions</a> (above).</li> - <li>In the Add Site dialog, click <strong>Archive</strong>.</li> - <li>Browse and select the downloaded zip file.</li> - <li>Enter a name for the local update site (e.g., - "Android Plugin") in the "Name" field.</li> - <li>Click <strong>OK</strong>. - <li>Follow the remaining procedures as listed for - <a href="#installing">default installation</a> above, - starting from step 4.</li> -</ol> - -<p>To update your plugin once you've installed using the zip file, you will have -to follow these steps again instead of the default update instructions.</p> - -<h4>Other install errors</h4> - -<p>Note that there are features of ADT that require some optional -Eclipse packages (for example, WST). If you encounter an error when -installing ADT, your Eclipse installion might not include these packages. -For information about how to quickly add the necessary packages to your -Eclipse installation, see the troubleshooting topic -<a href="{@docRoot}resources/faq/troubleshooting.html#installeclipsecomponents">ADT -Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p> - -<h4>For Linux users</h4> -<p>If you encounter this error when installing the ADT Plugin for Eclipse: -<pre> -An error occurred during provisioning. -Cannot connect to keystore. -JKS</pre> -<p> -...then your development machine lacks a suitable Java VM. Installing Sun -Java 6 will resolve this issue and you can then reinstall the ADT -Plugin.</p> - - -<h2 id="updating">Updating the ADT Plugin</h2> - -<p>From time to time, a new revision of the ADT Plugin becomes available, with -new features and bug fixes. Generally, when a new revision of ADT is available, -you should update to it as soon as convenient. </p> - -<p>In some cases, a new revision of ADT will have a dependency on a specific -revision of the Android SDK Tools. If such dependencies exist, you will need to -update the SDK Tools package of the SDK after installing the new revision of -ADT. To update the SDK Tools package, use the Android SDK Manager, as -described in <a href="adding-components.html">Adding SDK Packages</a>.</p> - -<p>To learn about new features of each ADT revision and also any dependencies on -the SDK Tools, see the listings in the <a href="#notes">Revisions</a> -section. To determine the version currently installed, open the -Eclipse Installed Software window using <strong>Help</strong> -> <strong>Software Updates</strong> and refer to the version listed for -"Android Development Tools".</p> - -<p>Follow the steps below to check whether an update is available and, if so, -to install it. </p> - -<ol> - <li>Select <strong>Help</strong> > <strong>Check for Updates</strong>. - <p>If there are no updates available, a dialog will say so and you're done.</p></li> - <li>If there are updates available, select Android DDMS, Android Development Tools, - and Android Hierarchy Viewer, then click <strong>Next</strong>.</li> - <li>In the Update Details dialog, click <strong>Next</strong>.</li> - <li>Read and accept the license agreement and then click <strong>Finish</strong>. - This will download and install the latest version of Android DDMS and - Android Development Tools.</li> - <li>Restart Eclipse.</li> -</ol> - - -<p>If you encounter problems during the update, remove the existing ADT plugin from Eclipse, then -perform a fresh installation, using the instructions for <a href="#installing">Installing the ADT -Plugin</a>.</p> - diff --git a/docs/html/sdk/exploring.jd b/docs/html/sdk/exploring.jd new file mode 100644 index 0000000..8272b06 --- /dev/null +++ b/docs/html/sdk/exploring.jd @@ -0,0 +1,166 @@ +page.title=Exploring the SDK +walkthru=1 + +@jd:body + + +<p>The Android SDK is composed of modular packages that you can download separately using +the Android SDK Manager. For example, when the SDK Tools are updated or a new version of +the Android platform is released, you can use the SDK Manager to quickly download them to +your environment. Simply follow the procedures described in <a +href="{@docRoot}sdk/installing/adding-packages.html">Adding Platforms and Packages</a>.</p> + +<p>There are several different packages available for the Android SDK. The table below describes +most of the available packages and where they're located once you download them.</p> + + +<h2 id="Packages">Available Packages</h2> + + +<table> + <tr><th>Package</th><th>Description</th><th>File Location</th></tr> + <tr> + <td><a href="{@docRoot}tools/sdk/tools-notes.html">SDK Tools</a></td> + <td>Contains tools for debugging and testing, plus other +utilities that are required to develop an app. If you've just installed the SDK starter package, +then you already have the latest version of this package. Make sure you keep this up to date.</td> + <td>{@code <sdk>/tools/}</td></tr> + <tr><td>SDK Platform-tools</td> + <td>Contains platform-dependent tools for developing and debugging +your application. These tools support the latest features of the Android platform and are typically +updated only when a new platform becomes available. These tools are always backward compatible with +older platforms, but you must be sure that you have the latest version of these tools when you +install a new SDK platform.</td> + <td>{@code <sdk>/platform-tools/}</td> + </tr> + + <tr> + <td>Documentation</td> + <td>An offline copy of the latest documentation for the Android +platform APIs.</td> + <td>{@code <sdk>/docs/}</td> + </tr> + <tr><td>SDK Platform</td> + <td>There's one SDK Platform available for each version of Android. It includes an {@code +android.jar} file with a fully compliant Android library. In order to build an Android app, you must +specify an SDK platform as your build target.</td> + <td>{@code <sdk>/platforms/<android-version>/}</td> + </tr> + <tr> + <td>System Images</td> + <td>Each platform version offers one or more different system images (such as for ARM +and x86). The Android emulator requires a system image to operate. You should always test your +app on the latest version of Android and using the emulator with the latest system image is a +good way to do so.</td> + <td>{@code <sdk>/platforms/<android-version>/}</td> + </tr> + <tr> + <td>Sources for Android SDK</td> + <td>A copy of the Android platform source code that's useful for +stepping through the code while debugging your app.</td> + <td>{@code <sdk>/sources/}</td> + </tr> + <tr> + <td><a href="{@docRoot}tools/samples/index.html">Samples for SDK</a></td> + <td>A collection of sample apps that demonstrate a variety of the +platform APIs. These are a great resource to browse Android app code. The API Demos app in +particular provides a huge number of small demos you should explore.</td> + <td>{@code <sdk>/platforms/<android-version>/samples/}</td> + </tr> + <tr> + <td><a href="http://developers.google.com/android">Google APIs</a></td> + <td>An SDK add-on that provides both a platform you can use to develop an app +using special Google APIs and a system image for the emulator so you can test your app using the +Google APIs.</td> + <td>{@code <sdk>/add-ons/}</td> + </tr> + + <tr> + <td><a href="{@docRoot}tools/extras/support-library.html">Android Support</a></td> + <td>A static library you can include in your app sources in order to use powerful +APIs that aren't available in the standard platform. For example, the support library +contains versions of the {@link android.support.v4.app.Fragment} class that's compatible with +Android 1.6 and higher (the class was originally introduced in Android 3.0) and the {@link +android.support.v4.view.ViewPager} APIs that allow you to easily build a side-swipeable UI.</td> + <td>{@code <sdk>/extras/android/support/}</td> + </tr> + <tr> + <td><a href="{@docRoot}guide/google/play/billing/index.html">Google Play Billing</a></td> + <td>Provides the static libraries and samples that allow you to +integrate billing services in your app with Google Play.</td> + <td>{@code <sdk>/extras/google/}</td> + </tr> + <tr> + <td><a href="{@docRoot}guide/google/play/licensing/index.html">Google Play Licensing</a></td> + <td>Provides the static libraries and samples that allow you to perform license verification for +your app when distributing with Google Play.</td> + <td>{@code <sdk>/extras/google/}</td> + </tr> +</table> + +<p>The above table is not comprehensive and you can <a +href="#AddingSites">add new sites</a> to download additional packages from third-parties.</p> + +<p>In some cases, an SDK package may require a specific minimum revision of +another package or SDK tool. For example, there may be a dependency between the ADT Plugin for +Eclipse and +the SDK Tools package. When you install the SDK Tools +package, you should also upgrade to the required version of ADT (if you +are developing in Eclipse). In this case, the major version number for your ADT plugin should +always match the revision number of your SDK Tools (for example, ADT 8.x requires SDK Tools r8). +</p> + +<p>The development tools will notify you with debug warnings if there is dependency that you need to +address. The Android SDK Manager also enforces dependencies by requiring that you download any +packages that are needed by those you have selected.</p> + + + + + +<h2 id="AddingSites">Adding New Sites</h2> + +<p>By default, <strong>Available Packages</strong> displays packages available from the +<em>Android Repository</em> and <em>Third party Add-ons</em>. You can add other sites that host +their own Android SDK add-ons, then download the SDK add-ons +from those sites.</p> + +<p>For example, a mobile carrier or device manufacturer might offer additional +API libraries that are supported by their own Android-powered devices. In order +to develop using their libraries, you must install their Android SDK add-on, if it's not already +available under <em>Third party Add-ons</em>. </p> + +<p>If a carrier or device manufacturer has hosted an SDK add-on repository file +on their web site, follow these steps to add their site to the Android SDK +Manager:</p> + +<ol> + <li>Select <strong>Available Packages</strong> in the left panel.</li> + <li>Click <strong>Add Add-on Site</strong> and enter the URL of the +<code>repository.xml</code> file. Click <strong>OK</strong>.</li> +</ol> +<p>Any SDK packages available from the site will now be listed under a new item named +<strong>User Add-ons</strong>.</p> + + + + +<h2 id="troubleshooting">Troubleshooting</h2> + +<p><strong>Problems connecting to the SDK repository</strong></p> + +<p>If you are using the Android SDK Manager to download packages and are encountering +connection problems, try connecting over http, rather than https. To switch the +protocol used by the Android SDK Manager, follow these steps: </p> + +<ol> + <li>With the Android SDK Manager window open, select "Settings" in the + left pane. </li> + <li>On the right, in the "Misc" section, check the checkbox labeled "Force + https://... sources to be fetched using http://..." </li> + <li>Click <strong>Save & Apply</strong>.</li> +</ol> + + + + diff --git a/docs/html/sdk/images/4.0/contact-call.xcf b/docs/html/sdk/images/4.0/contact-call.xcf Binary files differdeleted file mode 100644 index 3046e92..0000000 --- a/docs/html/sdk/images/4.0/contact-call.xcf +++ /dev/null diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd index b56ccdb..e788ffe 100644 --- a/docs/html/sdk/index.jd +++ b/docs/html/sdk/index.jd @@ -1,6 +1,6 @@ page.title=Android SDK +header.hide=1 page.metaDescription=Download the official Android SDK to develop apps for Android-powered devices. -sdk.redirect=0 sdk.win_installer=installer_r18-windows.exe sdk.win_installer_bytes=37456234 @@ -20,28 +20,119 @@ sdk.linux_checksum=6cd716d0e04624b865ffed3c25b3485c @jd:body -<div class="non-preview"> -<p>Here's an overview of the steps you must follow to set up the Android SDK:</p> +<style type="text/css"> + .offline { display:none; } +</style> -<ol> - <li>Prepare your development computer and ensure it meets the system requirements.</li> - <li>Install the SDK starter package from the table above. (If you're on Windows, download the -installer for help with the initial setup.)</li> - <li>Install the ADT Plugin for Eclipse (if you'll be developing in Eclipse).</li> - <li>Add Android platforms and other packages to your SDK.</li> - <li>Explore the contents of the Android SDK (optional).</li> -</ol> +<div class="wrap"> -<p class="online-message">To get started, download the appropriate package from the table above, -then read the guide to <a href="installing.html">Installing the SDK</a>.</p> +<div class="col-13"> </div><!-- provides top margin for content --> + +<div class="col-7" style="margin-left:0"> + <img src="{@docRoot}images/sdk-cube.png" alt="" /> +</div> + + +<div class="col-6" style="margin-right:0;"> + +<div id="intro" style="position:absolute;width:inherit"> +<h1 style="margin-top:0">Get the Android SDK</h1> + + +<p>The Android SDK provides you the API libraries and developer tools necessary to build, test, + and debug apps for Android.</p> + +<!-- this appears when viewing the offline docs --> +<p class="offline"> +To get the latest Android SDK, please visit the web site at <a +href="http://developer.android.com/sdk/index.html">developer.android.com/sdk/</a> +</p> + +<!-- this appears when viewing the online docs --> +<div class="online"> +<a class="big button disabled" id="download-button" href="" >Sorry, the SDK does not support +your OS</a> + +<p style="margin-top:20px;font-size:12px"><a href='' onclick=" + if ($('.pax').is(':visible')) { + $('.pax').slideUp(); + } else { + $('.reqs').slideUp(); + $('.pax').slideDown(); + }return false;">Other platforms</a> | + <a href='' onclick=" + if ($('.reqs').is(':visible')) { + $('.reqs').slideUp(); + } else { + $('.pax').slideUp(); + $('.reqs').slideDown(); + }return false;">System requirements</a></p> +</div><!-- end online --> + +</div><!-- end intro --> -<!-- non-inline style and based on only one selector so that - it can be overriden by the sdkpage.cs template --> -<style type="text/css"> - .offline-message { display:none; } -</style> -<p class="offline-message">For more information about how to set up your -development environment, read the guide to <a href="installing.html">Installing the SDK</a>.</p> +<div id="next-steps" class="online" style="display:none;position:absolute;width:inherit"> + <h1 style="margin-top:0">Get ready to code!</h1> + <p><em><span id="filename"></span></em> is now downloading...</p> + <p>You'll soon be developing apps for Android! Once the download completes, + you need to follow a few steps to set up your environment.</p> + <p>To continue, follow the guide to <a href="{@docRoot}sdk/installing/index.html">Installing +the SDK</a>.</p> + +</div><!-- end next-steps --> + +</div><!-- end col-6 --> + + +<div class="col-13"> </div><!-- provides padding --> + + +<div class="col-6 reqs" style="margin-left:0;display:none;font-size:12px"> +<h3>Operating Systems</h3> +<ul> + <li>Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)</li> + <li>Mac OS X 10.5.8 or later (x86 only)</li> + <li>Linux (tested on Ubuntu Linux, Lucid Lynx) + <ul> + <li>GNU C Library (glibc) 2.7 or later is required.</li> + <li>On Ubuntu Linux, version 8.04 or later is required.</li> + <li>64-bit distributions must be capable of running 32-bit applications.</li> + </ul> + </li> +</ul> +</div> + +<div class="col-7 reqs" style="margin-right:0;display:none;font-size:12px"> +<h3>Eclipse IDE</h3> + <ul> + <li>Eclipse 3.6.2 (Helios) or greater +<p class="note"><strong>Note:</strong> Eclipse 3.5 (Galileo) is no longer +supported with the latest version of ADT.</p></li> + <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included +in most Eclipse IDE packages) </li> + <li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK 6</a> + (JRE alone is not sufficient)</li> + <li><a href="{@docRoot}tools/sdk/eclipse-adt.html">Android Development Tools plugin</a> +(recommended)</li> + <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li> + </ul> + + +<h3>Other development environments</h3> + <ul> + <li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK 6</a> + (JRE alone is not sufficient)</li> + <li><a href="http://ant.apache.org/">Apache Ant</a> 1.8 or later</li> + <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li> + </ul> + </li> +</ul> + +<p class="note"><strong>Note:</strong> Some Linux distributions may include JDK 1.4 or Gnu Compiler +for Java, both of which are <em>not</em> supported for Android development. </p> </div> + +</div> + diff --git a/docs/html/sdk/installing.jd b/docs/html/sdk/installing.jd deleted file mode 100644 index 7461eb0..0000000 --- a/docs/html/sdk/installing.jd +++ /dev/null @@ -1,590 +0,0 @@ -page.title=Installing the SDK - -@jd:body - - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + -"assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + -"assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { - padding: .25em 1em 0em 1em; - margin-bottom: 0; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleme a { - text-decoration:underline; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div id="qv-wrapper"> -<div id="qv"> - - <h2>In this document</h2> - <ol> - <li><a href="#Preparing">1. Preparing Your Development Computer</a></li> - <li><a href="#Installing">2. Downloading the SDK Starter Package</a></li> - <li><a href="#InstallingADT">3. Installing the ADT Plugin for Eclipse</a></li> - <li><a href="#AddingComponents">4. Adding Platforms and Other Packages</a> - <ol> - <li><a href="#components">Available Packages</a></li> - <li><a href="#which">Recommended Packages</a></li> - </ol></li> - <li><a href="#sdkContents">5. Exploring the SDK (Optional)</a></li> - <li><a href="#NextSteps">Next Steps</a></li> - <li><a href="#troubleshooting">Troubleshooting</a></li> - </ol> - -<h2>See also</h2> - <ol> - <li><a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a></li> - <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a></li> - </ol> - -</div> -</div> - -<p>This page describes how to install the Android SDK -and set up your development environment for the first time.</p> - -<p>If you encounter any problems during installation, see the -<a href="#troubleshooting">Troubleshooting</a> section at the bottom of -this page.</p> - -<h4>Updating?</h4> - -<p>If you already have an Android SDK, use the Android SDK Manager tool to install -updated tools and new Android platforms into your existing environment. For information about how to -do that, see <a href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a>.</p> - - -<h2 id="Preparing">Step 1. Preparing Your Development Computer</h2> - -<p>Before getting started with the Android SDK, take a moment to confirm that -your development computer meets the <a href="requirements.html">System -Requirements</a>. In particular, you might need to install the <a -href="http://java.sun.com/javase/downloads/index.jsp">JDK</a>, if you don't have it already. </p> - -<p>If you will be developing in Eclipse with the Android Development -Tools (ADT) Plugin—the recommended path if you are new to -Android—make sure that you have a suitable version of Eclipse -installed on your computer as described in the -<a href="requirements.html">System Requirements</a> document. -If you need to install Eclipse, you can download it from this location: </p> - -<p style="margin-left:2em;"><a href= -"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p> - -<p>The "Eclipse Classic" version is recommended. Otherwise, a Java or -RCP version of Eclipse is recommended.</p> - - -<h2 id="Installing">Step 2. Downloading the SDK Starter Package</h2> - -<p>The SDK starter package is not a full -development environment—it includes only the core SDK Tools, which you can -use to download the rest of the SDK packages (such as the latest Android platform).</p> - -<p>If you haven't already, get the latest version of the SDK starter package from the <a -href="{@docRoot}sdk/index.html">SDK download page</a>.</p> - -<p>If you downloaded a {@code .zip} or {@code .tgz} package (instead of the SDK installer), unpack -it to a safe location on your machine. By default, the SDK files are unpacked -into a directory named <code>android-sdk-<machine-platform></code>.</p> - -<p>If you downloaded the Windows installer ({@code .exe} file), run it now and it will check -whether the proper Java SE Development Kit (JDK) is installed (installing it, if necessary), then -install the SDK Tools into a default location (which you can modify).</p> - -<p>Make a note of the name and location of the SDK directory on your system—you will need to -refer to the SDK directory later, when setting up the ADT plugin and when using -the SDK tools from the command line.</p> - - -<h2 id="InstallingADT">Step 3. Installing the ADT Plugin for Eclipse</h2> - -<p>Android offers a custom plugin for the Eclipse IDE, called Android -Development Tools (ADT), that is designed to give you a powerful, integrated -environment in which to build Android applications. It extends the capabilites -of Eclipse to let you quickly set up new Android projects, create an application -UI, debug your applications -using the Android SDK tools, and even export signed (or unsigned) APKs in order -to distribute your application. In general, developing in Eclipse with ADT is a -highly recommended approach and is the fastest way to get started with Android. -</p> - -<p>If you'd like to use ADT for developing Android applications, install it now. -Read <a href="{@docRoot}sdk/eclipse-adt.html#installing">Installing the ADT Plugin</a> for -step-by-step installation instructions, then return here to continue the -last step in setting up your Android SDK.</p> - -<p>If you prefer to work in a different IDE, you do not need to -install Eclipse or ADT. Instead, you can directly use the SDK tools to build and -debug your application. The <a href="{@docRoot}guide/developing/index.html">Introduction</a> -to Android application development outlines the major steps that you need to complete when -developing in Eclipse or other IDEs.</p> - - - -<h2 id="AddingComponents">Step 4. Adding Platforms and Other Packages</h2> - -<p>The last step in setting up your SDK is using the Android SDK Manager (a -tool included in the SDK starter package) to download essential SDK packages into your development -environment.</p> - -<p>The SDK uses a modular structure that separates the major parts of the SDK—Android platform -versions, add-ons, tools, samples, and documentation—into a set of separately installable -packages. The SDK starter package, which you've already downloaded, includes only a single -package: the latest version of the SDK Tools. To develop an Android application, you also need to -download at least one Android platform and the associated platform tools. You can add other -packages and platforms as well, which is highly recommended.</p> - -<p>If you used the Windows installer, when you complete the installation wizard, it will launch the -Android SDK Manager with a default set of platforms and other packages selected -for you to install. Simply click <strong>Install</strong> to accept the recommended set of -packages and install them. You can then skip to <a href="#sdkContents">Step 5</a>, but we -recommend you first read the section about the <a href="#components">Available Packages</a> to -better understand the packages available from the Android SDK Manager.</p> - -<p>You can launch the Android SDK Manager in one of the following ways:</p> -<ul> - <li>From within Eclipse, select <strong>Window > Android SDK Manager</strong>.</li> - <li>On Windows, double-click the <code>SDK Manager.exe</code> file at the root of the Android -SDK directory.</li> - <li>On Mac or Linux, open a terminal and navigate to the <code>tools/</code> directory in the -Android SDK, then execute: <pre>android</pre> </li> -</ul> - -<p>To download packages, use the graphical UI of the Android SDK -Manager to browse the SDK repository and select new or updated -packages (see figure 1). The Android SDK Manager installs the selected packages in -your SDK environment. For information about which packages you should download, see <a -href="#which">Recommended Packages</a>.</p> - -<img src="/images/sdk_manager_packages.png" /> -<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager's -<strong>Available Packages</strong> panel, which shows the SDK packages that are -available for you to download into your environment.</p> - - -<h3 id="components">Available Packages</h3> - -<p>By default, there are two repositories of packages for your SDK: <em>Android -Repository</em> and <em>Third party Add-ons</em>.</p> - -<p>The <em>Android Repository</em> offers these types of packages:</p> - -<ul> -<li><strong>SDK Tools</strong> — Contains tools for debugging and testing your application -and other utility tools. These tools are installed with the Android SDK starter package and receive -periodic updates. You can access these tools in the <code><sdk>/tools/</code> directory of -your SDK. To learn more about -them, see <a href="{@docRoot}guide/developing/tools/index.html#tools-sdk">SDK Tools</a> in the -developer guide.</li> - -<li><strong>SDK Platform-tools</strong> — Contains platform-dependent tools for developing -and debugging your application. These tools support the latest features of the Android platform and -are typically updated only when a new platform becomes available. You can access these tools in the -<code><sdk>/platform-tools/</code> directory. To learn more about them, see <a -href="{@docRoot}guide/developing/tools/index.html#tools-platform">Platform Tools</a> in the -developer guide.</li> - -<li><strong>Android platforms</strong> — An SDK platform is -available for every production Android platform deployable to Android-powered devices. Each -SDK platform package includes a fully compliant Android library, system image, sample code, -and emulator skins. To learn more about a specific platform, see the list of platforms that appears -under the section "Downloadable SDK Packages" on the left part of this page.</li> - -<li><strong>USB Driver for Windows</strong> (Windows only) — Contains driver files -that you can install on your Windows computer, so that you can run and debug -your applications on an actual device. You <em>do not</em> need the USB driver unless -you plan to debug your application on an actual Android-powered device. If you -develop on Mac OS X or Linux, you do not need a special driver to debug -your application on an Android-powered device. See <a -href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a> for more information -about developing on a real device.</li> - -<li><strong>Samples</strong> — Contains the sample code and apps available -for each Android development platform. If you are just getting started with -Android development, make sure to download the samples to your SDK. <!--The download -includes not only a set of very useful sample apps, but also the source for <a -href="{@docRoot}resources/tutorials/hello-world.html">Hello World</a> and other -tutorials. --></li> - -<li><strong>Documentation</strong> — Contains a local copy of the latest -multiversion documentation for the Android framework API. </li> -</ul> - -<p>The <em>Third party Add-ons</em> provide packages that allow you to create a development -environment using a specific Android external library (such as the Google Maps library) or a -customized (but fully compliant) Android system image. You can add additional Add-on repositories by -clicking <strong>Add Add-on Site</strong>.</p> - - -<h3 id="which">Recommended Packages</h3> - -<p>The SDK repository contains a range of packages that you can download. -Use the table below to determine which packages you need, based on whether you -want to set up a basic, recommended, or full development environment: -</p> - -<table style="width:95%"> - -<tr> -<th>Environment</th> -<th>SDK Package</th> -<th>Comments</th> -</tr> - -<tr> -<td rowspan="3" style="font-size:.9em;background-color:#FFE;">Basic</td> -<td style="font-size:.9em;background-color:#FFE;">SDK Tools</td> -<td style="font-size:.9em;background-color:#FFE;">If you've just installed -the SDK starter package, then you already have the latest version of this package. The -SDK Tools package is required to develop an Android application. Make sure you keep this up to -date.</td> -</tr> - -<tr> -<td style="font-size:.9em;background-color:#FFE;">SDK Platform-tools</td> -<td style="font-size:.9em;background-color:#FFE;">This includes more tools that are required -for application development. These tools are platform-dependent and typically update only when -a new SDK platform is made available, in order to support new features in the platform. These -tools are always backward compatible with older platforms, but you must be sure that you have -the latest version of these tools when you install a new SDK platform.</td> -</tr> - -<tr> -<td style="font-size:.9em;background-color:#FFE;">SDK platform</td> -<td style="font-size:.9em;background-color:#FFE;">You need to download <strong -style="color:red">at least one platform</strong> into your environment, so that -you will be able to compile your application and set up an Android Virtual -Device (AVD) to run it on (in the emulator). To start with, just download the -latest version of the platform. Later, if you plan to publish your application, -you will want to download other platforms as well, so that you can test your -application on the full range of Android platform versions that your application supports.</td> -</tr> -<tr> -<td colspan="2" -style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td -style="border:none"></td> -</tr> -<tr> -<td rowspan="3">Recommended<br/>(plus Basic)</td> -<td>Documentation</td> -<td>The Documentation package is useful because it lets you work offline and -also look up API reference information from inside Eclipse.</td> -</tr> - -<tr> -<td>Samples</td> -<td>The Samples packages give you source code that you can use to learn about -Android, load as a project and run, or reuse in your own app. Note that multiple -samples packages are available — one for each Android platform version. When -you are choosing a samples package to download, select the one whose API Level -matches the API Level of the Android platform that you plan to use.</td> -</tr> -<tr> -<td>Usb Driver</td> -<td>The Usb Driver package is needed only if you are developing on Windows and -have an Android-powered device on which you want to install your application for -debugging and testing. For Mac OS X and Linux platforms, no -special driver is needed.</td> -</tr> -<tr> -<td colspan="2" -style="border:none;text-align:center;font-size:1.5em;font-weight:bold;">+</td><td -style="border:none"></td> -</tr> -<tr> -<td rowspan="3">Full<br/>(plus Recommended)</td> -<td>Google APIs</td> -<td>The Google APIs add-on gives your application access to the Maps external -library, which makes it easy to display and manipulate Maps data in your -application. </td> -</tr> -<tr> -<td>Additional SDK Platforms</td> -<td>If you plan to publish your application, you will want to download -additional platforms corresponding to the Android platform versions on which you -want the application to run. The recommended approach is to compile your -application against the lowest version you want to support, but test it against -higher versions that you intend the application to run on. You can test your -applications on different platforms by running in an Android Virtual Device -(AVD) on the Android emulator.</td> -</tr> - -</table> - -<p>Once you've installed at least the basic configuration of SDK packages, you're ready to start -developing Android apps. The next section describes the contents of the Android SDK to familiarize -you with the packages you've just installed.</p> - -<p>For more information about using the Android SDK Manager, see the <a -href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a> document. </p> - - -<h2 id="sdkContents">Step 5. Exploring the SDK (Optional)</h2> - -<p>Once you've installed the SDK and downloaded the platforms, documentation, -and add-ons that you need, we suggest that you open the SDK directory and take a look at what's -inside.</p> - -<p>The table below describes the full SDK directory contents, with packages -installed. </p> - -<table> -<tr> -<th colspan="3">Name</th><th>Description</th> -</tr> -<tr> -<td colspan="3"><code>add-ons/</code></td> -<td>Contains add-ons to the Android SDK development -environment, which let you develop against external libraries that are available on some -devices. </td> -</tr> -<tr> -<td colspan="3"><code>docs/</code></td> -<td>A full set of documentation in HTML format, including the Developer's Guide, -API Reference, and other information. To read the documentation, load the -file <code>offline.html</code> in a web browser.</td> -</tr> -<tr> -<td colspan="3"><code>platform-tools/</code></td> -<td>Contains platform-dependent development tools that may be updated with each platform release. -The platform tools include the Android Debug Bridge ({@code adb}) as well as other tools that you -don't typically use directly. These tools are separate from the development tools in the {@code -tools/} directory because these tools may be updated in order to support new -features in the latest Android platform.</td> -</tr> -<tr> -<td colspan="3"><code>platforms/</code></td> -<td>Contains a set of Android platform versions that you can develop -applications against, each in a separate directory. </td> -</tr> -<tr> -<td style="width:2em;"></td> -<td colspan="2"><code><em><platform></em>/</code></td> -<td>Platform version directory, for example "android-11". All platform version directories contain -a similar set of files and subdirectory structure. Each platform directory also includes the -Android library (<code>android.jar</code>) that is used to compile applications against the -platform version.</td> -</tr> -<tr> -<td colspan="3"><code>samples/</code></td> -<td>Sample code and apps that are specific to platform version.</td> -</tr> -<tr> -<td colspan="3"><code>tools/</code></td> -<td>Contains the set of development and profiling tools that are platform-independent, such -as the emulator, the Android SDK Manager, the AVD Manager, <code>ddms</code>, -<code>hierarchyviewer</code> -and more. The tools in this directory may be updated at any time using the Android SDK -Manager and are independent of platform releases.</td> -</tr> -<tr> -<td colspan="3"><code>SDK Readme.txt</code></td> -<td>A file that explains how to perform the initial setup of your SDK, -including how to launch the Android SDK Manager tool on all -platforms.</td> -</tr> -<tr> -<td colspan="3"><code>SDK Manager.exe</code></td> -<td>Windows SDK only. A shortcut that launches the Android SDK -Manager tool, which you use to add packages to your SDK.</td> -</tr> -<!--<tr> -<td colspan="3"><code>documentation.html</code></td> -<td>A file that loads the entry page for the local Android SDK -documentation.</td> -</tr>--> - -</table> - - -<p>Optionally, you might want to add the location of the SDK's <code>tools/</code> and -<code>platform-tools</code> to your <code>PATH</code> environment variable, to provide easy -access to the tools.</p> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> - How to update your PATH</a> - <div class="toggleme"> - -<p>Adding both <code>tools/</code> and <code>platform-tools/</code> to your PATH lets you run -command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without needing to -supply the full path to the tool directories. Depending on your operating system, you can -include these directories in your PATH in the following way:</p> - -<ul> - - <li>On Windows, right-click on My Computer, and select Properties. - Under the Advanced tab, hit the Environment Variables button, and in the - dialog that comes up, double-click on Path (under System Variables). Add the full path to the - <code>tools/</code> and <code>platform-tools/</code> directories to the path. </li> - - <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look - for a line that sets the PATH environment variable and add the - full path to the <code>tools/</code> and <code>platform-tools/</code> directories to it. If you - don't see a line setting the path, you can add one: - <pre>export PATH=${PATH}:<sdk>/tools:<sdk>/platform-tools</pre> - </li> - - <li>On a Mac OS X, look in your home directory for <code>.bash_profile</code> and - proceed as for Linux. You can create the <code>.bash_profile</code> if - you don't already have one. </li> -</ul> - -</div><!-- end toggleme --> -</div><!-- end toggleable --> - - -<h2 id="NextSteps">Next Steps</h2> -<p>Once you have completed installation, you are ready to -begin developing applications. Here are a few ways you can get started: </p> - -<p><strong>Set up the Hello World application</strong></p> -<ul> - <li>If you have just installed the SDK for the first time, go to the <a - href="{@docRoot}resources/tutorials/hello-world.html">Hello - World tutorial</a>. The tutorial takes you step-by-step through the process - of setting up your first Android project, including setting up an Android - Virtual Device (AVD) on which to run the application. -</li> -</ul> - -<p class="note">Following the Hello World tutorial is an essential -first step in getting started with Android development. </p> - -<p><strong>Learn about Android</strong></p> -<ul> - <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev - Guide</a> and the types of information it provides.</li> - <li>Read an introduction to Android as a platform in <a - href="{@docRoot}guide/basics/what-is-android.html">What is - Android?</a></li> - <li>Learn about the Android framework and how applications run on it in - <a href="{@docRoot}guide/topics/fundamentals.html">Application - Fundamentals</a>.</li> - <li>Take a look at the Android framework API specification in the <a - href="{@docRoot}reference/packages.html">Reference</a> tab.</li> -</ul> - -<p><strong>Explore the development tools</strong></p> -<ul> - <li>Get an overview of the <a - href="{@docRoot}guide/developing/tools/index.html">development - tools</a> that are available to you.</li> - <li>Read the <a href="{@docRoot}guide/developing/index.html">Introduction</a> to Android -application development. - </li> - <li>Read <a href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a> to learn -how to set up an Android-powered device so you can run and test your application.</li> -</ul> - -<p><strong>Follow the Notepad tutorial</strong></p> - -<ul> - <li>The <a href="{@docRoot}resources/tutorials/notepad/index.html"> - Notepad Tutorial</a> shows you how to build a full Android application - and provides helpful commentary on the Android system and API. The - Notepad tutorial helps you bring together the important design - and architectural concepts in a moderately complex application. - </li> -</ul> -<p class="note">Following the Notepad tutorial is an excellent -second step in getting started with Android development. </p> - -<p><strong>Explore some code</strong></p> - -<ul> - <li>The Android SDK includes sample code and applications for each platform -version. You can browse the samples in the <a -href="{@docRoot}resources/index.html">Resources</a> tab or download them -into your SDK using the Android SDK Manager. Once you've downloaded the -samples, you'll find them in -<code><em><sdk></em>/samples/<em><platform>/</em></code>. </li> -</ul> - -<p><strong>Visit the Android developer groups</strong></p> -<ul> - <li>Take a look at the <a - href="{@docRoot}resources/community-groups.html">Community</a> pages to see a list of - Android developers groups. In particular, you might want to look at the - <a href="http://groups.google.com/group/android-developers">Android - Developers</a> group to get a sense for what the Android developer - community is like.</li> -</ul> - -<h2 id="troubleshooting">Troubleshooting</h2> - -<h3>Ubuntu Linux Notes</h3> - -<ul> - <li>If you need help installing and configuring Java on your - development machine, you might find these resources helpful: - <ul> - <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li> - <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li> - </ul> - </li> - <li>Here are the steps to install Java and Eclipse, prior to installing - the Android SDK and ADT Plugin. - <ol> - <li>If you are running a 64-bit distribution on your development - machine, you need to install the <code>ia32-libs</code> package using - <code>apt-get:</code>: - <pre>apt-get install ia32-libs</pre> - </li> - <li>Next, install Java: <pre>apt-get install sun-java6-jdk</pre></li> - <li>The Ubuntu package manager does not currently offer an Eclipse 3.3 - version for download, so we recommend that you download Eclipse from - eclipse.org (<a - href="http://www.eclipse.org/downloads/">http://www.eclipse.org/ - downloads/</a>). A Java or RCP version of Eclipse is recommended.</li> - <li>Follow the steps given in previous sections to install the SDK - and the ADT plugin. </li> - </ol> - </li> -</ul> - -<h3>Other Linux Notes</h3> - -<ul> - <li>If JDK is already installed on your development computer, please - take a moment to make sure that it meets the version requirements listed - in the <a href="requirements.html">System Requirements</a>. - In particular, note that some Linux distributions may include JDK 1.4 or Gnu - Compiler for Java, both of which are not supported for Android development.</li> -</ul> diff --git a/docs/html/sdk/installing/adding-packages.jd b/docs/html/sdk/installing/adding-packages.jd new file mode 100644 index 0000000..7765343 --- /dev/null +++ b/docs/html/sdk/installing/adding-packages.jd @@ -0,0 +1,78 @@ +page.title=Adding Platforms and Packages +walkthru=1 + +@jd:body + + +<p>The Android SDK separates different parts of the SDK into separately downloadable packages. The +SDK starter package that you've installed includes only the SDK Tools. To develop an Android app, +you also need to download at least one Android platform and the latest SDK Platform-tools.</p> + +<p>You can update and install SDK packages at any time using the Android SDK Manager.</p> + +<p>If you've used the Windows installer to install the SDK tools, you should already have the +Android SDK Manager open. Otherwise, you can launch the Android SDK Manager in one of the following +ways:</p> +<ul> + <li>On Windows, double-click the <code>SDK Manager.exe</code> file at the root of the Android +SDK directory.</li> + <li>On Mac or Linux, open a terminal and navigate to the <code>tools/</code> directory in the +Android SDK, then execute <code>android sdk</code>.</li> +</ul> + +<p>When you open the Android SDK Manager, it automatically selects a set of recommended packages. +Simply click <strong>Install</strong> to install the recommended packages. The Android SDK Manager +installs the selected packages into +your Android SDK environment. The following sections describe some of the available SDK +packages and more about which ones we recommend you install.</p> + +<p>Once you have installed your packages, continue to the next page.</p> + +<img src="/images/sdk_manager_packages.png" alt="" /> +<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager shows the +SDK packages that are available, already installed, or for which an update is available.</p> + + + + +<h2 id="Recommended">Recommended Packages</h2> + +<p>Here's an outlines of the packages required and those we recommend you use: +</p> + +<dl> + <dt>SDK Tools</dt> + <dd><strong>Required.</strong> Your new SDK installation already has the latest version. Make sure +you keep this up to date.</dd> + <dt>SDK Platform-tools</dt> + <dd><strong>Required.</strong> You must install this package when you install the SDK for +the first time.</dd> + <dt>SDK Platform</dt> + <dd><strong>Required.</strong>You need to download <strong +style="color:red">at least one platform</strong> into your environment so you're +able to compile your application. In order to provide the best user experience on the latest +devices, we recommend that you use the latest platform version as your build target. You'll +still be able to run your app on older versions, but you must build against the latest version +in order to use new features when running on devices with the latest version of Android.</dd> + <dt>System Image</dt> + <dd>Recommended. Although you might have one or more Android-powered devices on which to test + your app, it's unlikely you have a device for every version of Android your app supports. It's +a good practice to download a system image for each version of Android you support and use them +to test your app on the Android emulator.</dd> + <dt>SDK Samples</dt> + <dd>Recommended. The samples give you source code that you can use to learn about +Android, load as a project and run, or reuse in your own app. Note that multiple +samples packages are available — one for each Android platform version. When +you are choosing a samples package to download, select the one whose API Level +matches the API Level of the Android platform that you plan to use.</dd> + <dt>Android Support</dt> + <dd>Recommended. The APIs available in this static library allow you to use a variety of new +framework features (including some not available in even the latest version) on devices running +a platform version as old as Android 1.6. For more information, read <a +href="{@docRoot}tools/extras/support-library.html">Support Library</a>.</dd> +</dl> + + +<p class="note"><strong>Tip:</strong> For easy access to the SDK tools from a command line, add the +location of the SDK's <code>tools/</code> and +<code>platform-tools</code> to your <code>PATH</code> environment variable.</p> diff --git a/docs/html/sdk/installing/index.jd b/docs/html/sdk/installing/index.jd new file mode 100644 index 0000000..2ae6bed --- /dev/null +++ b/docs/html/sdk/installing/index.jd @@ -0,0 +1,133 @@ +page.title=Installing the SDK +walkthru=1 + +@jd:body + + +<p>You should have already downloaded the <a href="{@docRoot}sdk/index.html">Android SDK</a>. Now +you need to set up your development environment.</p> + +<p>The SDK you've downloaded is not the complete SDK environment. It includes only the core SDK tools, which you can +use to download the rest of the SDK packages (such as the latest system image).</p> + + +<div id="win" class="docs" style="display:none"> + +<h3>Getting started on Windows</h3> +<p>Your download package is an executable file that starts an installer. The installer checks your machine + for required tools, such as the proper Java SE Development Kit (JDK) and installs it if necessary. + The installer then saves the Android SDK Tools into a default location (or you can specify the location).</p> + +<p>Make a note of the name and location of the SDK directory on your system—you will need to +refer to the SDK directory later, when setting up the ADT plugin and when using +the SDK tools from the command line.</p> + +<p>Once the tools are installed, the installer offers to start the Android SDK Manager. Start it and +continue with the installation guide by clicking the +<strong>Next</strong> link on the right.</p> + +</div> + + + +<div id="mac" class="docs" style="display:none"> + +<h3>Getting started on Mac</h3> + +<p>Your download package is {@code .zip}. + Unpack it to a safe location on your machine. By default, the SDK files are unpacked +into a directory named <code>android-sdk-mac_x86</code>.</p> + +<p>Make a note of the name and location of the SDK directory on your system—you will need to +refer to the SDK directory later, when setting up the ADT plugin and when using +the SDK tools from the command line.</p> + +<p>Now continue with the installation guide by clicking the +<strong>Next</strong> link on the right.</p> + +</div> + + + + +<div id="linux" class="docs" style="display:none"> + +<h3>Getting started on Linux</h3> + +<p>Your download package is a {@code .tgz}. + Unpack it to a safe location on your machine. By default, the SDK files are unpacked +into a directory named <code>android-sdk-linux_x86</code>.</p> + +<p>Make a note of the name and location of the SDK directory on your system—you will need to +refer to the SDK directory later, when setting up the ADT plugin and when using +the SDK tools from the command line.</p> + +<p>Now continue with the installation guide by clicking the +<strong>Next</strong> link on the right.</p> + + +<h4 id="Troubleshooting">Troubleshooting Ubuntu</h4> + +<ul> + <li>If you need help installing and configuring Java on your + development machine, you might find these resources helpful: + <ul> + <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li> + <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li> + </ul> + </li> + <li>Here are the steps to install Java and Eclipse, prior to installing + the Android SDK and ADT Plugin. + <ol> + <li>If you are running a 64-bit distribution on your development + machine, you need to install the <code>ia32-libs</code> package using + <code>apt-get:</code>: + <pre>apt-get install ia32-libs</pre> + </li> + <li>Next, install Java: <pre>apt-get install sun-java6-jdk</pre></li> + <li>The Ubuntu package manager does not currently offer an Eclipse 3.3 + version for download, so we recommend that you download Eclipse from + eclipse.org (<a + href="http://www.eclipse.org/downloads/">http://www.eclipse.org/ + downloads/</a>). A Java or RCP version of Eclipse is recommended.</li> + <li>Follow the steps given in previous sections to install the SDK + and the ADT plugin. </li> + </ol> + </li> +</ul> + +</div> + +<p><a href='' onclick='showAll();return false;'>Other platforms</a></p> + +<script> + var $osDocs; + if (navigator.appVersion.indexOf("Win")!=-1) { + $osDocs = $('#win'); + } else if (navigator.appVersion.indexOf("Mac")!=-1) { + $osDocs = $('#mac'); + } else if (navigator.appVersion.indexOf("Linux")!=-1) { + $osDocs = $('#linux'); + } + + if ($osDocs.length) { + // reveal only the docs for this OS + $osDocs.show(); + } else { + // not running a compatible OS, so just show all the docs + $('.docs').show(); + } + + function showAll() { + $('.docs').each(function() { + if (!$(this).is(':visible')) { + console.log('show') + $(this).show(); + } else { + console.log('hide') + $(this).hide(); + $osDocs.show(); + } + }); + } +</script> diff --git a/docs/html/sdk/installing/installing-adt.jd b/docs/html/sdk/installing/installing-adt.jd new file mode 100644 index 0000000..2925272 --- /dev/null +++ b/docs/html/sdk/installing/installing-adt.jd @@ -0,0 +1,206 @@ +page.title=Installing the Eclipse Plugin +walkthru=1 +adt.zip.version=18.0.0 +adt.zip.download=ADT-18.0.0.zip +adt.zip.bytes=12834793 +adt.zip.checksum=b446fa157ed97af79d1e21629201efbb + +@jd:body + + + +<p>Android offers a custom plugin for the Eclipse IDE, called Android +Development Tools (ADT). This plugin is designed to give you a powerful, integrated +environment in which to develop Android apps. It extends the capabilites +of Eclipse to let you quickly set up new Android projects, build an app +UI, debug your app, and export signed (or unsigned) app packages (APKs) for distribution. +</p> + +<p>If you will be developing in Eclipse with the ADT Plugin, first make sure that you have a +suitable version of Eclipse +installed on your computer as described by the +<a href="{@docRoot}tools/sdk/index.html#Requirements">system requirements</a>.</p> + +<p>If you need to install Eclipse, you can download it from <a href= +"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>. +We recommend the "Eclipse Classic" version. Otherwise, you should use a Java or +RCP version of Eclipse.</p> + + +<p class="note"><strong>Note:</strong> If you prefer to work in a different IDE, you do not need to +install Eclipse or ADT. Instead, you can directly use the SDK tools to build and +debug your application. So if you're not using Eclipse, continue to the next page by clicking +the <strong>Next</strong> link on the right.</p> + + + +<h2 id="Download">Download the ADT Plugin</h2> + + +<ol> + <li>Start Eclipse, then select <strong>Help</strong> > <strong>Install New +Software...</strong>.</li> + <li>Click <strong>Add</strong>, in the top-right corner.</li> + <li>In the Add Repository dialog that appears, enter "ADT Plugin" for the <em>Name</em> and the +following URL for the <em>Location</em>: + <pre>https://dl-ssl.google.com/android/eclipse/</pre> + </li> + <li>Click <strong>OK</strong> + <p>Note: If you have trouble acquiring the plugin, try using "http" in the Location URL, +instead of "https" (https is preferred for security reasons).</p></li> + <li>In the Available Software dialog, select the checkbox next to Developer Tools and click +<strong>Next</strong>.</li> + <li>In the next window, you'll see a list of the tools to be downloaded. Click +<strong>Next</strong>. </li> + <li>Read and accept the license agreements, then click <strong>Finish</strong>. + <p>Note: If you get a security warning saying that the authenticity or validity of +the software can't be established, click <strong>OK</strong>.</p></li> + <li>When the installation completes, restart Eclipse. </li> +</ol> + + + + +<h2 id="Configure">Configure the ADT Plugin</h2> + +<p>After you've installed ADT and restarted Eclipse, you + must specify the location of your Android SDK directory:</p> + +<ol> + <li>Select <strong>Window</strong> > <strong>Preferences...</strong> to open the Preferences + panel (on Mac OS X, select <strong>Eclipse</strong> > <strong>Preferences</strong>).</li> + <li>Select <strong>Android</strong> from the left panel.</li> + <p>You may see a dialog asking whether you want to send usage statistics to Google. If so, +make your choice and click <strong>Proceed</strong>.</p> + <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and + locate your downloaded Android SDK directory (such as <code>android-sdk-windows</code>).</li> + <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li> +</ol> + + +<p>If you haven't encountered any errors, you're done setting up ADT + and can continue to the next step of the SDK installation.</p> + + + + +<h2 id="Updating">Updating the ADT Plugin</h2> + +<p>From time to time, a new revision of the ADT Plugin becomes available, with +new features and bug fixes. Generally, when a new revision of ADT is available, +you should update to it as soon as convenient. </p> + +<p>In some cases, a new revision of ADT will have a dependency on a specific +revision of the Android SDK Tools. If such dependencies exist, you will need to +update the SDK Tools package of the SDK after installing the new revision of +ADT. To update the SDK Tools package, use the Android SDK Manager, as +described in <a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a>.</p> + +<p>To learn about new features of each ADT revision and also any dependencies on +the SDK Tools, see the listings in the <a href="#notes">Revisions</a> +section. To determine the version currently installed, open the +Eclipse Installed Software window using <strong>Help</strong> +> <strong>Software Updates</strong> and refer to the version listed for +"Android Development Tools".</p> + +<p>Follow the steps below to check whether an update is available and, if so, +to install it. </p> + +<ol> + <li>Select <strong>Help</strong> > <strong>Check for Updates</strong>. + <p>If there are no updates available, a dialog will say so and you're done.</p></li> + <li>If there are updates available, select Android DDMS, Android Development Tools, + and Android Hierarchy Viewer, then click <strong>Next</strong>.</li> + <li>In the Update Details dialog, click <strong>Next</strong>.</li> + <li>Read and accept the license agreement and then click <strong>Finish</strong>. + This will download and install the latest version of Android DDMS and + Android Development Tools.</li> + <li>Restart Eclipse.</li> +</ol> + + +<p>If you encounter problems during the update, remove the existing ADT plugin from Eclipse, then +perform a fresh installation, using the instructions for <a href="#installing">Installing the ADT +Plugin</a>.</p> + + + +<h2 id="Troubleshooting">Troubleshooting</h2> + +<p> If you are having trouble downloading the ADT plugin after following the +steps above, here are some suggestions: </p> + +<ul> + <li>If Eclipse can not find the remote update site containing the ADT plugin, +try changing the remote site URL to use http, rather than https. That is, set +the Location for the remote site to: +<pre>http://dl-ssl.google.com/android/eclipse/</pre></li> +<li>If you are behind a firewall (such as a corporate firewall), make sure that +you have properly configured your proxy settings in Eclipse. In Eclipse, +you can configure proxy information from the main Eclipse menu in +<strong>Window</strong> (on Mac OS X, <strong>Eclipse</strong>) > +<strong>Preferences</strong> > <strong>General</strong> > <strong>Network +Connections</strong>.</li> +</ul> + +<p> If you are still unable to use Eclipse to download the ADT plugin as a +remote update site, you can download the ADT zip file to your local machine and +manually install it:</p> + +<ol> + <li>Download the current ADT Plugin zip file from the table below (do not unpack it). + + <table class="download"> + <tr> + <th>Name</th> + <th>Package</th> + <th>Size</th> + <th>MD5 Checksum</th> + </tr> + <tr> + <td>ADT {@adtZipVersion}</td> + <td> + <a href="http://dl.google.com/android/{@adtZipDownload}">{@adtZipDownload}</a> + </td> + <td>{@adtZipBytes} bytes</td> + <td>{@adtZipChecksum}</td> + </tr> +</table> +</li> + +</li> + <li>Follow steps 1 and 2 in the <a href="#installing">default install + instructions</a> (above).</li> + <li>In the Add Site dialog, click <strong>Archive</strong>.</li> + <li>Browse and select the downloaded zip file.</li> + <li>Enter a name for the local update site (e.g., + "Android Plugin") in the "Name" field.</li> + <li>Click <strong>OK</strong>. + <li>Follow the remaining procedures as listed for + <a href="#installing">default installation</a> above, + starting from step 4.</li> +</ol> + +<p>To update your plugin once you've installed using the zip file, you will have +to follow these steps again instead of the default update instructions.</p> + +<h4>Other install errors</h4> + +<p>Note that there are features of ADT that require some optional +Eclipse packages (for example, WST). If you encounter an error when +installing ADT, your Eclipse installion might not include these packages. +For information about how to quickly add the necessary packages to your +Eclipse installation, see the troubleshooting topic +<a href="{@docRoot}resources/faq/troubleshooting.html#installeclipsecomponents">ADT +Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p> + +<h4>For Linux users</h4> +<p>If you encounter this error when installing the ADT Plugin for Eclipse: +<pre> +An error occurred during provisioning. +Cannot connect to keystore. +JKS</pre> +<p> +...then your development machine lacks a suitable Java VM. Installing Sun +Java 6 will resolve this issue and you can then reinstall the ADT +Plugin.</p> diff --git a/docs/html/sdk/installing/next.jd b/docs/html/sdk/installing/next.jd new file mode 100644 index 0000000..b1da7c6 --- /dev/null +++ b/docs/html/sdk/installing/next.jd @@ -0,0 +1,52 @@ +page.title=Next Steps +walkthru=1 + +@jd:body + + +<p>Now that you've installed the Android SDK, here are are a few ways to learn Android +and start developing: </p> + +<h3>Start coding</h3> +<ul> + <li>Follow the training class for <a +href="{@docRoot}training/basics/firstapp/index.html">Building Your First App</a>. + <p>This class is an essential first step for new Android developers.</p> + <p>It gives you step by step instructions for building a simple app. You’ll learn how to +create an Android project and run a debuggable version of the app. You'll also learn some +fundamentals of Android app design, including how to build a simple user interface and handle user +input.</p> +</li> +</ul> + + +<h3>Learn how to design your app</h3> +<ul> + <li>Learn the best practices for Android design and user experience by reading the Android <a +href="{@docRoot}design/index.html">Design</a> guidelines.</li> +</ul> + + +<h3>Read up on the API framework</h3> +<ul> + <li>Start reading about fundamental framework topics in the collection of <a +href="{@docRoot}guide/components/index.html">API Guides</a>.</li> + <li>Browse the API specifications in the <a + href="{@docRoot}reference/packages.html">Reference</a>.</li> +</ul> + + +<h3>Explore the development tools</h3> +<ul> + <li>Learn about developing an app with the Android Developer Tools plugin for Eclipse + and other tools from the <a + href="{@docRoot}tools/workflow/index.html">Workflow</a>.</li> +</ul> + + +<h3>Explore some code</h3> + +<ul> + <li>Browse the sample apps available from the Android SDK Manager. You'll find them in +<code><em><sdk></em>/samples/<em><platform-version>/</em></code>. </li> +</ul> diff --git a/docs/html/sdk/ndk/1.5_r1/index.jd b/docs/html/sdk/ndk/1.5_r1/index.jd deleted file mode 100644 index 4c70a8a..0000000 --- a/docs/html/sdk/ndk/1.5_r1/index.jd +++ /dev/null @@ -1,6 +0,0 @@ -page.title=Android 1.5 NDK, Release 1 -sdk.redirect=true -sdk.redirect.path=ndk/index.html - -@jd:body - diff --git a/docs/html/sdk/ndk/1.6_r1/index.jd b/docs/html/sdk/ndk/1.6_r1/index.jd deleted file mode 100644 index 090dcdc..0000000 --- a/docs/html/sdk/ndk/1.6_r1/index.jd +++ /dev/null @@ -1,5 +0,0 @@ -page.title=Android 1.6 NDK, Release 1 -sdk.redirect=true -sdk.redirect.path=ndk/index.html - -@jd:body diff --git a/docs/html/sdk/ndk/index.jd b/docs/html/sdk/ndk/index.jd deleted file mode 100644 index fddbcc7..0000000 --- a/docs/html/sdk/ndk/index.jd +++ /dev/null @@ -1,1055 +0,0 @@ -ndk=true - -ndk.win_download=android-ndk-r7c-windows.zip -ndk.win_bytes=80361003 -ndk.win_checksum=e86184cdc4bf71d32fa9185fad8544e2 - -ndk.mac_download=android-ndk-r7c-darwin-x86.tar.bz2 -ndk.mac_bytes=73836512 -ndk.mac_checksum=025f57feb5f32ed993a5fa7f5996477d - -ndk.linux_download=android-ndk-r7c-linux-x86.tar.bz2 -ndk.linux_bytes=63432410 -ndk.linux_checksum=0bc21b78823dcf6f86b988203626b1fe - -page.title=Android NDK - -@jd:body - -<h2 id="notes">Revisions</h2> - -<p>The sections below provide information and notes about successive releases of -the NDK, as denoted by revision number. </p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", "{@docRoot}assets/images/triangle-opened.png"); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", "/assets/images/triangle-closed.png"); - } - return false; -} -</script> -<style> -.toggleable { -padding: .25em 1em; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleme a { - text-decoration:underline; -} -.toggleable.closed .toggleme { - display:none;} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div class="toggleable open"> - <a href="#" onclick="return toggleDiv(this)"><img src= - "{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px"> - Android NDK, Revision 7c</a> <em>(April 2012)</em> - - <div class="toggleme"> - <p>This release of the NDK includes an important fix for Tegra2-based devices, and a few -additional fixes and improvements:</p> - - <dl> - <dt>Important bug fixes:</dt> - - <dd> - <ul> - <li>Fixed GNU STL armeabi-v7a binaries to not crash on non-NEON - devices. The files provided with NDK r7b were not configured properly, - resulting in crashes on Tegra2-based devices and others when trying to use - certain floating-point functions (e.g., {@code cosf}, {@code sinf}, {@code expf}).</li> - </ul> - </dd> - - <dt>Important changes:</dt> - - <dd> - <ul> - <li>Added support for custom output directories through the {@code NDK_OUT} - environment variable. When defined, this variable is used to store all - intermediate generated files, instead of {@code $PROJECT_PATH/obj}. The variable is - also recognized by {@code ndk-gdb}. </li> - <li>Added support for building modules with hundreds or even thousands of source - files by defining {@code LOCAL_SHORT_COMMANDS} to {@code true} in your {@code Android.mk}. - <p>This change forces the NDK build system to put most linker or archiver options - into list files, as a work-around for command-line length limitations. - See {@code docs/ANDROID-MK.html} for details.</p> - </li> - </ul> - </dd> - - <dt>Other bug fixes:</dt> - - <dd> - <ul> - <li>Fixed {@code android_getCpuCount()} implementation in the {@code cpufeatures} -helper library. On certain devices, where cores are enabled dynamically by the system, the previous -implementation would report the total number of <em>active</em> cores the first time the function -was called, rather than the total number of <em>physically available</em> cores.</li> - </ul> - </dd> - </dl> - </div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"><img src= - "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"> - Android NDK, Revision 7b</a> <em>(February 2012)</em> - - <div class="toggleme"> - <p>This release of the NDK includes fixes for native Windows builds, Cygwin and many other - improvements:</p> - - <dl> - <dt>Important bug fixes:</dt> - - <dd> - <ul> - <li>Updated {@code sys/atomics.h} to avoid correctness issues - on some multi-core ARM-based devices. Rebuild your unmodified sources with this - version of the NDK and this problem should be completely eliminated. - For more details, read {@code docs/ANDROID-ATOMICS.html}.</li> - <li>Reverted to {@code binutils} 2.19 to fix debugging issues that - appeared in NDK r7 (which switched to {@code binutils} 2.20.1).</li> - <li>Fixed {@code ndk-build} on 32-bit Linux. A packaging error put a 64-bit version - of the {@code awk} executable under {@code prebuilt/linux-x86/bin} in NDK r7.</li> - <li>Fixed native Windows build ({@code ndk-build.cmd}). Other build modes were not - affected. The fixes include: - <ul> - <li>Removed an infinite loop / stack overflow bug that happened when trying - to call {@code ndk-build.cmd} from a directory that was <em>not</em> the top of - your project path (e.g., in any sub-directory of it).</li> - <li>Fixed a problem where the auto-generated dependency files were ignored. This - meant that updating a header didn't trigger recompilation of sources that included - it.</li> - <li>Fixed a problem where special characters in files or paths, other than spaces and - quotes, were not correctly handled.</li> - </ul> - </li> - <li>Fixed the standalone toolchain to generate proper binaries when using - {@code -lstdc++} (i.e., linking against the GNU {@code libstdc++} C++ runtime). You - should use {@code -lgnustl_shared} if you want to link against the shared library - version or {@code -lstdc++} for the static version. - - <p>See {@code docs/STANDALONE-TOOLCHAIN.html} for more details about this fix.</p> - </li> - <li>Fixed {@code gnustl_shared} on Cygwin. The linker complained that it couldn't find - {@code libsupc++.a} even though the file was at the right location.</li> - <li>Fixed Cygwin C++ link when not using any specific C++ runtime through - {@code APP_STL}.</li> - </ul> - </dd> - </dl> - - <dl> - <dt>Other changes:</dt> - - <dd> - <ul> - <li>When your application uses the GNU {@code libstdc++} runtime, the compiler will - no longer forcibly enable exceptions and RTTI. This change results in smaller code. - <p>If you need these features, you must do one of the following:</p> - <ul> - <li>Enable exceptions and/or RTTI explicitly in your modules or - {@code Application.mk}. (recommended)</li> - <li>Define {@code APP_GNUSTL_FORCE_CPP_FEATURES} to {@code 'exceptions'}, - {@code 'rtti'} or both in your {@code Application.mk}. See - {@code docs/APPLICATION-MK.html} for more details.</li> - </ul> - </li> - <li>{@code ndk-gdb} now works properly when your application has private services - running in independent processes. It debugs the main application process, instead of the - first process listed by {@code ps}, which is usually a service process.</li> - <li>Fixed a rare bug where NDK r7 would fail to honor the {@code LOCAL_ARM_MODE} value - and always compile certain source files (but not all) to 32-bit instructions.</li> - <li>{@code stlport}: Refresh the sources to match the Android platform version. This - update fixes a few minor bugs: - <ul> - <li>Fixed instantiation of an incomplete type</li> - <li>Fixed minor "==" versus "=" typo</li> - <li>Used {@code memmove} instead of {@code memcpy} in {@code string::assign}</li> - <li>Added better handling of {@code IsNANorINF}, {@code IsINF}, {@code IsNegNAN}, - etc.</li> - </ul> - <p>For complete details, see the commit log.</p> - </li> - <li>{@code stlport}: Removed 5 unnecessary static initializers from the library.</li> - <li>The GNU libstdc++ libraries for armeabi-v7a were mistakenly compiled for - armeabi instead. This change had no impact on correctness, but using the right - ABI should provide slightly better performance.</li> - <li>The {@code cpu-features} helper library was updated to report three optional - x86 CPU features ({@code SSSE3}, {@code MOVBE} and {@code POPCNT}). See - {@code docs/CPU-FEATURES.html} for more details.</li> - <li>{@code docs/NDK-BUILD.html} was updated to mention {@code NDK_APPLICATION_MK} instead - of {@code NDK_APP_APPLICATION_MK} to select a custom {@code Application.mk} file.</li> - <li>Cygwin: {@code ndk-build} no longer creates an empty "NUL" file in the current - directory when invoked.</li> - <li>Cygwin: Added better automatic dependency detection. In the previous version, it - didn't work properly in the following cases: - <ul> - <li>When the Cygwin drive prefix was not {@code /cygdrive}.</li> - <li>When using drive-less mounts, for example, when Cygwin would translate - {@code /home} to {@code \\server\subdir} instead of {@code C:\Some\Dir}.</li> - </ul> - </li> - <li>Cygwin: {@code ndk-build} does not try to use the native Windows tools under - {@code $NDK/prebuilt/windows/bin} with certain versions of Cygwin and/or GNU Make.</li> - </ul> - </dd> - </dl> - </div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"><img src= - "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"> - Android NDK, Revision 7</a> <em>(November 2011)</em> - - <div class="toggleme"> - <p>This release of the NDK includes new features to support the Android 4.0 platform as well - as many other additions and improvements:</p> - - <dl> - <dt>New features</dt> - - <dd> - <ul> - <li>Added official NDK APIs for Android 4.0 (API level 14), which adds the following - native features to the platform: - - <ul> - <li>Added native multimedia API based on the Khronos Group OpenMAX AL™ 1.0.1 - standard. The new <code><OMXAL/OpenMAXAL.h></code> and - <code><OMXAL/OpenMAXAL_Android.h></code> headers allow applications targeting - API level 14 to perform multimedia output directly from native code by using a new - Android-specific buffer queue interface. For more details, see - <code>docs/openmaxal/index.html</code> and <a href= - "http://www.khronos.org/openmax/">http://www.khronos.org/openmax/</a>.</li> - - <li>Updated the native audio API based on the Khronos Group OpenSL ES 1.0.1™ - standard. With API Level 14, you can now decode compressed audio (e.g. MP3, AAC, - Vorbis) to PCM. For more details, see <code>docs/opensles/index.html</code> and - <a href= - "http://www.khronos.org/opensles">http://www.khronos.org/opensles/</a>.</li> - </ul> - </li> - - <li>Added CCache support. To speed up large rebuilds, define the - <code>NDK_CCACHE</code> environment variable to <code>ccache</code> (or the path to - your <code>ccache</code> binary). When declared, the NDK build system automatically - uses CCache when compiling any source file. For example: - <pre> -export NDK_CCACHE=ccache -</pre> - <p class="note"><strong>Note:</strong> CCache is not included in the NDK release - so you must have it installed prior to using it. For more information about CCache, see - <a href="http://ccache.samba.org">http://ccache.samba.org</a>.</p> - </li> - - <li>Added support for setting <code>APP_ABI</code> to <code>all</code> to indicate that - you want to build your NDK modules for all the ABIs supported by your given NDK - release. This means that either one of the following two lines in your - <code>Application.mk</code> are equivalent with this release: - <pre> -APP_ABI := all -APP_ABI := armeabi armeabi-v7a x86 -</pre> - - <p>This also works if you define <code>APP_ABI</code> when calling - <code>ndk-build</code> from the command-line, which is a quick way to check that your - project builds for all supported ABIs without changing the project's - <code>Application.mk file</code>. For example:</p> - <pre> -ndk-build APP_ABI=all -</pre> - </li> - - <li>Added a <code>LOCAL_CPP_FEATURES</code> variable in <code>Android.mk</code> that - allows you to declare which C++ features (RTTI or Exceptions) your module uses. This - ensures that the final linking works correctly if you have prebuilt modules that depend - on these features. See <code>docs/ANDROID-MK.html</code> and - <code>docs/CPLUSPLUS-SUPPORT.html</code> for more details.</li> - - <li>Shortened paths to source and object files that are used in build commands. When - invoking <code>$NDK/ndk-build</code> from your project path, the paths to the source, - object, and binary files that are passed to the build commands are significantly - shorter now, because they are passed relative to the current directory. This is useful - when building projects with a lot of source files, to avoid limits on the maximum - command line length supported by your host operating system. The behavior is unchanged - if you invoke <code>ndk-build</code> from a sub-directory of your project tree, or if - you define <code>NDK_PROJECT_PATH</code> to point to a specific directory.</li> - </ul> - </dd> - - <dt>Experimental features</dt> - - <dd> - You can now build your NDK source files on Windows <em>without</em> Cygwin by calling the - <code>ndk-build.cmd</code> script from the command line from your project path. The - script takes exactly the same arguments as the original <code>ndk-build</code> script. - The Windows NDK package comes with its own prebuilt binaries for GNU Make, Awk and other - tools required by the build. You should not need to install anything else to get a - working build system. - - <p class="caution"><strong>Important:</strong> <code>ndk-gdb</code> does not work on - Windows, so you still need Cygwin to debug.</p> - - <p>This feature is still experimental, so feel free to try it and report issues on the - <a href="http://b.android.com">public bug database</a> or <a href= - "http://groups.google.com/group/android-ndk">public forum</a>. All samples and unit tests - shipped with the NDK succesfully compile with this feature.</p> - </dd> - - <dt>Important bug fixes</dt> - - <dd> - <ul> - <li>Imported shared libraries are now installed by default to the target installation - location (<code>libs/<abi></code>) if <code>APP_MODULES</code> is not defined in - your <code>Application.mk</code>. For example, if a top-level module <code>foo</code> - imports a module <code>bar</code>, then both <code>libfoo.so</code> and - <code>libbar.so</code> are copied to the install location. Previously, only - <code>libfoo.so</code> was copied, unless you listed <code>bar</code> in your - <code>APP_MODULES</code> too. If you define <code>APP_MODULES</code> explicitly, the - behavior is unchanged.</li> - - <li><code>ndk-gdb</code> now works correctly for activities with multiple categories in - their MAIN intent filters.</li> - - <li>Static library imports are now properly transitive. For example, if a top-level - module <code>foo</code> imports static library <code>bar</code> that imports static - library <code>zoo</code>, the <code>libfoo.so</code> will now be linked against both - <code>libbar.a</code> and <code>libzoo.a</code>.</li> - </ul> - </dd> - - <dt>Other changes</dt> - - <dd> - <ul> - <li><code>docs/NATIVE-ACTIVITY.HTML</code>: Fixed typo. The minimum API level should be - 9, not 8 for native activities.</li> - - <li><code>docs/STABLE-APIS.html</code>: Added missing documentation listing EGL as a - supported stable API, starting from API level 9.</li> - - <li><code>download-toolchain-sources.sh</code>: Updated to download the toolchain - sources from <a href="http://android.googlesource.com">android.googlesource.com</a>, - which is the new location for the AOSP servers.</li> - - <li>Added a new C++ support runtime named <code>gabi++</code>. More details about it - are available in the updated <code>docs/CPLUSPLUS-SUPPORT.html</code>.</li> - - <li>Added a new C++ support runtime named <code>gnustl_shared</code> that corresponds - to the shared library version of GNU libstdc++ v3 (GPLv3 license). See more info at - <code>docs/CPLUSPLUS-SUPPORT.html</code></li> - - <li>Added support for RTTI in the STLport C++ runtimes (no support for - exceptions).</li> - - <li>Added support for multiple file extensions in <code>LOCAL_CPP_EXTENSION</code>. For - example, to compile both <code>foo.cpp</code> and <code>bar.cxx</code> as C++ sources, - declare the following: - <pre> -LOCAL_CPP_EXTENSION := .cpp .cxx -</pre> - </li> - - <li>Removed many unwanted exported symbols from the link-time shared system libraries - provided by the NDK. This ensures that code generated with the standalone toolchain - doesn't risk to accidentally depend on a non-stable ABI symbol (e.g. any libgcc.a - symbol that changes each time the toolchain used to build the platform is changed)</li> - - <li>Refreshed the EGL and OpenGLES Khronos headers to support more extensions. Note - that this does <em>not</em> change the NDK ABIs for the corresponding libraries, - because each extension must be probed at runtime by the client application. - - <p>The extensions that are available depend on your actual device and GPU drivers, - not the platform version the device runs on. The header changes simply add new - constants and types to make it easier to use the extensions when they have been - probed with <code>eglGetProcAddress()</code> or <code>glGetProcAddress()</code>. The - following list describes the newly supported extensions:</p> - - <dl> - <dt>GLES 1.x</dt> - - <dd> - <ul> - <li><code>GL_OES_vertex_array_object</code></li> - - <li><code>GL_OES_EGL_image_external</code></li> - - <li><code>GL_APPLE_texture_2D_limited_npot</code></li> - - <li><code>GL_EXT_blend_minmax</code></li> - - <li><code>GL_EXT_discard_framebuffer</code></li> - - <li><code>GL_EXT_multi_draw_arrays</code></li> - - <li><code>GL_EXT_read_format_bgra</code></li> - - <li><code>GL_EXT_texture_filter_anisotropic</code></li> - - <li><code>GL_EXT_texture_format_BGRA8888</code></li> - - <li><code>GL_EXT_texture_lod_bias</code></li> - - <li><code>GL_IMG_read_format</code></li> - - <li><code>GL_IMG_texture_compression_pvrtc</code></li> - - <li><code>GL_IMG_texture_env_enhanced_fixed_function</code></li> - - <li><code>GL_IMG_user_clip_plane</code></li> - - <li><code>GL_IMG_multisampled_render_to_texture</code></li> - - <li><code>GL_NV_fence</code></li> - - <li><code>GL_QCOM_driver_control</code></li> - - <li><code>GL_QCOM_extended_get</code></li> - - <li><code>GL_QCOM_extended_get2</code></li> - - <li><code>GL_QCOM_perfmon_global_mode</code></li> - - <li><code>GL_QCOM_writeonly_rendering</code></li> - - <li><code>GL_QCOM_tiled_rendering</code></li> - </ul> - </dd> - - <dt>GLES 2.0</dt> - - <dd> - <ul> - <li><code>GL_OES_element_index_uint</code></li> - - <li><code>GL_OES_get_program_binary</code></li> - - <li><code>GL_OES_mapbuffer</code></li> - - <li><code>GL_OES_packed_depth_stencil</code></li> - - <li><code>GL_OES_texture_3D</code></li> - - <li><code>GL_OES_texture_float</code></li> - - <li><code>GL_OES_texture_float_linear</code></li> - - <li><code>GL_OES_texture_half_float_linear</code></li> - - <li><code>GL_OES_texture_npot</code></li> - - <li><code>GL_OES_vertex_array_object</code></li> - - <li><code>GL_OES_EGL_image_external</code></li> - - <li><code>GL_AMD_program_binary_Z400</code></li> - - <li><code>GL_EXT_blend_minmax</code></li> - - <li><code>GL_EXT_discard_framebuffer</code></li> - - <li><code>GL_EXT_multi_draw_arrays</code></li> - - <li><code>GL_EXT_read_format_bgra</code></li> - - <li><code>GL_EXT_texture_format_BGRA8888</code></li> - - <li><code>GL_EXT_texture_compression_dxt1</code></li> - - <li><code>GL_IMG_program_binary</code></li> - - <li><code>GL_IMG_read_format</code></li> - - <li><code>GL_IMG_shader_binary</code></li> - - <li><code>GL_IMG_texture_compression_pvrtc</code></li> - - <li><code>GL_IMG_multisampled_render_to_texture</code></li> - - <li><code>GL_NV_coverage_sample</code></li> - - <li><code>GL_NV_depth_nonlinear</code></li> - - <li><code>GL_QCOM_extended_get</code></li> - - <li><code>GL_QCOM_extended_get2</code></li> - - <li><code>GL_QCOM_writeonly_rendering</code></li> - - <li><code>GL_QCOM_tiled_rendering</code></li> - </ul> - </dd> - - <dt>EGL</dt> - - <dd> - <ul> - <li><code>EGL_ANDROID_recordable</code></li> - - <li><code>EGL_NV_system_time</code></li> - </ul> - </dd> - </dl> - </li> - </ul> - </dd> - </dl> - </div> -</div> - - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"><img src= - "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"> - Android NDK, Revision 6b</a> <em>(August 2011)</em> - - <div class="toggleme"> - <p>This release of the NDK does not include any new features compared to r6. The r6b release - addresses the following issues in the r6 release:</p> - <dl> - <dt>Important bug fixes</dt> - <dd> - <ul> - <li>Fixed the build when <code>APP_ABI="armeabi x86"</code> is used for - multi-architecture builds.</li> - <li>Fixed the location of prebuilt STLport binaries in the NDK release package. - A bug in the packaging script placed them in the wrong location.</li> - <li>Fixed <code>atexit()</code> usage in shared libraries with the x86standalone - toolchain.</li> - <li>Fixed <code>make-standalone-toolchain.sh --arch=x86</code>. It used to fail - to copy the proper GNU libstdc++ binaries to the right location.</li> - <li>Fixed the standalone toolchain linker warnings about missing the definition and - size for the <code>__dso_handle</code> symbol (ARM only).</li> - <li>Fixed the inclusion order of <code>$(SYSROOT)/usr/include</code> for x86 builds. - See the <a href="http://code.google.com/p/android/issues/detail?id=18540">bug</a> for - more information.</li> - <li>Fixed the definitions of <code>ptrdiff_t</code> and <code>size_t</code> in - x86-specific systems when they are used with the x86 standalone toolchain.</li> - </ul> - </dd> - </dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"><img src= - "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"> - Android NDK, Revision 6</a> <em>(July 2011)</em> - - <div class="toggleme"> - <p>This release of the NDK includes support for the x86 ABI and other minor changes. - For detailed information describing the changes in this release, read the - <code>CHANGES.HTML</code> document included in the NDK package. - </p> - <dl> - <dt>General notes:</dt> - <dd> - <ul> - <li>Adds support for the x86 ABI, which allows you to generate machine code - that runs on compatible x86-based Android devices. Major features for x86 - include x86-specific toolchains, system headers, libraries and - debugging support. For all of the details regarding x86 support, - see <code>docs/CPU-X86.html</code> in the NDK package. - - <p>By default, code is generated for ARM-based devices, but you can add x86 to your - <code>APP_ABI</code> definition in your <code>Application.mk</code> file to build - for x86 platforms. For example, the following line instructs <code>ndk-build</code> - to build your code for three distinct ABIs:</p> - - <pre>APP_ABI := armeabi armeabi-v7a x86</pre> - - <p>Unless you rely on ARM-based assembly sources, you shouldn't need to touch - your <code>Android.mk</code> files to build x86 machine code.</p> - - </li> - - <li>You can build a standalone x86 toolchain using the <code>--toolchain=x86-4.4.3</code> - option when calling <code>make-standalone-toolchain.sh</code>. See - <code>docs/STANDALONE-TOOLCHAIN.html</code> for more details. - </li> - <li>The new <code>ndk-stack</code> tool lets you translate stack traces in - <code>logcat</code> that are generated by native code. The tool translates - instruction addresses into a readable format that contains things such - as the function, source file, and line number corresponding to each stack frame. - For more information and a usage example, see <code>docs/NDK-STACK.html</code>. - </li> - </ul> - </dd> - <dt>Other changes:</dt> - <dd><code>arm-eabi-4.4.0</code>, which had been deprecated since NDK r5, has been - removed from the NDK distribution.</dd> - - </dl> - </div> - </div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"><img src= - "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"> - Android NDK, Revision 5c</a> <em>(June 2011)</em> - - <div class="toggleme"> - <p>This release of the NDK does not include any new features compared to r5b. The r5c release - addresses the following problems in the r5b release:</p> - <dl> - <dt>Important bug fixes:</dt> - <dd> - <ul> - <li><code>ndk-build</code>: Fixed a rare bug that appeared when trying to perform parallel - builds of debuggable projects.</li> - - <li>Fixed a typo that prevented <code>LOCAL_WHOLE_STATIC_LIBRARIES</code> to work - correctly with the new toolchain and added documentation for this in - <code>docs/ANDROID-MK.html</code>.</li> - - <li>Fixed a bug where code linked against <code>gnustl_static</code> crashed when run on - platform releases older than API level 8 (Android 2.2).</li> - - <li><code>ndk-gdb</code>: Fixed a bug that caused a segmentation fault when debugging Android 3.0 - or newer devices.</li> - - <li><code><android/input.h></code>: Two functions that were introduced in API level - 9 (Android 2.3) were incorrect and are fixed. While this breaks the source API, the - binary interface to the system is unchanged. The incorrect functions were missing a - <code>history_index</code> parameter, and the correct definitions are shown below: -<pre> -float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, - size_t pointer_index, - size_t history_index); - -float AMotionEvent_getHistoricalRawY(const AInputEvent* motion_event, - size_t pointer_index, - size_t history_index); -</pre> - </li> - - <li>Updated the C library ARM binary for API level 9 (Android 2.3) to correctly expose at - link time new functions that were added in that API level (for example, - <code>pthread_rwlock_init</code>).</li> - - </ul> - </dd> - - <dt>Minor improvements and fixes:</dt> - <dd> - <ul> - <li>Object files are now always linked in the order they appear in - <code>LOCAL_SRC_FILES</code>. This was not the case previously because the files were - grouped by source extensions instead.</li> - - <li>When <code>import-module</code> fails, it now prints the list of directories that - were searched. This is useful to check that the <code>NDK_MODULE_PATH</code> definition - used by the build system is correct.</li> - - <li>When <code>import-module</code> succeeds, it now prints the directory where the - module was found to the log (visible with <code>NDK_LOG=1</code>).</li> - - <li>Increased the build speed of debuggable applications when there is a very large number - of include directories in the project.</li> - - <li><code>ndk-gdb</code>: Better detection of <code>adb shell</code> failures and improved - error messages.</li> - - <li><code><pthread.h></code>: Fixed the definition of - <code>PTHREAD_RWLOCK_INITIALIZER</code> for API level 9 (Android 2.3) and higher.</li> - - <li>Fixed an issue where a module could import itself, resulting in an infinite loop in - GNU Make.</li> - - <li>Fixed a bug that caused the build to fail if <code>LOCAL_ARM_NEON</code> was set to - true (typo in <code>build/core/build-binary.mk</code>).</li> - - <li>Fixed a bug that prevented the compilation of </code>.s</code> assembly files - (<code>.S</code> files were okay).</li> - </ul> - </dd> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" - onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png" - class="toggle-img" - height="9px" - width="9px" /> Android NDK, Revision 5b</a> <em>(January 2011)</em> - - <div class="toggleme"> - <p>This release of the NDK does not include any new features compared to r5. The r5b release addresses the - following problems in the r5 release: - </p> - <ul> - <li>The r5 binaries required glibc 2.11, but the r5b binaries are generated with a special - toolchain that targets glibc 2.7 or higher instead. The Linux toolchain binaries now run on Ubuntu 8.04 or higher. </li> - <li>Fixes a compiler bug in the arm-linux-androideabi-4.4.3 toolchain. - The previous binary generated invalid thumb instruction sequences when - dealing with signed chars.</li> - <li>Adds missing documentation for the - "gnustl_static" value for APP_STL, that allows you to link against - a static library version of GNU libstdc++. </li> - <li>The following <code>ndk-build</code> issues are fixed: - <ul> - <li>A bug that created inconsistent dependency files when a - compilation error occured on Windows. This prevented a proper build after - the error was fixed in the source code.</li> - <li>A Cygwin-specific bug where using very short paths for - the Android NDK installation or the project path led to the - generation of invalid dependency files. This made incremental builds - impossible.</li> - <li>A typo that prevented the cpufeatures library from working correctly - with the new NDK toolchain.</li> - <li>Builds in Cygwin are faster by avoiding calls to <code>cygpath -m</code> - from GNU Make for every source or object file, which caused problems - with very large source trees. In case this doesn't work properly, define <code>NDK_USE_CYGPATH=1</code> in your - environment to use <code>cygpath -m</code> again.</li> - <li>The Cygwin installation now notifies the user of invalid installation paths that contain spaces. Previously, an invalid path - would output an error that complained about an incorrect version of GNU Make, even if the right one was installed. - </ul> - </li> - <li>Fixed a typo that prevented the <code>NDK_MODULE_PATH</code> environment variable from working properly when - it contained multiple directories separated with a colon. </li> - <li>The <code>prebuilt-common.sh</code> script contains fixes to check the compiler for 64-bit - generated machine code, instead of relying on the host tag, which - allows the 32-bit toolchain to rebuild properly on Snow Leopard. The toolchain rebuild scripts now also support - using a 32-bit host toolchain.</li> - <li>A missing declaration for <code>INET_ADDRSTRLEN</code> was added to <code><netinet/in.h></code>.</li> - <li>Missing declarations for <code>IN6_IS_ADDR_MC_NODELOCAL</code> and <code>IN6_IS_ADDR_MC_GLOBAL</code> were added to <code><netinet/in6.h></code>.</li> - <li>'asm' was replaced with '__asm__' in <code><asm/byteorder.h></code> to allow compilation with <code>-std=c99</code>.</li> - </ul> - </div> - </div> - -<div class="toggleable closed"> - <a href="#" - onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png" - class="toggle-img" - height="9px" - width="9px" /> Android NDK, Revision 5</a> <em>(December 2010)</em> - - <div class="toggleme"> - <p>This release of the NDK includes many new APIs, most of which are introduced to - support the development of games and similar applications that make extensive use - of native code. Using the APIs, developers have direct native access to events, audio, - graphics and window management, assets, and storage. Developers can also implement the - Android application lifecycle in native code with help from the new - {@link android.app.NativeActivity} class. For detailed information describing the changes in this - release, read the <code>CHANGES.HTML</code> document included in the downloaded NDK package. - </p> - <dl> - <dt>General notes:</dt> - <dd> - <ul> - <li>Adds support for native activities, which allows you to implement the - Android application lifecycle in native code.</li> - - <li>Adds native support for the following: - - <ul> - - <li>Input subsystem (such as the keyboard and touch screen)</li> - - <li>Access to sensor data (accelerometer, compass, gyroscope, etc).</li> - - <li>Event loop APIs to wait for things such as input and sensor events.</li> - - <li>Window and surface subsystem</li> - - <li>Audio APIs based on the OpenSL ES standard that support playback and recording - as well as control over platform audio effects</li> - - <li>Access to assets packaged in an <code>.apk</code> file.</li> - - </ul> - </li> - - <li>Includes a new toolchain (based on GCC 4.4.3), which generates better code, and can also now - be used as a standalone cross-compiler, for people who want to build their stuff with - <code>./configure && make</code>. See - docs/STANDALONE-TOOLCHAIN.html for the details. The binaries for GCC 4.4.0 are still provided, - but the 4.2.1 binaries were removed.</li> - - <li>Adds support for prebuilt static and shared libraries (docs/PREBUILTS.html) and module - exports and imports to make sharing and reuse of third-party modules much easier - (docs/IMPORT-MODULE.html explains why).</li> - - <li>Provides a default C++ STL implementation (based on STLport) as a helper module. It can be used either - as a static or shared library (details and usage examples are in sources/android/stlport/README). Prebuilt - binaries for STLport (static or shared) and GNU libstdc++ (static only) are also provided if you choose to - compile against those libraries instead of the default C++ STL implementation. - C++ Exceptions and RTTI are not supported in the default STL implementation. For more information, see - docs/CPLUSPLUS-SUPPORT.HTML.</li> - - <li>Includes improvements to the <code>cpufeatures</code> helper library that improves reporting - of the CPU type (some devices previously reported ARMv7 CPU when the device really was an ARMv6). We - recommend developers that use this library to rebuild their applications then - upload to Google Play to benefit from the improvements.</li> - - <li>Adds an EGL library that lets you create and manage OpenGL ES textures and - services.</li> - - <li>Adds new sample applications, <code>native-plasma</code> and <code>native-activity</code>, - to demonstrate how to write a native activity.</li> - - <li>Includes many bugfixes and other small improvements; see docs/CHANGES.html for a more - detailed list of changes.</li> - </ul> - </dd> - </dl> - </div> - </div> - - <div class="toggleable closed"> - <a href="#" - onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png" - class="toggle-img" - height="9px" - width="9px" /> Android NDK, Revision 4b</a> <em>(June 2010)</em> - - <div class="toggleme"> - <dl> - <dt>NDK r4b notes:</dt> - - <dd> - <p>Includes fixes for several issues in the NDK build and debugging scripts — if - you are using NDK r4, we recommend downloading the NDK r4b build. For detailed - information describing the changes in this release, read the CHANGES.TXT document - included in the downloaded NDK package.</p> - </dd> - </dl> - - <dl> - <dt>General notes:</dt> - - <dd> - <ul> - <li>Provides a simplified build system through the new <code>ndk-build</code> build - command.</li> - - <li>Adds support for easy native debugging of generated machine code on production - devices through the new <code>ndk-gdb</code> command.</li> - - <li>Adds a new Android-specific ABI for ARM-based CPU architectures, - <code>armeabi-v7a</code>. The new ABI extends the existing <code>armeabi</code> ABI to - include these CPU instruction set extensions: - - <ul> - <li>Thumb-2 instructions</li> - - <li>VFP hardware FPU instructions (VFPv3-D16)</li> - - <li>Optional support for ARM Advanced SIMD (NEON) GCC intrinsics and VFPv3-D32. - Supported by devices such as Verizon Droid by Motorola, Google Nexus One, and - others.</li> - </ul> - </li> - - <li>Adds a new <code>cpufeatures</code> static library (with sources) that lets your - app detect the host device's CPU features at runtime. Specifically, applications can - check for ARMv7-A support, as well as VFPv3-D32 and NEON support, then provide separate - code paths as needed.</li> - - <li>Adds a sample application, <code>hello-neon</code>, that illustrates how to use the - <code>cpufeatures</code> library to check CPU features and then provide an optimized - code path using NEON instrinsics, if supported by the CPU.</li> - - <li>Lets you generate machine code for either or both of the instruction sets supported - by the NDK. For example, you can build for both ARMv5 and ARMv7-A architectures at the - same time and have everything stored to your application's final - <code>.apk</code>.</li> - - <li>To ensure that your applications are available to users only if their devices are - capable of running them, Google Play now filters applications based on the - instruction set information included in your application — no action is needed on - your part to enable the filtering. Additionally, the Android system itself also checks - your application at install time and allows the installation to continue only if the - application provides a library that is compiled for the device's CPU architecture.</li> - - <li>Adds support for Android 2.2, including a new stable API for accessing the pixel - buffers of {@link android.graphics.Bitmap} objects from native code.</li> - </ul> - </dd> - </dl> - </div> - </div> - - <div class="toggleable closed"> - <a href="#" - onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png" - class="toggle-img" - height="9px" - width="9px" /> Android NDK, Revision 3</a> <em>(March 2010)</em> - - <div class="toggleme"> - <dl> - <dt>General notes:</dt> - - <dd> - <ul> - <li>Adds OpenGL ES 2.0 native library support.</li> - - <li>Adds a sample application,<code>hello-gl2</code>, that illustrates the use of - OpenGL ES 2.0 vertex and fragment shaders.</li> - - <li>The toolchain binaries have been refreshed for this release with GCC 4.4.0, which - should generate slightly more compact and efficient machine code than the previous one - (4.2.1). The NDK also still provides the 4.2.1 binaries, which you can optionally use - to build your machine code.</li> - </ul> - </dd> - </dl> - </div> - </div> - - <div class="toggleable closed"> - <a href="#" - onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png" - class="toggle-img" - height="9px" - width="9px" /> Android NDK, Revision 2</a> <em>(September 2009)</em> - - <div class="toggleme"> - <p>Originally released as "Android 1.6 NDK, Release 1".</p> - - <dl> - <dt>General notes:</dt> - - <dd> - <ul> - <li>Adds OpenGL ES 1.1 native library support.</li> - - <li>Adds a sample application, <code>san-angeles</code>, that renders 3D graphics - through the native OpenGL ES APIs, while managing activity lifecycle with a {@link - android.opengl.GLSurfaceView} object.</li> - </ul> - </dd> - </dl> - </div> - </div> - - <div class="toggleable closed"> - <a href="#" - onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png" - class="toggle-img" - height="9px" - width="9px" /> Android NDK, Revision 1</a> <em>(June 2009)</em> - - <div class="toggleme"> - <p>Originally released as "Android 1.5 NDK, Release 1".</p> - - <dl> - <dt>General notes:</dt> - - <dd> - <ul> - <li>Includes compiler support (GCC) for ARMv5TE instructions, including Thumb-1 - instructions.</li> - - <li>Includes system headers for stable native APIs, documentation, and sample - applications.</li> - </ul> - </dd> - </dl> - </div> - </div> - - <h2 id="installing">Installing the NDK</h2> - <p>Installing the NDK on your development computer is straightforward and involves extracting the - NDK from its download package.</p> - - <p>Before you get started make sure that you have downloaded the latest <a href= - "{@docRoot}sdk/index.html">Android SDK</a> and upgraded your applications and environment as - needed. The NDK is compatible with older platform versions but not older versions of the SDK tools. - Also, take a moment to review the <a href="{@docRoot}sdk/ndk/overview.html#reqs">System and -Software Requirements</a> - for the NDK, if you haven't already.</p> - - <p>To install the NDK, follow these steps:</p> - - <ol> - <li>From the table at the top of this page, select the NDK package that is appropriate for your - development computer and download the package.</li> - - <li>Uncompress the NDK download package using tools available on your computer. When - uncompressed, the NDK files are contained in a directory called - <code>android-ndk-<version></code>. You can rename the NDK directory if necessary and you - can move it to any location on your computer. This documentation refers to the NDK directory as - <code><ndk></code>.</li> - </ol> - - <p>You are now ready to start working with the NDK.</p> - - <h2 id="gettingstarted">Getting Started with the NDK</h2> - - <p>Once you've installed the NDK successfully, take a few minutes to read the documentation - included in the NDK. You can find the documentation in the <code><ndk>/docs/</code> - directory. In particular, please read the OVERVIEW.HTML document completely, so that you - understand the intent of the NDK and how to use it.</p> - - <p>If you used a previous version of the NDK, take a moment to review the list of NDK changes in - the CHANGES.HTML document.</p> - - <p>Here's the general outline of how you work with the NDK tools:</p> - - <ol> - <li>Place your native sources under <code><project>/jni/...</code></li> - - <li>Create <code><project>/jni/Android.mk</code> to describe your native sources to the - NDK build system</li> - - <li>Optional: Create <code><project>/jni/Application.mk</code>.</li> - - <li>Build your native code by running the 'ndk-build' script from your project's directory. It - is located in the top-level NDK directory: - <pre class="no-pretty-print">cd <project> -<ndk>/ndk-build -</pre> - - <p>The build tools copy the stripped, shared libraries needed by your application to the - proper location in the application's project directory.</p> - </li> - - <li>Finally, compile your application using the SDK tools in the usual way. The SDK build tools - will package the shared libraries in the application's deployable <code>.apk</code> file.</li> - </ol> - - <p>For complete information on all of the steps listed above, please see the documentation - included with the NDK package.</p> - - <h2 id="samples">Sample Applications</h2> - - <p>The NDK includes sample Android applications that illustrate how to use native code in your - Android applications. For more information, see <a href= - "{@docRoot}sdk/ndk/overview.html#samples">Sample Applications</a>.</p> - - <h2 id="forum">Discussion Forum and Mailing List</h2> - - <p>If you have questions about the NDK or would like to read or contribute to discussions about - it, please visit the <a href="http://groups.google.com/group/android-ndk">android-ndk</a> group - and mailing list.</p> diff --git a/docs/html/sdk/ndk/overview.jd b/docs/html/sdk/ndk/overview.jd deleted file mode 100644 index d2a9746..0000000 --- a/docs/html/sdk/ndk/overview.jd +++ /dev/null @@ -1,559 +0,0 @@ -page.title=What is the NDK? -@jd:body - - <div id="qv-wrapper"> - <div id="qv"> - <h2>In this document</h2> - - <ol> - <li><a href="#choosing">When to Develop in Native Code</a></li> - <li> - <a href="#contents">Contents of the NDK</a> - <ol> - <li><a href="#tools">Development tools</a></li> - - <li><a href="#docs">Documentation</a></li> - - <li><a href="#samples">Sample applications</a></li> - </ol> - </li> - <li><a href="#reqs">System and Software Requirements</a></li> - </ol> - </div> - </div> - - <p>The Android NDK is a toolset that lets you embed components that make use of native code in - your Android applications.</p> - - <p>Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts - of your applications using native-code languages such as C and C++. This can provide benefits to - certain classes of applications, in the form of reuse of existing code and in some cases - increased speed.</p> - - <p>The NDK provides:</p> - - <ul> - <li>A set of tools and build files used to generate native code libraries from C and C++ - sources</li> - - <li>A way to embed the corresponding native libraries into an application package file - (<code>.apk</code>) that can be deployed on Android devices</li> - - <li>A set of native system headers and libraries that will be supported in all future versions - of the Android platform, starting from Android 1.5. Applications that use native activities - must be run on Android 2.3 or later.</li> - - <li>Documentation, samples, and tutorials</li> - </ul> - - <p>The latest release of the NDK supports the following instruction sets:</p> - - <ul> - <li>ARMv5TE (including Thumb-1 instructions)</li> - - <li>ARMv7-A (including Thumb-2 and VFPv3-D16 instructions, with optional support for - NEON/VFPv3-D32 instructions)</li> - - <li>x86 instructions (see CPU-ARCH-ABIS.HTML for more information)</li> - </ul> - - <p>ARMv5TE machine code will run on all ARM-based Android devices. ARMv7-A will run only on - devices such as the Verizon Droid or Google Nexus One that have a compatible CPU. The main - difference between the two instruction sets is that ARMv7-A supports hardware FPU, Thumb-2, and - NEON instructions. You can target either or both of the instruction sets — ARMv5TE is the - default, but switching to ARMv7-A is as easy as adding a single line to the application's - <code>Application.mk</code> file, without needing to change anything else in the file. You can also build for - both architectures at the same time and have everything stored in the final <code>.apk</code>. - Complete information is provided in the CPU-ARCH-ABIS.HTML in the NDK package.</p> - - <p>The NDK provides stable headers for libc (the C library), libm (the Math library), OpenGL ES - (3D graphics library), the JNI interface, and other libraries, as listed in the <a href= - "#tools">Development Tools</a> section.</p> - - <h2 id="choosing">When to Develop in Native Code</h2> - - <p>The NDK will not benefit most applications. As a developer, you need to balance its benefits - against its drawbacks; notably, using native code does not result in an automatic performance - increase, but always increases application complexity. In general, you should only use native - code if it is essential to your application, not just because you prefer to program in C/C++.</p> - - <p>Typical good candidates for the NDK are self-contained, CPU-intensive operations that don't - allocate much memory, such as signal processing, physics simulation, and so on. Simply re-coding - a method to run in C usually does not result in a large performance increase. When examining - whether or not you should develop in native code, think about your requirements and see if the - Android framework APIs provide the functionality that you need. The NDK can, however, can be an - effective way to reuse a large corpus of existing C/C++ code.</p> - - <p>The Android framework provides two ways to use native code:</p> - - <ul> - <li>Write your application using the Android framework and use JNI to access the APIs provided - by the Android NDK. This technique allows you to take advantage of the convenience of the - Android framework, but still allows you to write native code when necessary. You can install - applications that use native code through the JNI on devices that run Android 1.5 or - later.</li> - - <li> - <p>Write a native activity, which allows you to implement the lifecycle callbacks in native - code. The Android SDK provides the {@link android.app.NativeActivity} class, which is a convenience class that notifies your - native code of any activity lifecycle callbacks (<code>onCreate()</code>, <code>onPause()</code>, - <code>onResume()</code>, etc). You can implement the callbacks in your native code to handle - these events when they occur. Applications that use native activities must be run on Android - 2.3 (API Level 9) or later.</p> - - <p>You cannot access features such as Services and Content Providers natively, so if you want - to use them or any other framework API, you can still write JNI code to do so.</p> - </li> - </ul> - - <h2 id="contents">Contents of the NDK</h2>The NDK contains the APIs, documentation, and sample - applications that help you write your native code. - - <h3 id="tools">Development tools</h3> - - <p>The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that can generate - native ARM binaries on Linux, OS X, and Windows (with Cygwin) platforms.</p> - - <p>It provides a set of system headers for stable native APIs that are guaranteed to be supported - in all later releases of the platform:</p> - - <ul> - <li>libc (C library) headers</li> - - <li>libm (math library) headers</li> - - <li>JNI interface headers</li> - - <li>libz (Zlib compression) headers</li> - - <li>liblog (Android logging) header</li> - - <li>OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers</li> - - <li>libjnigraphics (Pixel buffer access) header (for Android 2.2 and above).</li> - - <li>A Minimal set of headers for C++ support</li> - - <li>OpenSL ES native audio libraries</li> - - <li>Android native application APIS</li> - </ul> - - <p>The NDK also provides a build system that lets you work efficiently with your sources, without - having to handle the toolchain/platform/CPU/ABI details. You create very short build files to - describe which sources to compile and which Android application will use them — the build - system compiles the sources and places the shared libraries directly in your application - project.</p> - - <p class="caution"><strong>Important:</strong> With the exception of the libraries listed above, - native system libraries in the Android platform are <em>not</em> stable and may change in future - platform versions. Your applications should <em>only</em> make use of the stable native system - libraries provided in this NDK.</p> - - <h3 id="docs">Documentation</h3> - - <p>The NDK package includes a set of documentation that describes the capabilities of the NDK and - how to use it to create shared libraries for your Android applications. In this release, the - documentation is provided only in the downloadable NDK package. You can find the documentation in - the <code><ndk>/docs/</code> directory. Included are these files:</p> - - <ul> - <li> - INSTALL.HTML — describes how to install the NDK and configure it for your host - system</li> - - <li>OVERVIEW.HTML — provides an overview of the NDK capabilities and usage</li> - - <li>ANDROID-MK.HTML — describes the use of the Android.mk file, which defines the native - sources you want to compile</li> - - <li>APPLICATION-MK.HTML — describes the use of the Application.mk file, which describes - the native sources required by your Android application</li> - <li>CPLUSPLUS-SUPPORT.HTML — describes the C++ support provided in the Android NDK</li> - <li>CPU-ARCH-ABIS.HTML — a description of supported CPU architectures and how to target - them.</li> - - <li>CPU-FEATURES.HTML — a description of the <code>cpufeatures</code> static library that - lets your application code detect the target device's CPU family and the optional features at - runtime.</li> - - <li>CPU-ARM-NEON.HTML — a description of how to build with optional ARM NEON / VFPv3-D32 - instructions.</li> - - <li>CHANGES.HTML — a complete list of changes to the NDK across all releases.</li> - - <li>DEVELOPMENT.HTML — describes how to modify the NDK and generate release packages for it</li> - - <li>HOWTO.HTML — information about common tasks associated with NDK development</li> - - <li>IMPORT-MODULE.HTML — describes how to share and reuse modules</li> - - <li>LICENSES.HTML — information about the various open source licenses that govern the Android NDK</li> - - <li>NATIVE-ACTIVITY.HTML — describes how to implement native activities</li> - - <li>NDK-BUILD.HTML — describes the usage of the ndk-build script</li> - - <li>NDK-GDB.HTML — describes how to use the native code debugger</li> - - <li>PREBUILTS.HTML — information about how shared and static prebuilt libraries work </li> - - <li>STANDALONE-TOOLCHAIN.HTML — describes how to use Android NDK toolchain as a standalone - compiler (still in beta).</li> - - <li>SYSTEM-ISSUES.HTML — known issues in the Android system images that you should be - aware of, if you are developing using the NDK.</li> - - <li>STABLE-APIS.HTML — a complete list of the stable APIs exposed by headers in the - NDK.</li> - - </ul> - - <p>Additionally, the package includes detailed information about the "bionic" C library provided - with the Android platform that you should be aware of, if you are developing using the NDK. You - can find the documentation in the <code><ndk>/docs/system/libc/</code> directory:</p> - - <ul> - <li>OVERVIEW.HTML — provides an overview of the "bionic" C library and the features it - offers.</li> - </ul> - - <h3 id="samples">Sample applications</h3> - -<p>The NDK includes sample applications that illustrate how to use native code in your Android - applications:</p> - - <ul> - <li><code>hello-jni</code> — a simple application that loads a string from a native - method implemented in a shared library and then displays it in the application UI.</li> - - <li><code>two-libs</code> — a simple application that loads a shared library dynamically - and calls a native method provided by the library. In this case, the method is implemented in a - static library imported by the shared library.</li> - - <li><code>san-angeles</code> — a simple application that renders 3D graphics through the - native OpenGL ES APIs, while managing activity lifecycle with a {@link - android.opengl.GLSurfaceView} object.</li> - - <li><code>hello-gl2</code> — a simple application that renders a triangle using OpenGL ES - 2.0 vertex and fragment shaders.</li> - - <li><code>hello-neon</code> — a simple application that shows how to use the - <code>cpufeatures</code> library to check CPU capabilities at runtime, then use NEON intrinsics - if supported by the CPU. Specifically, the application implements two versions of a tiny - benchmark for a FIR filter loop, a C version and a NEON-optimized version for devices that - support it.</li> - - <li><code>bitmap-plasma</code> — a simple application that demonstrates how to access the - pixel buffers of Android {@link android.graphics.Bitmap} objects from native code, and uses - this to generate an old-school "plasma" effect.</li> - - <li><code>native-activity</code> — a simple application that demonstrates how to use the - native-app-glue static library to create a native activity</li> - - <li><code>native-plasma</code> — a version of bitmap-plasma implemented with a native - activity.</li> - </ul> - - <p>For each sample, the NDK includes the corresponding C source code and the necessary Android.mk - and Application.mk files. There are located under <code><ndk>/samples/<name>/</code> - and their source code can be found under <code><ndk>/samples/<name>/jni/</code>.</p> - - <p>You can build the shared libraries for the sample apps by going into - <code><ndk>/samples/<name>/</code> then calling the <code>ndk-build</code> command. - The generated shared libraries will be located under - <code><ndk>/samples/<name>/libs/armeabi/</code> for (ARMv5TE machine code) and/or - <code><ndk>/samples/<name>/libs/armeabi-v7a/</code> for (ARMv7 machine code).</p> - - <p>Next, build the sample Android applications that use the shared libraries:</p> - - <ul> - <li>If you are developing in Eclipse with ADT, use the New Project Wizard to create a new - Android project for each sample, using the "Import from Existing Source" option and importing - the source from <code><ndk>/samples/<name>/</code>. Then, set up an AVD, - if necessary, and build/run the application in the emulator.</li> - - <li>If you are developing with Ant, use the <code>android</code> tool to create the build file - for each of the sample projects at <code><ndk>/samples/<name>/</code>. - Then set up an AVD, if necessary, build your project in the usual way, and run it in the - emulator.</li> - - </ul> - - <p>For more information about developing with the Android SDK tools and what - you need to do to create, build, and run your applications, see - the <a href="{@docRoot}guide/developing/index.html">Overview</a> - section for developing on Android.</p> - - <h4 id="hello-jni">Exploring the hello-jni Sample</h4> - - <p>The hello-jni sample is a simple demonstration on how to use JNI from an Android application. - The HelloJni activity receives a string from a simple C function and displays it in a - TextView.</p> - - <p>The main components of the sample include:</p> - - <ul> - <li>The familiar basic structure of an Android application (an <code>AndroidManifest.xml</code> - file, a <code>src/</code> and <code>res</code> directories, and a main activity)</li> - - <li>A <code>jni/</code> directory that includes the implemented source file for the native code - as well as the Android.mk file</li> - - <li>A <code>tests/</code> directory that contains unit test code.</li> - </ul> - - <ol> - <li>Create a new project in Eclipse from the existing sample source or use the - <code>android</code> tool to update the project so it generates a build.xml file that you can - use to build the sample. - - <ul> - <li>In Eclipse: - - <ol type="a"> - <li>Click <strong>File > New Android Project...</strong></li> - - <li>Select the <strong>Create project from existing source</strong> radio button.</li> - - <li>Select any API level above Android 1.5.</li> - - <li>In the <strong>Location</strong> field, click <strong>Browse...</strong> and select - the <code><ndk-root>/samples/hello-jni</code> directory.</li> - - <li>Click <strong>Finish</strong>.</li> - </ol> - </li> - - <li>On the command line: - - <ol type="a"> - <li>Change to the <code><ndk-root>/samples/hello-jni</code> directory.</li> - - <li>Run the following command to generate a build.xml file: - <pre class="no-pretty-print">android update project -p . -s</pre> - </li> - </ol> - </li> - </ul> - </li> - - <li>Compile the native code using the <code>ndk-build</code> command. - <pre class="no-pretty-print"> -cd <ndk-root>/samples/hello-jni -<ndk_root>/ndk-build -</pre> - </li> - - <li>Build and install the application as you would a normal Android application. If you are - using Eclipse, run the application to build and install it on a device. If you are using Ant, - run the following commands from the project directory: - <pre class="no-pretty-print"> -ant debug -adb install bin/HelloJni-debug.apk -</pre> - </li> - </ol> - - <p>When you run the application on the device, the string <code>Hello JNI</code> should appear on - your device. You can explore the rest of the samples that are located in the - <code><ndk-root>/samples</code> directory for more examples on how to use the JNI.</p> - - <h4 id="native-activity">Exploring the native-activity Sample Application</h4> - - <p>The native-activity sample provided with the Android NDK demonstrates how to use the - android_native_app_glue static library. This static library makes creating a native activity - easier by providing you with an implementation that handles your callbacks in another thread, so - you do not have to worry about them blocking your main UI thread. The main parts of the sample - are described below:</p> - - <ul> - <li>The familiar basic structure of an Android application (an <code>AndroidManifest.xml</code> - file, a <code>src/</code> and <code>res</code> directories). The AndroidManifest.xml declares - that the application is native and specifies the .so file of the native activity. See {@link - android.app.NativeActivity} for the source or see the - <code><ndk_root>/platforms/samples/native-activity/AndroidManifest.xml</code> file.</li> - - <li>A <code>jni/</code> directory contains the native activity, main.c, which uses the - <code>android_native_app_glue.h</code> interface to implement the activity. The Android.mk that - describes the native module to the build system also exists here.</li> - </ul> - - <p>To build this sample application:</p> - - <ol> - <li>Create a new project in Eclipse from the existing sample source or use the - <code>android</code> tool to update the project so it generates a build.xml file that you can - use to build the sample. - - <ul> - <li>In Eclipse: - - <ol type="a"> - <li>Click <strong>File > New Android Project...</strong></li> - - <li>Select the <strong>Create project from existing source</strong> radio button.</li> - - <li>Select any API level above Android 2.3.</li> - - <li>In the <strong>Location</strong> field, click <strong>Browse...</strong> and select - the <code><ndk-root>/samples/native-activity</code> directory.</li> - - <li>Click <strong>Finish</strong>.</li> - </ol> - </li> - - <li>On the command line: - - <ol type="a"> - <li>Change to the <code><ndk-root>/samples/native-activity</code> directory.</li> - - <li>Run the following command to generate a build.xml file: - <pre class="no-pretty-print"> -android update project -p . -s -</pre> - </li> - </ol> - </li> - </ul> - </li> - - <li>Compile the native code using the <code>ndk-build</code> command. - <pre class="no-pretty-print"> -cd <ndk-root>/platforms/samples/android-9/samples/native-activity -<ndk_root>/ndk-build -</pre> - </li> - - <li>Build and install the application as you would a normal Android application. If you are - using Eclipse, run the application to build and install it on a device. If you are using Ant, - run the following commands in the project directory, then run the application on the device: - <pre class="no-pretty-print"> -ant debug -adb install bin/NativeActivity-debug.apk -</pre> - </li> - </ol> - - - <h2 id="reqs">System and Software Requirements</h2> - - <p>The sections below describe the system and software requirements for using the Android NDK, as - well as platform compatibility considerations that affect appplications using libraries produced - with the NDK.</p> - - <h4>The Android SDK</h4> - - <ul> - <li>A complete Android SDK installation (including all dependencies) is required.</li> - - <li>Android 1.5 SDK or later version is required.</li> - </ul> - - <h4>Supported operating systems</h4> - - <ul> - <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li> - - <li>Mac OS X 10.4.8 or later (x86 only)</li> - - <li>Linux (32 or 64-bit; Ubuntu 8.04, or other Linux distributions using GLibc 2.7 or -later)</li> - </ul> - - <h4>Required development tools</h4> - - <ul> - <li>For all development platforms, GNU Make 3.81 or later is required. Earlier versions of GNU - Make might work but have not been tested.</li> - - <li>A recent version of awk (either GNU Awk or Nawk) is also required.</li> - - <li>For Windows, <a href="http://www.cygwin.com">Cygwin</a> 1.7 or higher is required. The NDK - will <em>not</em> work with Cygwin 1.5 installations.</li> - </ul> - - <h4>Android platform compatibility</h4> - - <ul> - <li>The native libraries created by the Android NDK can only be used on devices running the - Android 1.5 platform version or later. This is due to toolchain and ABI related changes that - make the native libraries incompatible with 1.0 and 1.1 system images.</li> - - <li>For this reason, you should use native libraries produced with the NDK in applications that - are deployable to devices running the Android 1.5 platform version or later.</li> - - <li>To ensure compatibility, an application using a native library produced with the NDK - <em>must</em> declare a <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code> - <uses-sdk></code></a> element in its manifest file, with an - <code>android:minSdkVersion</code> attribute value of "3" or higher. For example: - <pre style="margin:1em;"> -<manifest> - <uses-sdk android:minSdkVersion="3" /> - ... -</manifest> -</pre> - </li> - - <li>If you use this NDK to create a native library that uses the OpenGL ES APIs, the - application containing the library can be deployed only to devices running the minimum platform - versions described in the table below. To ensure compatibility, make sure that your application - declares the proper <code>android:minSdkVersion</code> attribute value, as given in the - table.</li> - - <li style="list-style: none; display: inline"> - <table style="margin:1em;"> - <tr> - <th>OpenGL ES Version Used</th> - - <th>Compatible Android Platform(s)</th> - - <th>Required uses-sdk Attribute</th> - </tr> - - <tr> - <td>OpenGL ES 1.1</td> - - <td>Android 1.6 and higher</td> - - <td><code>android:minSdkVersion="4"</code></td> - </tr> - - <tr> - <td>OpenGL ES 2.0</td> - - <td>Android 2.0 and higher</td> - - <td><code>android:minSdkVersion="5"</code></td> - </tr> - </table> - - <p>For more information about API Level and its relationship to Android platform versions, - see <a href="{@docRoot}guide/appendix/api-levels.html">Android API Levels</a>.</p> - </li> - - <li>Additionally, an application using the OpenGL ES APIs should declare a - <code><uses-feature></code> element in its manifest, with an - <code>android:glEsVersion</code> attribute that specifies the minimum OpenGl ES version - required by the application. This ensures that Google Play will show your application only - to users whose devices are capable of supporting your application. For example: - <pre style="margin:1em;"> -<manifest> -<!-- Declare that the application uses the OpenGL ES 2.0 API and is designed - to run only on devices that support OpenGL ES 2.0 or higher. --> - <uses-feature android:glEsVersion="0x00020000" /> - ... -</manifest> -</pre> - - <p>For more information, see the <a href= - "{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code></a> - documentation.</p> - </li> - - <li>If you use this NDK to create a native library that uses the API to access Android {@link - android.graphics.Bitmap} pixel buffers or utilizes native activities, the application - containing the library can be deployed only to devices running Android 2.2 (API level 8) or - higher. To ensure compatibility, make sure that your application declares <code><uses-sdk - android:minSdkVersion="8" /></code> attribute value in its manifest.</li> - </ul> diff --git a/docs/html/sdk/oem-usb.jd b/docs/html/sdk/oem-usb.jd deleted file mode 100644 index 88d66dd..0000000 --- a/docs/html/sdk/oem-usb.jd +++ /dev/null @@ -1,324 +0,0 @@ -page.title=OEM USB Drivers -@jd:body - -<div id="qv-wrapper"> -<div id="qv"> - <h2>In this document</h2> - <ol> - <li><a href="#InstallingDriver">Installing a USB Driver</a> - <ol> - <li><a href="#Win7">Windows 7</a></li> - <li><a href="#WinXp">Windows XP</a></li> - <li><a href="#WinVista">Windows Vista</a></li> - </ol> - </li> - <li><a href="#Drivers">OEM Drivers</a></li> - </ol> - - <h2>See also</h2> - <ol> - <li><a href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a></li> - <li><a href="{@docRoot}sdk/win-usb.html">Google USB Driver</a></li> - </ol> -</div> -</div> - -<p>If you are developing on Windows and would like to connect an Android-powered device -to test your applications, then you need to install the appropriate USB driver. This document -provides links to the web sites for several original equipment manufacturers (OEMs), -where you can download the appropriate USB driver for your device. However, this list is -not exhaustive for all available Android-powered devices.</p> - -<p>If you're developing on Mac OS X or Linux, then you probably don't need to install a USB driver. -To start developing with your device, read <a -href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a>.</p> - -<p class="note"><strong>Note:</strong> If your device is one of the Android Developer Phones -(ADP), a Nexus One, or a Nexus S, then you need -the <a href="{@docRoot}sdk/win-usb.html">Google USB Driver</a>, instead of an OEM driver. The Galaxy -Nexus driver, however, is distributed by <a -href="http://www.samsung.com/us/support/downloads/verizon-wireless/SCH-I515MSAVZW">Samsung</a> -(listed as model SCH-I515).</p> - - -<h2 id="InstallingDriver">Installing a USB Driver</h2> - -<p>First, find the appropriate driver for your device from the <a href="#Drivers">OEM drivers</a> -table below.</p> - -<p>Once you've downloaded your USB driver, follow the instructions below to install or upgrade the -driver, based on your version of Windows and whether you're installing for the first time -or upgrading an existing driver.</p> - -<p class="note"><strong>Tip:</strong> When you finish the USB driver installation, -see <a -href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a> for -other important information about using an Android-powered device for -development.</p> - -<ol class="nolist"> - <li><a href="#Win7">Windows 7</a></li> - <li><a href="#WinXp">Windows XP</a></li> - <li><a href="#WinVista">Windows Vista</a></li> -</ol> - - -<p class="caution"><strong>Caution:</strong> -You may make changes to <code>android_winusb.inf</code> file found inside -<code>usb_driver\</code> (for example, to add support for other devices), -however, this will lead to security warnings when you install or upgrade the -driver. Making any other changes to the driver files may break the installation -process.</p> - - -<h3 id="Win7">Windows 7</h3> - - -<p>To install the Android USB driver on Windows 7 for the first time:</p> -<ol> - <li>Connect your Android-powered device to your computer's USB port.</li> - <li>Right-click on <em>Computer</em> from your desktop or Windows Explorer, - and select <strong>Manage</strong>.</li> - <li>Select <strong>Devices</strong> in the left pane.</li> - <li>Locate and expand <em>Other device</em> in the right pane.</li> - <li>Right-click the device name (such as <em>Nexus S</em>) and select <strong>Update - Driver Software</strong>. - This will launch the Hardware Update Wizard.</li> - <li>Select <strong>Browse my computer for driver software</strong> and click - <strong>Next</strong>.</li> - <li>Click <strong>Browse</strong> and locate the USB driver folder. (The Google USB -Driver is located in {@code <sdk>\extras\google\usb_driver\}.)</li> - <li>Click <strong>Next</strong> to install the driver.</li> -</ol> - -<p>Or, to <em>upgrade</em> an existing Android USB driver on Windows 7 with the new -driver:</p> - -<ol> - <li>Connect your Android-powered device to your computer's USB port.</li> - <li>Right-click on <em>Computer</em> from your desktop or Windows Explorer, - and select <strong>Manage</strong>.</li> - <li>Select <strong>Device Manager</strong> in the left pane of the Computer Management - window.</li> - <li>Locate and expand <em>Android Phone</em> in the right pane.</li> - <li>Right-click <em>Android Composite ADB Interface</em> and select <strong>Update - Driver</strong>. - This will launch the Hardware Update Wizard.</li> - <li>Select <strong>Install from a list or specific location</strong> and click - <strong>Next</strong>.</li> - <li>Select <strong>Search for the best driver in these locations</strong>; un-check -<strong>Search removable media</strong>; and check <strong>Include this location in the -search</strong>.</li> - <li>Click <strong>Browse</strong> and locate the USB driver folder. (The Google USB -Driver is located in {@code <sdk>\extras\google\usb_driver\}.)</li> - <li>Click <strong>Next</strong> to upgrade the driver.</li> -</ol> - - - - - -<h3 id="WinXp">Windows XP</h3> - -<p>To install the Android USB driver on Windows XP for the first time:</p> - -<ol> - <li>Connect your Android-powered device to your computer's USB port. Windows - will detect the device and launch the Hardware Update Wizard.</li> - <li>Select <strong>Install from a list or specific location</strong> and click - <strong>Next</strong>.</li> - <li>Select <strong>Search for the best driver in these locations</strong>; un-check -<strong>Search - removable media</strong>; and check <strong>Include -this location in the search</strong>.</li> - <li>Click <strong>Browse</strong> and locate the USB driver folder. (The Google USB -Driver is located in {@code <sdk>\extras\google\usb_driver\}.)</li> - <li>Click <strong>Next</strong> to install the driver.</li> -</ol> - -<p>Or, to <em>upgrade</em> an existing Android USB driver on Windows XP with the new -driver:</p> - -<ol> - <li>Connect your Android-powered device to your computer's USB port.</li> - <li>Right-click on <em>My Computer</em> from your desktop or Windows Explorer, - and select <strong>Manage</strong>.</li> - <li>Select <strong>Device Manager</strong> in the left pane.</li> - <li>Locate and expand <em>Android Phone</em> in the right pane.</li> - <li>Right-click <em>Android Composite ADB Interface</em> and select <strong>Update - Driver</strong>. - This will launch the Hardware Update Wizard.</li> - <li>Select <strong>Install from a list or specific location</strong> and click - <strong>Next</strong>.</li> - <li>Select <strong>Search for the best driver in these locations</strong>; un-check <strong>Search - removable media</strong>; and check <strong>Include -this location in the search</strong>.</li> - <li>Click <strong>Browse</strong> and locate the USB driver folder. (The Google USB -Driver is located in {@code <sdk>\extras\google\usb_driver\}.)</li> - <li>Click <strong>Next</strong> to upgrade the driver.</li> -</ol> - - - -<h3 id="WinVista">Windows Vista</h3> - -<p>To install the Android USB driver on Windows Vista for the first time:</p> - -<ol> - <li>Connect your Android-powered device to your computer's USB port. Windows - will detect the device and launch the Found New Hardware wizard.</li> - <li>Select <strong>Locate and install driver software</strong>.</li> - <li>Select <strong>Don't search online</strong>.</li> - <li>Select <strong>I don't have the disk. Show me other options</strong>.</li> - <li>Select <strong>Browse my computer for driver software</strong>.</li> - <li>Click <strong>Browse</strong> and locate the USB driver folder. (The Google USB -Driver is located in {@code <sdk>\extras\google\usb_driver\}.) As long as you specified the -exact location of the - installation package, you may leave <strong>Include subfolders</strong> checked or - unchecked—it doesn't matter.</li> - <li>Click <strong>Next</strong>. Vista may prompt you to confirm the privilege elevation - required for driver installation. Confirm it.</li> - <li>When Vista asks if you'd like to install the Google ADB Interface device, - click <strong>Install</strong> to install the driver.</li> -</ol> - -<p>Or, to <em>upgrade</em> an existing Android USB driver on Windows Vista with the new -driver:</p> - -<ol> - <li>Connect your Android-powered device to your computer's USB port.</li> - <li>Right-click on <em>Computer</em> from your desktop or Windows Explorer, - and select <strong>Manage</strong>.</li> - <li>Select <strong>Device Manager</strong> in the left pane.</li> - <li>Locate and expand <em>ADB Interface</em> in the right pane.</li> - <li>Right-click on <em>HTC Dream Composite ADB Interface</em>, and select <strong>Update - Driver Software</strong>.</li> - <li>When Vista starts updating the driver, a prompt will ask how you want to - search for the driver - software. Select <strong>Browse my computer for driver software</strong>.</li> - <li>Click <strong>Browse</strong> and locate the USB driver folder. (The Google USB -Driver is located in {@code <sdk>\extras\google\usb_driver\}.) As long as you specified the -exact location of the - installation package, you may leave <strong>Include subfolders</strong> checked or - unchecked—it doesn't matter.</li> - <li>Click <strong>Next</strong>. Vista might prompt you to confirm the privilege elevation - required for driver installation. Confirm it.</li> - <li>When Vista asks if you'd like to install the Google ADB Interface device, - click <strong>Install</strong> to upgrade the driver.</li> -</ol> - - -<h2 id="Drivers">OEM Drivers</h2> - -<p class="note"><strong>Note:</strong> If your device is one of the Android Developer Phones -(purchased from the Google Play publisher site), a Nexus One, or a Nexus S, then you need -the <a href="{@docRoot}sdk/win-usb.html">Google USB Driver</a>, instead of an OEM driver. The Galaxy -Nexus driver, however, is distributed by <a -href="http://www.samsung.com/us/support/downloads/verizon-wireless/SCH-I515MSAVZW">Samsung</a> -(listed as model SCH-I515).</p> - - -<table><tr> - <th>OEM</th> - <th>Driver URL</th></tr> -<tr><td>Acer</td> <td><a -href="http://www.acer.com/worldwide/support/mobile.html">http://www.acer.com/worldwide/support/mobile.html</a> - </td></tr> - <tr> - <td style="font-variant:small-caps">alcatel one touch</td> - <td><a -href="http://www.alcatel-mobilephones.com/global/Android-Downloads">http://www.alcatel-mobilephones.com/global/Android-Downloads</a></td> - </tr> - <tr> - <td>Asus</td> - <td><a href="http://support.asus.com/download/">http://support.asus.com/download/</a></td> - </tr> - <tr><td> - Dell - </td> <td> - <a -href="http://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml">http://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml</a> </td></tr> - -<tr><td>Foxconn</td> <td><a -href="http://drivers.cmcs.com.tw/">http://drivers.cmcs.com.tw/</a></td> -</tr> - <tr> - <td> - Fujitsu - </td> - <td><a -href="http://www.fmworld.net/product/phone/sp/android/develop/">http://www.fmworld.net/product/phone/sp/android/develop/</a> - </td> - </tr> - <tr> - <td> - Fujitsu Toshiba - </td> - <td><a -href="http://www.fmworld.net/product/phone/sp/android/develop/">http://www.fmworld.net/product/phone/sp/android/develop/</a> - </td> - </tr> - <tr><td> - Garmin-Asus - </td> <td><a -href="https://www.garminasus.com/en_US/support/pcsync/">https://www.garminasus.com/en_US/support/pcsync/</a></td> -</tr> - -<tr><td>Hisense</td> - <td><a -href="http://app.hismarttv.com/dss/resourcecontent.do?method=viewResourceDetail&resourceId=16&type=5">http://app.hismarttv.com/dss/resourcecontent.do?method=viewResourceDetail&resourceId=16&type=5 </a></td> -</tr> - -<tr><td>HTC</td> <td><a href="http://www.htc.com">http://www.htc.com </a> <br>Click on the -support tab to select your products/device. Different regions will have different links.</td> -</tr> - -<tr><td>Huawei</td> <td><a -href="http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index">http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index</a></td> -</tr> - -<tr><td>KT Tech</td> <td><a -href="http://www.kttech.co.kr/cscenter/download05.asp">http://www.kttech.co.kr/cscenter/download05.asp</a> for EV-S100 (Take)</td> -</tr> - <tr> - <td> - Kyocera - </td> - <td><a href="http://www.kyocera-wireless.com/support/phone_drivers.htm">http://www.kyocera-wireless.com/support/phone_drivers.htm</a> - </td> - </tr> - <tr> - <td>Lenevo</td> - <td><a href="http://developer.lenovomm.com/developer/download.jsp" - >http://developer.lenovomm.com/developer/download.jsp</a> - </td> - </tr> - <tr><td>LGE</td> <td><a -href="http://www.lg.com/us/mobile-phones/mobile-support/mobile-lg-mobile-phone-support.jsp">http://www.lg.com/us/mobile-phones/mobile-support/mobile-lg-mobile-phone-support.jsp</a></td> -</tr><tr><td>Motorola</td> <td><a -href="http://developer.motorola.com/docstools/USB_Drivers/">http://developer.motorola.com/docstools/USB_Drivers/</a></td> -</tr><tr><td>Pantech</td> <td><a -href="http://www.isky.co.kr/cs/software/software.sky?fromUrl=index">http://www.isky.co.kr/cs/software/software.sky?fromUrl=index</a></td> -</tr><tr><td>Pegatron</td> <td><a -href="http://www.pegatroncorp.com/download/New_Duke_PC_Driver_0705.zip">http://www.pegatroncorp.com/download/New_Duke_PC_Driver_0705.zip</a> (ZIP download)</td> -</tr><tr><td>Samsung</td> <td><a -href="http://www.samsung.com/us/support/downloads">http://www.samsung.com/us/support/downloads</a></td> -</tr><tr><td>Sharp</td> <td><a -href="http://k-tai.sharp.co.jp/support/">http://k-tai.sharp.co.jp/support/</a></td> -</tr><tr><td>SK Telesys</td> <td><a -href="http://www.sk-w.com/service/wDownload/wDownload.jsp">http://www.sk-w.com/service/wDownload/wDownload.jsp</a></td></tr><tr> -<td>Sony Ericsson</td> <td><a -href="http://developer.sonyericsson.com/wportal/devworld/search-downloads/driver?cc=gb&lc=en">http://developer.sonyericsson.com/wportal/devworld/search-downloads/driver?cc=gb&lc=en</a></td></tr> - -<tr><td>Teleepoch</td> <td><a -href="http://www.teleepoch.com/android.html">http://www.teleepoch.com/android.html</a></td> -</tr> - -<tr><td>Yulong Coolpad</td> <td><a -href="http://www.yulong.com/product/product/product/downloadList.html#downListUL">http://www.yulong.com/product/product/product/downloadList.html#downListUL</a></td> -</tr> - -<tr> -<td>ZTE</td> <td><a -href="http://support.zte.com.cn/support/news/NewsDetail.aspx?newsId=1000442">http://support.zte.com.cn/support/news/NewsDetail.aspx?newsId=1000442</a></td></tr> -</table> diff --git a/docs/html/sdk/older_releases.jd b/docs/html/sdk/older_releases.jd index 870ff04..bb274b6 100644 --- a/docs/html/sdk/older_releases.jd +++ b/docs/html/sdk/older_releases.jd @@ -15,7 +15,7 @@ development and testing.</p> <p>If you already have an Android SDK for platform version 1.6 or newer, then you do not need to install a new SDK—especially not one from this page. You should install older platforms as components of your existing SDK. -See <a href="adding-components.html">Adding SDK Components</a>.</p> +See <a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a>.</p> </div> diff --git a/docs/html/sdk/preview/features.jd b/docs/html/sdk/preview/features.jd deleted file mode 100644 index d7ecc47..0000000 --- a/docs/html/sdk/preview/features.jd +++ /dev/null @@ -1,8 +0,0 @@ -@jd:body - -<script type="text/javascript"> - document.location=toRoot+"sdk/android-3.0.html" -</script> - -<p>You should have already been redirected by your browser. Please go to the -<a href="{@docRoot}sdk/android-3.0.html">Android 3.0 Platform</a>.</p>
\ No newline at end of file diff --git a/docs/html/sdk/preview/index.jd b/docs/html/sdk/preview/index.jd deleted file mode 100644 index ed8f7e0..0000000 --- a/docs/html/sdk/preview/index.jd +++ /dev/null @@ -1,2 +0,0 @@ -sdk.redirect=true -@jd:body diff --git a/docs/html/sdk/preview/installing.jd b/docs/html/sdk/preview/installing.jd deleted file mode 100644 index 94c6f2f..0000000 --- a/docs/html/sdk/preview/installing.jd +++ /dev/null @@ -1,8 +0,0 @@ -@jd:body - -<script type="text/javascript"> - document.location=toRoot+"sdk/installing.html" -</script> - -<p>You should have already been redirected by your browser. Please go to -<a href="{@docRoot}sdk/installing.html">Installing the SDK</a>.</p>
\ No newline at end of file diff --git a/docs/html/sdk/preview/requirements.jd b/docs/html/sdk/preview/requirements.jd deleted file mode 100644 index b5aed80..0000000 --- a/docs/html/sdk/preview/requirements.jd +++ /dev/null @@ -1,8 +0,0 @@ -@jd:body - -<script type="text/javascript"> - document.location=toRoot+"sdk/requirements.html" -</script> - -<p>You should have already been redirected by your browser. Please go to the -<a href="{@docRoot}sdk/requirements.html">SDK System Requirements</a>.</p>
\ No newline at end of file diff --git a/docs/html/sdk/preview/upgrading.jd b/docs/html/sdk/preview/upgrading.jd deleted file mode 100644 index 1c53bdb..0000000 --- a/docs/html/sdk/preview/upgrading.jd +++ /dev/null @@ -1,8 +0,0 @@ -@jd:body - -<script type="text/javascript"> - document.location=toRoot+"sdk/index.html" -</script> - -<p>You should have already been redirected by your browser. Please go to -<a href="{@docRoot}sdk/index.html">the Android SDK</a>.</p>
\ No newline at end of file diff --git a/docs/html/sdk/requirements.jd b/docs/html/sdk/requirements.jd deleted file mode 100644 index c76e8c8..0000000 --- a/docs/html/sdk/requirements.jd +++ /dev/null @@ -1,114 +0,0 @@ -page.title=System Requirements -@jd:body - -<p>The sections below describe the system and software requirements for developing -Android applications using the Android SDK. </p> - -<h3>Supported Operating Systems</h3> -<ul> - <li>Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)</li> - <li>Mac OS X 10.5.8 or later (x86 only)</li> - <li>Linux (tested on Ubuntu Linux, Lucid Lynx) - <ul> - <li>GNU C Library (glibc) 2.7 or later is required.</li> - <li>On Ubuntu Linux, version 8.04 or later is required.</li> - <li>64-bit distributions must be capable of running 32-bit applications. - For information about how to add support for 32-bit applications, see - the <a href="installing.html#troubleshooting">Ubuntu Linux - installation notes</a>.</li> - </ul> - </li> -</ul> - -<h3>Supported Development Environments</h3> - -<h4 style="margin-top:.25em"><em>Eclipse IDE</em></h4> - <ul> - <li>Eclipse 3.6.2 (Helios) or greater -<p class="note"><strong>Note:</strong> Eclipse 3.5 (Galileo) is no longer -supported with the latest version of ADT.</p></li> - <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included -in most Eclipse IDE packages) </li> - <li>If you need to install or update Eclipse, you can download it from <a -href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>. - - <p>Several types of Eclipse packages are available for each platform. For -developing Android applications, we recommend that you install one of these -packages: </p> - <ul> - <li>Eclipse IDE for Java Developers</li> - <li>Eclipse Classic</li> - <li>Eclipse IDE for Java EE Developers</li> - </ul> - </li> - <li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK 6</a> - (JRE alone is not sufficient)</li> - <li><a href="eclipse-adt.html">Android Development Tools plugin</a> -(recommended)</li> - <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li> - </ul> - - -<h4><em>Other development environments or IDEs</em></h4> - <ul> - <li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK 6</a> - (JRE alone is not sufficient)</li> - <li><a href="http://ant.apache.org/">Apache Ant</a> 1.8 or later</li> - <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li> - </ul> - </li> -</ul> - -<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In -particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p> - -<h3>Hardware requirements</h3> - -<p>The Android SDK requires disk storage for all of the components that you choose to install. The table below provides a rough idea of the disk-space requirements to expect, based on the components that you plan to use. </p> - -<table> -<tr> -<th>Component type</th> -<th>Approximate size</th> -<th>Comments</th> -</tr> -<tr> -<td>SDK Tools</td> -<td>35 MB</td> -<td>Required.</td> -</tr> -<tr> -<td>SDK Platform-tools</td> -<td>6 MB</td> -<td>Required.</td> -</tr> -<tr> -<td>Android platform (each)</td> -<td>150 MB</td> -<td>At least one platform is required.</td> -</tr> -<tr> -<td>SDK Add-on (each)</td> -<td>100 MB</td> -<td>Optional.</td> -</tr> -<tr> -<td>USB Driver for Windows</td> -<td>10 MB</td> -<td>Optional. For Windows only.</td> -</tr> -<tr> -<td>Samples (per platform)</td> -<td>10M</td> -<td>Optional.</td> -</tr> -<tr> -<td>Offline documentation</td> -<td>250 MB</td> -<td>Optional.</td> -</tr> -</table> - -<p>Note that the disk-space requirements above are <em>in addition to</em> those of the Eclipse IDE, JDK, or other prerequisite tools that you may need to install on your development computer.</p> - - diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs deleted file mode 100644 index e994d95..0000000 --- a/docs/html/sdk/sdk_toc.cs +++ /dev/null @@ -1,228 +0,0 @@ -<?cs if:!sdk.redirect ?> -<ul> - <li> - <span class="heading"> - <span class="en">Android SDK Starter Package</span> - <span style="display:none" class="de">Aktuelle SDK-Version</span> - <span style="display:none" class="es">Versión actual del SDK</span> - <span style="display:none" class="fr">Version actuelle du SDK</span> - <span style="display:none" class="it">Release SDK attuale</span> - <span style="display:none" class="ja">現在リリースされている SDK</span> - <span style="display:none" class="zh-CN">当前的 SDK 版本</span> - <span style="display:none" class="zh-TW">目前 SDK 發行版本</span> - </span> - <ul><?cs - if:android.whichdoc == "online" ?> - <li><a href="<?cs var:toroot ?>sdk/index.html"> - <span class="en">Download</span> - <span style="display:none" class="de">Herunterladen</span> - <span style="display:none" class="es">Descargar</span> - <span style="display:none" class="fr">Téléchargement</span> - <span style="display:none" class="it">Download</span> - <span style="display:none" class="ja">ダウンロード</span> - <span style="display:none" class="zh-CN">下载</span> - <span style="display:none" class="zh-TW">下載</span> - </a></li><?cs - /if ?> - <li><a href="<?cs var:toroot ?>sdk/installing.html"> - <span class="en">Installing the SDK</span> - <span style="display:none" class="de">Installieren</span> - <span style="display:none" class="es">Instalación</span> - <span style="display:none" class="fr">Installation</span> - <span style="display:none" class="it">Installazione</span> - <span style="display:none" class="ja">インストール</span> - <span style="display:none" class="zh-CN">安装</span> - <span style="display:none" class="zh-TW">安裝</span> - </a></li> - </ul> - </li><?cs - if:sdk.preview ?> - <li> - <span class="heading">Android 3.0 Preview SDK</span> - <ul> - <li><a href="<?cs var:toroot ?>sdk/preview/start.html">Getting Started</a></li> - </ul> - </li><?cs - /if ?> - <?cs - if:sdk.preview ?> - <li> - <span class="heading">Android x.x Preview</span> - <ul> - </ul> - </li><?cs - /if ?> - <li> - <span class="heading"> - <span class="en">Downloadable SDK Packages</span> - <span style="display:none" class="de"></span> - <span style="display:none" class="es"></span> - <span style="display:none" class="fr"></span> - <span style="display:none" class="it"></span> - <span style="display:none" class="ja"></span> - <span style="display:none" class="zh-CN"></span> - <span style="display:none" class="zh-TW"></span> - </span> - <ul> - <li><a href="<?cs var:toroot ?>sdk/adding-components.html"> - <span class="en">Adding SDK Packages</span> - <span style="display:none" class="de"></span> - <span style="display:none" class="es"></span> - <span style="display:none" class="fr"></span> - <span style="display:none" class="it"></span> - <span style="display:none" class="ja"></span> - <span style="display:none" class="zh-CN"></span> - <span style="display:none" class="zh-TW"></span></a> - </li> - </ul> - <ul> - <li class="toggle-list"> - <div><a href="<?cs var:toroot ?>sdk/android-4.0-highlights.html"> - <span class="en">Android 4.0.x Platform</span></a></div> - <ul> - <li><a href="<?cs var:toroot ?>sdk/android-4.0.3.html">Android 4.0.3 Platform</a></li> - <li><a href="<?cs var:toroot ?>sdk/android-4.0.html">Android 4.0 Platform</a> </li> - </ul> - </li> - <li class="toggle-list"> - <div><a href="<?cs var:toroot ?>sdk/android-3.2.html"> - <span class="en">Android 3.2 Platform</span></a></div> - <ul> - <!-- <li><a href="<?cs var:toroot ?>sdk/android-3.2-highlights.html">Platform Highlights</a></li> --> - <li><a href="<?cs var:toroot ?>sdk/api_diff/13/changes.html">API Differences Report »</a></li> - </ul> - </li> - <li class="toggle-list"> - <div><a href="<?cs var:toroot ?>sdk/android-3.1.html"> - <span class="en">Android 3.1 Platform</span></a></div> - <ul> - <li><a href="<?cs var:toroot ?>sdk/android-3.1-highlights.html">Platform Highlights</a></li> - <li><a href="<?cs var:toroot ?>sdk/api_diff/12/changes.html">API Differences Report »</a></li> - </ul> - </li> - <li class="toggle-list"> - <div><a href="<?cs var:toroot ?>sdk/android-3.0.html"> - <span class="en">Android 3.0 Platform</span></a></div> - <ul> - <li><a href="<?cs var:toroot ?>sdk/android-3.0-highlights.html">Platform Highlights</a></li> - <li><a href="<?cs var:toroot ?>sdk/api_diff/11/changes.html">API Differences Report »</a></li> - </ul> - </li> - <li><a href="<?cs var:toroot ?>sdk/android-2.3.4.html">Android 2.3.4 Platform</span></a></li> - <li class="toggle-list"> - <div><a href="<?cs var:toroot ?>sdk/android-2.3.3.html"> - <span class="en">Android 2.3.3 Platform</span></a></div> - <ul> - <li><a href="<?cs var:toroot ?>sdk/api_diff/10/changes.html">API Differences Report »</a></li> - </ul> - </li> - <li class="toggle-list"> - <div><a href="<?cs var:toroot ?>sdk/android-2.2.html"> - <span class="en">Android 2.2 Platform</span></a></div> - <ul> - <li><a href="<?cs var:toroot ?>sdk/android-2.2-highlights.html">Platform Highlights</a></li> - <li><a href="<?cs var:toroot ?>sdk/api_diff/8/changes.html">API Differences Report »</a></li> - </ul> - </li> - <li class="toggle-list"> - <div><a href="<?cs var:toroot ?>sdk/android-2.1.html"> - <span class="en">Android 2.1 Platform</span></a></div> - <ul> - <li><a href="<?cs var:toroot ?>sdk/api_diff/7/changes.html">API Differences Report »</a></li> - </ul> - </li> - <li class="toggle-list"> - <div><a href="#" onclick="toggle(this.parentNode.parentNode,true); return false;">Other Platforms</a></div> - <ul> - <li class="toggle-list"> - <div><a href="<?cs var:toroot ?>sdk/android-2.3.html"> - <span class="en">Android 2.3 Platform</span></a></div> - <ul> - <li><a href="<?cs var:toroot ?>sdk/android-2.3-highlights.html">Platform Highlights</a></li> - <li><a href="<?cs var:toroot ?>sdk/api_diff/9/changes.html">API Differences Report »</a></li> - </ul> - </li> - <li><a href="<?cs var:toroot ?>sdk/android-2.0.1.html">Android 2.0.1 Platform</a></li> - <li><a href="<?cs var:toroot ?>sdk/android-2.0.html">Android 2.0 Platform</a></li> - <li><a href="<?cs var:toroot ?>sdk/android-1.6.html">Android 1.6 Platform</a></li> - <li><a href="<?cs var:toroot ?>sdk/android-1.5.html">Android 1.5 Platform</a></li> - <li><a href="<?cs var:toroot ?>sdk/android-1.1.html">Android 1.1 Platform</a></li> - </ul> - </li> - </ul> - <ul> - <li><a href="<?cs var:toroot ?>sdk/tools-notes.html">SDK Tools, r19</a></li> - <li><a href="<?cs var:toroot ?>sdk/win-usb.html">Google USB Driver, r4</a></li> - <li><a href="<?cs var:toroot ?>sdk/compatibility-library.html">Support Package, r7</a></li> - </ul> - </li> - <li> - <span class="heading"> - <span class="en">ADT Plugin for Eclipse</span> - <span style="display:none" class="de"></span> - <span style="display:none" class="es"></span> - <span style="display:none" class="fr"></span> - <span style="display:none" class="it"></span> - <span style="display:none" class="ja"></span> - <span style="display:none" class="zh-CN"></span> - <span style="display:none" class="zh-TW"></span> - </span> - <ul> - <li><a href="<?cs var:toroot ?>sdk/eclipse-adt.html">ADT 18.0.0 - <span style="display:none" class="de"></span> - <span style="display:none" class="es"></span> - <span style="display:none" class="fr"></span> - <span style="display:none" class="it"></span> - <span style="display:none" class="ja"></span> - <span style="display:none" class="zh-CN"></span> - <span style="display:none" class="zh-TW"></span></a> - </li> - </ul> - </li> - <li> - <span class="heading"> - <span class="en">Native Development Tools</span> - <span style="display:none" class="de"></span> - <span style="display:none" class="es"></span> - <span style="display:none" class="fr"></span> - <span style="display:none" class="it"></span> - <span style="display:none" class="ja"></span> - <span style="display:none" class="zh-CN"></span> - <span style="display:none" class="zh-TW"></span> - </span> - <ul> - <li><a href="<?cs var:toroot ?>sdk/ndk/index.html">Android NDK, r7c</a></li> - <li><a href="<?cs var:toroot ?>sdk/ndk/overview.html">What is the NDK?</a></li> - </ul> - </li> - - <li> - <span class="heading"> - <span class="en">More Information</span> - <span style="display:none" class="de"></span> - <span style="display:none" class="es"></span> - <span style="display:none" class="fr"></span> - <span style="display:none" class="it"></span> - <span style="display:none" class="ja"></span> - <span style="display:none" class="zh-CN"></span> - <span style="display:none" class="zh-TW"></span> - </span> - <ul> - <li><a href="<?cs var:toroot ?>sdk/oem-usb.html"> - <span class="en">OEM USB Drivers</span> - </a></li> - <li><a href="<?cs var:toroot ?>sdk/requirements.html">SDK System Requirements</a></li> - <li><a href="<?cs var:toroot ?>sdk/older_releases.html">SDK Archives</a></li> - - </ul> - </li> - -</ul> - -<script type="text/javascript"> -<!-- - buildToggleLists(); - changeNavLang(getLangPref()); -//--> -</script> -<?cs /if ?> diff --git a/docs/html/sdk/terms.jd b/docs/html/sdk/terms.jd deleted file mode 100644 index 614a438..0000000 --- a/docs/html/sdk/terms.jd +++ /dev/null @@ -1,207 +0,0 @@ -page.title=Terms and Conditions -hide_license_footer=true -@jd:body - -<p>This is the Android Software Development Kit License Agreement.</p> - -<h2> - 1. Introduction -</h2> -<p> - 1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK. - -</p> -<p> - 1.2 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States. -</p> -<h2> - 2. Accepting this License Agreement -</h2> -<p> - 2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement. -</p> -<p> - 2.2 You can accept this License Agreement by: -</p> -<p> - (A) clicking to accept or agree to this License Agreement, where this option is made available to you; or -</p> -<p> - (B) by actually using the SDK. In this case, you agree that use of the SDK constitutes acceptance of the Licensing Agreement from that point onwards. -</p> -<p> - 2.3 You may not use the SDK and may not accept the Licensing Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK. -</p> -<p> - 2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the Licensing Agreement or use the SDK on behalf of your employer or other entity. -</p> -<h2> - 3. SDK License from Google -</h2> -<p> - 3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non- assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform. -</p> -<p> - 3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you. - -</p> -<p> - 3.3 Except to the extent required by applicable third party licenses, you may not copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK. Except to the extent required by applicable third party licenses, you may not load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK. -</p> -<p> - 3.4 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement. -</p> -<p> - 3.5 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you. -</p> -<p> - 3.6 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features. -</p> -<p> - 3.7 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK. -</p> -<h2> - 4. Use of the SDK by You -</h2> -<p> - 4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications. -</p> -<p> - 4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries). -</p> -<p> - 4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, your must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so. -</p> -<p> - 4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier. -</p> -<p> - 4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through the Android platform and/or applications for the Android platform, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so. -</p> -<p> - 4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach. -</p> -<h2> - 5. Your Developer Credentials -</h2> -<p> - 5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials. -</p> -<h2> - 6. Privacy and Information -</h2> -<p> - 6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected. -</p> -<p> - 6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy. -</p> -<h2> - 7. Third Party Applications for the Android Platform -</h2> -<p> - 7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources. -</p> -<p> - 7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners. -</p> -<p> - 7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties. -</p> -<h2> - 8. Using Android APIs -</h2> -<p> - 8.1 Google Data APIs -</p> -<p> - 8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service. -</p> -<p> - 8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so. - -</p> -<h2> - 9. Terminating this License Agreement -</h2> -<p> - 9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below. -</p> -<p> - 9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials. -</p> -<p> - 9.3 Google may at any time, terminate this License Agreement with you if: -</p> -<p> - (A) you have breached any provision of this License Agreement; or -</p> -<p> - (B) Google is required to do so by law; or -</p> -<p> - (C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or -</p> -<p> - (D) Google decides to no longer providing the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable. -</p> -<p> - 9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely. -</p> -<h2> - 10. DISCLAIMER OF WARRANTIES -</h2> -<p> - 10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE. -</p> -<p> - 10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. -</p> -<p> - 10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -</p> -<h2> - 11. LIMITATION OF LIABILITY -</h2> -<p> - 11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING. -</p> -<h2> - 12. Indemnification -</h2> -<p> - 12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement. -</p> -<h2> - 13. Changes to the License Agreement -</h2> -<p> - 13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available. -</p> -<h2> - 14. General Legal Terms -</h2> -<p> - 14.1 This License Agreement constitute the whole legal agreement between you and Google and govern your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replace any prior agreements between you and Google in relation to the SDK. -</p> -<p> - 14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google. -</p> -<p> - 14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable. -</p> -<p> - 14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement. -</p> -<p> - 14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE. -</p> -<p> - 14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party. -</p> -<p> - 14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction. -</p> -<p> - <em>April 10, 2009</em> -</p> diff --git a/docs/html/sdk/terms_body.html b/docs/html/sdk/terms_body.html deleted file mode 100644 index 8c55b37..0000000 --- a/docs/html/sdk/terms_body.html +++ /dev/null @@ -1,336 +0,0 @@ - - -<p>This is the Android Software Development Kit License Agreement.</p> - -<h2> - 1. Introduction -</h2> -<p> - 1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" -and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is -licensed to you subject to the terms of this License Agreement. This License Agreement forms a -legally binding contract between you and Google in relation to your use of the SDK. - -</p> -<p> - 1.2 "Google" means Google Inc., a Delaware corporation with principal place of business at -1600 Amphitheatre Parkway, Mountain View, CA 94043, United States. -</p> -<h2> - 2. Accepting this License Agreement -</h2> -<p> - 2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use -the SDK if you do not accept this License Agreement. -</p> -<p> - 2.2 You can accept this License Agreement by: -</p> -<p> - (A) clicking to accept or agree to this License Agreement, where this option is made -available to you; or -</p> -<p> - (B) by actually using the SDK. In this case, you agree that use of the SDK constitutes -acceptance of the Licensing Agreement from that point onwards. -</p> -<p> - 2.3 You may not use the SDK and may not accept the Licensing Agreement if you are a person -barred from receiving the SDK under the laws of the United States or other countries including the -country in which you are resident or from which you use the SDK. -</p> -<p> - 2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or -other entity, you represent and warrant that you have full legal authority to bind your employer or -such entity to this License Agreement. If you do not have the requisite authority, you may not -accept the Licensing Agreement or use the SDK on behalf of your employer or other entity. -</p> -<h2> - 3. SDK License from Google -</h2> -<p> - 3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, -royalty-free, non- assignable and non-exclusive license to use the SDK solely to develop -applications to run on the Android platform. -</p> -<p> - 3.2 You agree that Google or third parties own all legal right, title and interest in and to -the SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property -Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, -and any and all other proprietary rights. Google reserves all rights not expressly granted to you. - -</p> -<p> - 3.3 Except to the extent required by applicable third party licenses, you may not copy -(except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, -or create derivative works of the SDK or any part of the SDK. Except to the extent required by -applicable third party licenses, you may not load any part of the SDK onto a mobile handset or any -other hardware device except a personal computer, combine any part of the SDK with other software, -or distribute any software or device incorporating a part of the SDK. -</p> -<p> - 3.4 Use, reproduction and distribution of components of the SDK licensed under an open -source software license are governed solely by the terms of that open source software license and -not this License Agreement. -</p> -<p> - 3.5 You agree that the form and nature of the SDK that Google provides may change without -prior notice to you and that future versions of the SDK may be incompatible with applications -developed on previous versions of the SDK. You agree that Google may stop (permanently or -temporarily) providing the SDK (or any features within the SDK) to you or to users generally at -Google's sole discretion, without prior notice to you. -</p> -<p> - 3.6 Nothing in this License Agreement gives you a right to use any of Google's trade names, -trademarks, service marks, logos, domain names, or other distinctive brand features. -</p> -<p> - 3.7 You agree that you will not remove, obscure, or alter any proprietary rights notices -(including copyright and trademark notices) that may be affixed to or contained within the SDK. -</p> -<h2> - 4. Use of the SDK by You -</h2> -<p> - 4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) -under this License Agreement in or to any software applications that you develop using the SDK, -including any intellectual property rights that subsist in those applications. -</p> -<p> - 4.2 You agree to use the SDK and write applications only for purposes that are permitted by -(a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or -guidelines in the relevant jurisdictions (including any laws regarding the export of data or -software to and from the United States or other relevant countries). -</p> -<p> - 4.3 You agree that if you use the SDK to develop applications for general public users, you -will protect the privacy and legal rights of those users. If the users provide you with user names, -passwords, or other login information or personal information, your must make the users aware that -the information will be available to your application, and you must provide legally adequate privacy -notice and protection for those users. If your application stores personal or sensitive information -provided by users, it must do so securely. If the user provides your application with Google Account -information, your application may only use that information to access the user's Google Account -when, and for the limited purposes for which, the user has given you permission to do so. -</p> -<p> - 4.4 You agree that you will not engage in any activity with the SDK, including the -development or distribution of an application, that interferes with, disrupts, damages, or accesses -in an unauthorized manner the servers, networks, or other properties or services of any third party -including, but not limited to, Google or any mobile communications carrier. -</p> -<p> - 4.5 You agree that you are solely responsible for (and that Google has no responsibility to -you or to any third party for) any data, content, or resources that you create, transmit or display -through the Android platform and/or applications for the Android platform, and for the consequences -of your actions (including any loss or damage which Google may suffer) by doing so. -</p> -<p> - 4.6 You agree that you are solely responsible for (and that Google has no responsibility to -you or to any third party for) any breach of your obligations under this License Agreement, any -applicable third party contract or Terms of Service, or any applicable law or regulation, and for -the consequences (including any loss or damage which Google or any third party may suffer) of any -such breach. -</p> -<h2> - 5. Your Developer Credentials -</h2> -<p> - 5.1 You agree that you are responsible for maintaining the confidentiality of any developer -credentials that may be issued to you by Google or which you may choose yourself and that you will -be solely responsible for all applications that are developed under your developer credentials. -</p> -<h2> - 6. Privacy and Information -</h2> -<p> - 6.1 In order to continually innovate and improve the SDK, Google may collect certain usage -statistics from the software including but not limited to a unique identifier, associated IP -address, version number of the software, and information on which tools and/or services in the SDK -are being used and how they are being used. Before any of this information is collected, the SDK -will notify you and seek your consent. If you withhold consent, the information will not be -collected. -</p> -<p> - 6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in -accordance with Google's Privacy Policy. -</p> -<h2> - 7. Third Party Applications for the Android Platform -</h2> -<p> - 7.1 If you use the SDK to run applications developed by a third party or that access data, -content or resources provided by a third party, you agree that Google is not responsible for those -applications, data, content, or resources. You understand that all data, content or resources which -you may access through such third party applications are the sole responsibility of the person from -which they originated and that Google is not liable for any loss or damage that you may experience -as a result of the use or access of any of those third party applications, data, content, or -resources. -</p> -<p> - 7.2 You should be aware the data, content, and resources presented to you through such a -third party application may be protected by intellectual property rights which are owned by the -providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, -sell, distribute or create derivative works based on these data, content, or resources (either in -whole or in part) unless you have been specifically given permission to do so by the relevant -owners. -</p> -<p> - 7.3 You acknowledge that your use of such third party applications, data, content, or -resources may be subject to separate terms between you and the relevant third party. In that case, -this License Agreement does not affect your legal relationship with these third parties. -</p> -<h2> - 8. Using Android APIs -</h2> -<p> - 8.1 Google Data APIs -</p> -<p> - 8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be -protected by intellectual property rights which are owned by Google or those parties that provide -the data (or by other persons or companies on their behalf). Your use of any such API may be subject -to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create -derivative works based on this data (either in whole or in part) unless allowed by the relevant -Terms of Service. -</p> -<p> - 8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree -that you shall retrieve data only with the user's explicit consent and only when, and for the -limited purposes for which, the user has given you permission to do so. - -</p> -<h2> - 9. Terminating this License Agreement -</h2> -<p> - 9.1 This License Agreement will continue to apply until terminated by either you or Google -as set out below. -</p> -<p> - 9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of -the SDK and any relevant developer credentials. -</p> -<p> - 9.3 Google may at any time, terminate this License Agreement with you if: -</p> -<p> - (A) you have breached any provision of this License Agreement; or -</p> -<p> - (B) Google is required to do so by law; or -</p> -<p> - (C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has -terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or -</p> -<p> - (D) Google decides to no longer providing the SDK or certain parts of the SDK to users in -the country in which you are resident or from which you use the service, or the provision of the SDK -or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially -viable. -</p> -<p> - 9.4 When this License Agreement comes to an end, all of the legal rights, obligations and -liabilities that you and Google have benefited from, been subject to (or which have accrued over -time whilst this License Agreement has been in force) or which are expressed to continue -indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall -continue to apply to such rights, obligations and liabilities indefinitely. -</p> -<h2> - 10. DISCLAIMER OF WARRANTIES -</h2> -<p> - 10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND -THAT THE SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE. -</p> -<p> - 10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE -OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR -COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. -</p> -<p> - 10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER -EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -</p> -<h2> - 11. LIMITATION OF LIABILITY -</h2> -<p> - 11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND -ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY -LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN -AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING. -</p> -<h2> - 12. Indemnification -</h2> -<p> - 12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold -harmless Google, its affiliates and their respective directors, officers, employees and agents from -and against any and all claims, actions, suits or proceedings, as well as any and all losses, -liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or -accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any -copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any -person or defames any person or violates their rights of publicity or privacy, and (c) any -non-compliance by you with this License Agreement. -</p> -<h2> - 13. Changes to the License Agreement -</h2> -<p> - 13.1 Google may make changes to the License Agreement as it distributes new versions of the -SDK. When these changes are made, Google will make a new version of the License Agreement available -on the website where the SDK is made available. -</p> -<h2> - 14. General Legal Terms -</h2> -<p> - 14.1 This License Agreement constitute the whole legal agreement between you and Google and -govern your use of the SDK (excluding any services which Google may provide to you under a separate -written agreement), and completely replace any prior agreements between you and Google in relation -to the SDK. -</p> -<p> - 14.2 You agree that if Google does not exercise or enforce any legal right or remedy which -is contained in this License Agreement (or which Google has the benefit of under any applicable -law), this will not be taken to be a formal waiver of Google's rights and that those rights or -remedies will still be available to Google. -</p> -<p> - 14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any -provision of this License Agreement is invalid, then that provision will be removed from this -License Agreement without affecting the rest of this License Agreement. The remaining provisions of -this License Agreement will continue to be valid and enforceable. -</p> -<p> - 14.4 You acknowledge and agree that each member of the group of companies of which Google is -the parent shall be third party beneficiaries to this License Agreement and that such other -companies shall be entitled to directly enforce, and rely upon, any provision of this License -Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person -or company shall be third party beneficiaries to this License Agreement. -</p> -<p> - 14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. -YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE -SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE. -</p> -<p> - 14.6 The rights granted in this License Agreement may not be assigned or transferred by -either you or Google without the prior written approval of the other party. Neither you nor Google -shall be permitted to delegate their responsibilities or obligations under this License Agreement -without the prior written approval of the other party. -</p> -<p> - 14.7 This License Agreement, and your relationship with Google under this License Agreement, -shall be governed by the laws of the State of California without regard to its conflict of laws -provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located -within the county of Santa Clara, California to resolve any legal matter arising from this License -Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for -injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction. -</p> -<p> - <em>April 10, 2009</em> -</p>
\ No newline at end of file diff --git a/docs/html/sdk/tools-notes.jd b/docs/html/sdk/tools-notes.jd deleted file mode 100644 index 062f8f1..0000000 --- a/docs/html/sdk/tools-notes.jd +++ /dev/null @@ -1,857 +0,0 @@ -page.title=SDK Tools -@jd:body - -<p>SDK Tools is a downloadable component for the Android SDK. It includes the -complete set of development and debugging tools for the Android SDK.</p> - -<p>If you are new to the Android SDK, the <a -href="{@docRoot}sdk/index.html">SDK starter package</a> installs the -latest revision of the SDK Tools in the <code><sdk>/tools</code> directory.</p> - -<p>If you are already using the SDK and you want to update to the latest version -of the SDK Tools, use the <em>Android SDK Manager</em> to get the -update, rather than downloading a new SDK starter package. For more information -about how to update, see <a -href="{@docRoot}sdk/adding-components.html#UpdatingComponents">Updating SDK -Components</a>.</p> - - -<h2 id="notes">Revisions</h2> - -<p>The sections below provide notes about successive releases of -the SDK Tools, as denoted by revision number. To determine what revision of the SDK -Tools you are using, refer to the "Installed Packages" listing in the Android SDK Manager. </p> - -<p>For a summary of all known issues in SDK Tools, see <a -href="http://tools.android.com/knownissues">http://tools.android.com/knownissues</a>.</p> - -<script type="text/javascript"> -function toggleDiv(link) { - var toggleable = $(link).parent(); - if (toggleable.hasClass("closed")) { - //$(".toggleme", toggleable).slideDown("fast"); - toggleable.removeClass("closed"); - toggleable.addClass("open"); - $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png")); - } else { - //$(".toggleme", toggleable).slideUp("fast"); - toggleable.removeClass("open"); - toggleable.addClass("closed"); - $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png")); - } - return false; -} -</script> -<style> -.toggleable { -padding: .25em 1em; -} -.toggleme { - padding: 1em 1em 0 2em; - line-height:1em; -} -.toggleable a { - text-decoration:none; -} -.toggleme a { - text-decoration:underline; -} -.toggleable.closed .toggleme { - display:none; -} -#jd-content .toggle-img { - margin:0; -} -</style> - -<div class="toggleable opened"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" - width="9px" /> - SDK Tools, Revision 19</a> <em>(April 2012)</em> - - <div class="toggleme"> - <p class="note"><strong>Note:</strong> This update of SDK Tools is only available through -the <a href="{@docRoot}sdk/adding-components.html">Android SDK Manager</a>. Use this tool to -download and install this update.</p> - - <dl> - <dt>Dependencies:</dt> - <dd> - <ul> - <li>Android SDK Platform-tools revision 9 or later.</li> - <li>If you are developing in Eclipse with ADT, note that the SDK Tools r19 is designed for - use with ADT 18.0.0 and later. If you haven't already, we highly recommend updating your - <a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 18.0.0.</li> - <li>If you are developing outside Eclipse, you must have - <a href="http://ant.apache.org/">Apache Ant</a> 1.8 or later.</li> - </ul> - </dd> - <dt>Bug fixes:</dt> - <dd> - <ul> - <li>Fixed an issue that prevented some developers from running the emulator with GPU -acceleration.</li> - </ul> - </dd> - </dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" - width="9px" /> - SDK Tools, Revision 18</a> <em>(April 2012)</em> - - <div class="toggleme"> - <p class="caution"><strong>Important:</strong> To download the new Android - 4.0 system components from the Android SDK Manager, you must first update the - SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, - the Android 4.0 system components will not be available for download.</p> - - <dl> - <dt>Dependencies:</dt> - <dd> - <ul> - <li>Android SDK Platform-tools revision 9 or later.</li> - <li>If you are developing in Eclipse with ADT, note that the SDK Tools r18 is designed for - use with ADT 18.0.0 and later. If you haven't already, we highly recommend updating your - <a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 18.0.0.</li> - <li>If you are developing outside Eclipse, you must have - <a href="http://ant.apache.org/">Apache Ant</a> 1.8 or later.</li> - </ul> - </dd> - <dt>General notes:</dt> - <dd> - <ul> - <li>Updated the SdkController app to encapsulate both sensor and multitouch emulation - functionality.</li> - </ul> - </dd> - <dt>Bug fixes:</dt> - <dd> - <ul> - <li>Fixed Ant issues where some jar libraries in the {@code libs/} folder are not picked up -in some cases.</li> - </ul> - </dd> - </dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" - width="9px" /> - SDK Tools, Revision 17</a> <em>(March 2012)</em> - - <div class="toggleme"> - <p class="caution"><strong>Important:</strong> To download the new Android - 4.0 system components from the Android SDK Manager, you must first update the - SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, - the Android 4.0 system components will not be available for download.</p> - - <dl> - <dt>Dependencies:</dt> - <dd> - <ul> - <li>Android SDK Platform-tools revision 9 or later.</li> - <li>If you are developing in Eclipse with ADT, note that the SDK Tools r17 is designed for - use with ADT 17.0.0 and later. If you haven't already, we highly recommend updating your - <a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 17.0.0.</li> - <li>If you are developing outside Eclipse, you must have - <a href="http://ant.apache.org/">Apache Ant</a> 1.8 or later.</li> - </ul> - </dd> - <dt>General notes:</dt> - <dd> - <ul> - <li>Emulator - <ul> - <li>Added support for hardware accelerated graphics rendering. This feature requires an -API Level 15, Revision 3 or later system image. -(<a href="{@docRoot}guide/developing/devices/emulator.html#accel-graphics">more info</a>) - </li> - <li>Added support for running Android x86 system images in virtualization mode on -Windows and Mac OS X. -(<a href="{@docRoot}guide/developing/devices/emulator.html#accel-vm">more info</a>) - <p class="note"><strong>Note:</strong> Use the Android SDK Manager to download and -install x86 system images. Android x86 system images are not available for all API levels.</p> - </li> - <li>Added experimental support for multi-touch input by enabing the emulator to receive - touch input from a USB-tethered physical Android device. - (<a href="http://tools.android.com/tips/hardware-emulation">more info</a>)</li> - </ul> - </li> - <li>Added viewing of live detailed network usage of an app in DDMS. (<a - href="http://tools.android.com/recent/detailednetworkusageinddms">more info</a>)</li> - <li>ProGuard - <ul> - <li>Updated the bundled ProGuard tool to version 4.7. In addition to many new features, -this update fixes the {@code Conversion to Dalvik format failed with error 1} error some users have -experienced.</li> - <li>Updated the default {@code proguard.cfg} file with better default flags for - Android.</li> - <li>Split the ProGuard configuration file has been in half, with project specific flags -kept in project and the generic Android flags distributed (and updated) with the tools -themselves.</li> - </ul> - </li> - <li>Build - <ul> - <li>Added a feature that allows you to run some code only in debug mode. Builds now -generate a class called {@code BuildConfig} containing a {@code DEBUG} constant that is -automatically set according to your build type. You can check the ({@code BuildConfig.DEBUG}) -constant in your code to run debug-only functions.</li> - <li>Fixed issue when a project and its libraries include the same jar file in their libs - folder. (<a href="http://tools.android.com/recent/dealingwithdependenciesinandroidprojects">more - info</a>)</li> - <li>Added support for custom views with custom attributes in libraries. Layouts using -custom attributes must use the namespace URI {@code http://schemas.android.com/apk/res-auto} instead -of the URI that includes the app package name. This URI is replaced with the app specific one at -build time.</li> - </ul> - </li> - <li>Lint - <ul> - <li>Updated Lint to check Android application code. Lint rules which previously -performed pattern based searches in the application code (such as the unused resource check) have -been rewritten to use the more accurate Java-style parse trees.</li> - <li>Added support for checking library projects. This change means that rules such as -the unused resource check properly handle resources declared in a library project and referenced in -a downstream project.</li> - <li>Added ability to suppress Lint warnings in Java code with the new -{@code @SuppressLint} annotation, and in XML files with the new tools: namespace and -ignore attribute. (<a - href="http://tools.android.com/recent/ignoringlintwarnings">more info</a>)</li> - <li>New Lint checks: - <ul> - <li>Added check for Android API calls that require a version of Android higher than - the minimum supported version. You can use the new {@code @TargetApi} annotation - to suppress warnings when the code is wrapped in a system version condition. - (<a href="http://tools.android.com/recent/lintapicheck">more info</a>)</li> - <li>Added over 20 new Lint rules, including checks for - <a href="http://tools.android.com/recent/lintperformancechecks">performance</a>, - XML layouts, manifest and file handling.</li> - </ul> - </li> - </ul> - </li> - </ul> - </dd> - </dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" - width="9px" /> - SDK Tools, Revision 16</a> <em>(December 2011)</em> - - <div class="toggleme"> - <p class="caution"><strong>Important:</strong> To download the new Android - 4.0 system components from the Android SDK Manager, you must first update the - SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, - the Android 4.0 system components will not be available for download.</p> - -<dl> -<dt>Dependencies:</dt> -<dd> - <ul> - <li>Android SDK Platform-tools revision 9 or later.</li> - <li>If you are developing in Eclipse with ADT, note that the SDK Tools r16 is designed for use - with ADT 16.0.0 and later. If you haven't already, we highly recommend updating your - <a href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 16.0.0.</li> - <li>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache - Ant</a> 1.8 or later.</li> -</ul> -</dd> -<dt>General notes:</dt> -<dd> - <ul> - <li>Added Lint tools to detect common errors in Android projects. - (<a href="http://tools.android.com/recent/lint">more info</a>)</li> - <li>Added sensor emulation support, which allows the emulator to read sensor data from a - physical Android device. - (<a href="http://tools.android.com/recent/sensoremulation">more info</a>)</li> - <li>Added support for using a webcam to emulate a camera on Mac OS X.</li> - </ul> -</dd> -<dt>Bug fixes:</dt> -<dd> - <ul> - <li>Snapshots now work for Android 4.0 system images.</li> - <li>Fixed several small issues for the build file. - (<a href="http://code.google.com/p/android/issues/detail?id=21023">Issue 21023</a>, - <a href="http://code.google.com/p/android/issues/detail?id=21267">Issue 21267</a>, - <a href="http://code.google.com/p/android/issues/detail?id=21465">Issue 21465</a>, - <a href="http://code.google.com/p/android/issues/detail?id=21525">Issue 21525</a>).</li> - </ul> -</dd> -</dl> -</div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" - width="9px" /> - SDK Tools, Revision 15</a> <em>(October 2011)</em> - - <div class="toggleme"> - <p class="caution"><strong>Important:</strong> To download the new Android - 4.0 system components from the Android SDK Manager, you must first update the - SDK tools to revision 14 or later and restart the Android SDK Manager. If you do not, - the Android 4.0 system components will not be available for download.</p> - <dl> -<dt>Dependencies:</dt> -<dd> - <ul><li>Android SDK Platform-tools revision 9 or later.</li> - <li>If you are developing in Eclipse with ADT, note that the SDK Tools r15 is designed for use - with ADT 15.0.0 and later. If you haven't already, we highly recommend updating your <a - href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 15.0.0.</li> - <li>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache - Ant</a> 1.8 or later.</li> -</ul> - -<dt>Bug fixes:</dt> -<dd> - <ul> - <li>Fixed emulator crash on Linux due to improper webcam detection - (<a href="http://code.google.com/p/android/issues/detail?id=20952">Issue 20952</a>).</li> - <li>Fixed emulator issue when using the <code>-wipe-data</code> argument.</li> - <li>Fixed build issue when using Renderscript in projects that target API levels 11-13 - (<a href="http://code.google.com/p/android/issues/detail?id=21006">Issue 21006</a>).</li> - <li>Fixed issue when creating an AVD using the GoogleTV addon - (<a href="http://code.google.com/p/android/issues/detail?id=20963">Issue 20963</a>).</li> - <li>Fixed <code>ant test</code> - (<a href="http://code.google.com/p/android/issues/detail?id=20979">Issue 20979</a>).</li> - <li>Fixed <code>android update project</code> - (<a href="http://code.google.com/p/android/issues/detail?id=20535">Issue 20535</a>).</li> - <li>Fixed scrolling issue in the new Logcat panel of DDMS.</li> - <li>Fixed issue with MonkeyRunner - (<a href="http://code.google.com/p/android/issues/detail?id=20964">Issue 20964</a>).</li> - <li>Fixed issues in the SDK Manager - (<a href="http://code.google.com/p/android/issues/detail?id=20939">Issue 20939</a>, - <a href="http://code.google.com/p/android/issues/detail?id=20607">Issue 20607</a>).</li> - </ul> -</dd> -</dl> -</div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" - width="9px" /> - SDK Tools, Revision 14</a> <em>(October 2011)</em> - - <div class="toggleme"> - <p class="note"><strong>Important:</strong> To download the new Android - 4.0 system components from the Android SDK Manager, you must first update the - SDK tools to revision 14 and restart the Android SDK Manager. If you do not, - the Android 4.0 system components will not be available for download.</p> - <dl> -<dt>Dependencies:</dt> -<dd> - <ul><li>Android SDK Platform-tools revision 8 or later.</li> - <li>If you are developing in Eclipse with ADT, note that the SDK Tools r14 is designed for use - with ADT 14.0.0 and later. If you haven't already, we highly recommend updating your <a - href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 14.0.0.</li> - <li>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache - Ant</a> 1.8 or later.</li> -</ul> - -<dt>General notes:</dt> -<dd> - <ul> - <li>Added webcam support to Android 4.0 or later platforms to emulate rear-facing cameras when - one webcam is present, and to emulate both rear-facing and front-facing cameras when two - webcams are present. Webcam support is for Windows and Linux only. - Mac support will come in a later release.</li> - <li>Changed <code>default.properties</code> to <code>project.properties</code> and - <code>build.properties</code> to <code>ant.properties</code>. Any existing - projects that you build with Ant must be updated with the <code>android update project</code> - command.</li> - <li>Changed Ant <code>build.xml</code> file to support improvements to the - build system and added and modified Ant commands to support these changes. For a list of Ant -commands, see the -<a href="{@docRoot}guide/developing/building/building-cmdline.html#AntReference">Ant Command -Reference</a>.</li> - <li>Changed how library projects are built.</li> - <li>Improved incremental builds, so that resource compilation runs less frequently. Builds no - longer run when you edit strings or layouts (unless you add a new <code>id</code>) and no longer - run once for each library project.</li> - <li>Introduced a "PNG crunch cache" that only runs on modified PNG files, instead of - crunching all existing PNG files, all the time.</li> - <li>Revamped the SDK Manager UI (<a href="http://tools.android.com/recent/newsdkmanager">more -info</a>).</li> - </ul> - <p>For a complete overview of the build system changes and what you need to do to support them, -see the <a href="http://tools.android.com/recent/buildchangesinrevision14">Android Tools Project -site</a>.</p> -</dd> -</dl> -</div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" - width="9px" /> -SDK Tools, Revision 13</a> <em>(September 2011)</em> - <div class="toggleme"> - <dl> -<dt>Dependencies:</dt> -<dd> -<p>If you are developing in Eclipse with ADT, note that the SDK Tools r13 is designed for use with -ADT 12.0.0 and later. If you haven't already, we highly recommend updating your <a -href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 12.0.0.</p> - -<p>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache -Ant</a> 1.8 or later.</p> - -<dt>General notes:</dt> -<dd> - <ul> - <li>Fix compilation issue in Ant (<code>dex</code> step) when paths have spaces.</li> - <li>Fix issue in emulator installation when paths have spaces.</li> - <li>Fix issue when AVD paths have spaces.</li> - <li>Fix rendering issue when using emulator scaling (<a href="http://code.google.com/p/android/issues/detail?id=18299">see more</a>).</li> - </ul> -</dd> -</dl> -</div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 12</a> <em>(July 2011)</em> - <div class="toggleme"> - <dl> -<dt>Dependencies:</dt> -<dd> -<p>If you are developing in Eclipse with ADT, note that the SDK Tools r12 is designed for use with -ADT 12.0.0 and later. If you haven't already, we highly recommend updating your <a -href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 12.0.0.</p> - -<p>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache -Ant</a> 1.8 or later.</p> - -<dt>General notes:</dt> -<dd> - <ul> - <li>The AVD manager and emulator can now use system images - compiled for ARM v7 and x86 CPUs.</li> - </ul> -</dd> -</dl> -</div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 11</a> <em>(May 2011)</em> - <div class="toggleme"> - <dl> -<dt>Dependencies:</dt> -<dd> -<p>If you are developing in Eclipse with ADT, note that the SDK Tools r11 is designed for use with -ADT 10.0.1 and later. If you haven't already, we highly recommend updating your <a -href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin</a> to 10.0.1.</p> - -<p>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache -Ant</a> 1.8 or later.</p> - -<dt>General notes:</dt> -<dd> - <ul> - <li>Miscellaneous emulator changes to support Android 3.1.</li> - </ul> -</dd> -</dl> -</div> -</div> - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" -width="9px" /> -SDK Tools, Revision 10</a> <em>(February 2011)</em> - <div class="toggleme"> - <dl> -<dt>Dependencies:</dt> -<dd> -<p>If you are developing in Eclipse with ADT, note that the SDK Tools r10 is -designed for use with ADT 10.0.0 and later. After installing SDK Tools r10, we -highly recommend updating your ADT Plugin to 10.0.0.</p> - -<p>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache -Ant</a> 1.8 or later.</p> - -<dt>General notes:</dt> -<dd> - <ul> - <li>The tools now automatically generate Java Programming Language source files (in the -<code>gen</code> directory) and - bytecode (in the <code>res/raw</code> directory) from your native <code>.rs</code> files</li> - </ul> -</dd> -</dl> -</div> -</div> - - - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 9</a> <em>(January 2011)</em> - <div class="toggleme"> - <dl> -<dt>Dependencies:</dt> -<dd> -<p>If you are developing in Eclipse with ADT, note that the SDK Tools r9 is -designed for use with ADT 9.0.0 and later. After installing SDK Tools r9, we -highly recommend updating your ADT Plugin to 9.0.0.</p> - -<p>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache -Ant</a> 1.8 or later.</p> - -<dt>Upgrading to SDK Tools r9:</dt> -<dd> -<p>If you are upgrading to SDK Tools r9 from SDK Tools r7 or earlier, the default installed location -for the <code>adb</code> tool has changed from <code><<em>SDK</em>>/tools/adb</code> to -<code><<em>SDK</em>>/platform-tools/adb</code>. This means that you should -add the new location to your PATH and modify any custom build scripts to -reference the new location. Copying the <code>adb</code> executable from the new -location to the old is not recommended, since subsequent updates to the SDK -Tools will delete the file.</p> -</dd> - -<dt>General notes:</dt> -<dd> - <ul> - <li>The default ProGuard configuration, <code>proguard.cfg</code>, now ignores the following classes: - <ul> - <li>classes that extend {@link android.preference.Preference}</li> - <li>classes that extend {@link android.app.backup.BackupAgentHelper}</li> - </ul> - </li> - <li>Ant lib rules now allow you to override <code>java.encoding</code>, <code>java.source</code>, - and <code>java.target</code> properties.</li> - <li>The default encoding for the <code>javac</code> Ant task is now UTF-8.</li> - <li>The LogCat view in DDMS now properly displays UTF-8 characters.</li> - <li>The SDK Manager is more reliable on Windows. For details on the improvements, see the - <a href="http://tools.android.com/recent/sdkmanagerfixes">Android Tools Project Site</a>. </li> - <li>Early look at the new snapshot feature: To improve startup time for the emulator, you can -enable snapshots for the system state. The emulator will then restore to the state when it last -closed almost instantly. <strong>Note:</strong> The snapshot feature is still under active -development and might not always perform as expected.</li> - <li>Fixed the missing JAR file error that prevented <code>draw9patch</code> from running.</li> - <li>Fixed the Windows launch scripts <code>hierarchyviewer</code> and <code>ddms</code> to support - the new location of <code>adb</code>.</li> - <li>Known issues with emulator performance: Because the Android emulator must simulate the ARM -instruction set architecture on your computer, emulator performance is slow. We're working hard to -resolve the performance issues and it will improve in future releases.</li> - </ul> -</dd> -</dl> -</div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 8</a> <em>(December 2010)</em> - <div class="toggleme"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>If you are developing in Eclipse with ADT, note that SDK Tools r8 is -designed for use with ADT 8.0.0 and later. After installing SDK Tools r8, we -highly recommend updating your ADT Plugin to 8.0.0.</p> - -<p>If you are developing outside Eclipse, you must have <a href="http://ant.apache.org/">Apache -Ant</a> 1.8 or later.</p> - -<p>Also note that SDK Tools r8 requires a new SDK component called -<em>Platform-tools</em>. The new Platform-tools component lets all SDK platforms -(Android 2.1, Android 2.2, and so on) use the same (latest) version of build -tools such as <code>adb</code>, <code>aapt</code>, <code>aidl</code>, and -<code>dx</code>. To download the Platform-tools component, use the Android SDK -Manager, as described in <a href="adding-components.html">Adding SDK -Components</a></p> - -<dt>Upgrading from SDK Tools r7:</dt> -<dd> -<p>If you are upgrading to SDK Tools r8 from an earlier version, note that the -the default installed location for the <code>adb</code> tool has changed from -<code><<em>SDK</em>>/tools/adb</code> to -<code><<em>SDK</em>>/platform-tools/adb</code>. This means that you should -add the new location to your PATH and modify any custom build scripts to -reference the new location. Copying the <code>adb</code> executable from the new -location to the old is not recommended, since subsequent updates to the SDK -Tools will delete the file.</p> -</dd> - -<dt>General notes:</dt> -<dd> -<ul> -<li>All SDK platforms now support Library Projects.</li> -<li>Support for a true debug build. Developers no longer need to add the -<code>android:debuggable</code> attribute to the -<code><application></code> tag in the manifest — the build tools add -the attribute automatically. In Eclipse/ADT, all incremental builds are assumed -to be debug builds, so the tools insert <code>android:debuggable="true"</code>. -When exporting a signed release build, the tools do not add the attribute. In -Ant, a <code>ant debug</code> command automatically inserts the -<code>android:debuggable="true"</code> attribute, while <code>ant release</code> -does not. If <code>android:debuggable="true"</code> is manually set, then -<code>ant release</code> will actually do a debug build, rather than a release -build.</li> -<li>Automatic ProGuard support in release builds. Developers generate a ProGuard -configuration file using the <code>android</code> tool — the build tools -then automatically run ProGuard against the project sources during the build. -For more information, see the <a -href="{@docRoot}guide/developing/tools/proguard.html">ProGuard</a> -documentation. </li> -<li>New overridable Ant javac properties: <code>java.encoding</code>, -<code>java.source</code>, and <code>java.target</code> (default values are -"ascii", "1.5", and "1.5", respectively).</li> -<li>New UI for the HierarchyViewer tool.</li> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 7</a> <em>(September 2010)</em> - <div class="toggleme"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>If you are developing in Eclipse with ADT, note that SDK Tools r7 is -designed for use with ADT 0.9.8 and later. After installing SDK Tools r7, we -highly recommend updating your ADT Plugin to 0.9.8.</p> -</dd> - -<dt>General notes:</dt> -<dd> -<ul> -<li>Added support for library projects that depend on other library projects.</li> -<li>Adds support for aidl files in library projects.</li> -<li>Adds support for extension targets in Ant build to perform tasks between the -normal tasks: <code>-pre-build</code>, <code>-pre-compile</code>, and -<code>-post-compile</code>.</li> -<li>Adds support for "headless" SDK update. See <code>android -h update sdk</code> -for more information.</li> -<li>Fixes location control in DDMS to work in any locale not using '.' as a -decimal point.</li> -</ul> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 6</a> <em>(May 2010)</em> - <div class="toggleme"> - -<dl> -<dt>Dependencies:</dt> -<dd> -<p>If you are developing in Eclipse with ADT, note that SDK Tools r6 is -designed for use with ADT 0.9.7 and later. After installing SDK Tools r6, we -highly recommend updating your ADT Plugin to 0.9.7.</p> -</dd> - -<dt>Library projects:</dt> -<dd> -<p>The SDK Tools now support the use of <em>library projects</em> during -development, a capability that lets you store shared Android application -code and resources in a separate development project. You can then reference the -library project from other Android projects and, at build time, the tools -compile the shared code and resources as part of the dependent applications. -More information about this feature is available in the <a -href="{@docRoot}guide/developing/projects/index.html#LibraryProjects">Creating and Managing Projects</a> document.</p> -<p>If you are developing in Eclipse, <a href="eclipse-adt.html">ADT</a> -provides the equivalent library project support.</p> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 5</a> <em>(March 2010)</em> - <div class="toggleme"> - -<dl> -<dt>Dependencies:</dt> -<dd><ul> -<li>If you are developing in Eclipse with ADT, note that SDK Tools r5 is -designed for use with ADT 0.9.6 and later. After installing SDK Tools r5, we -highly recommend updating your ADT Plugin to 0.9.6.</li> -<li>For Mac OS platforms, OS X 10.4.x (Tiger) is no longer -officially supported. </li> -</ul> -</dd> - -<dt>SDK and AVD Manager:</dt> -<dd> -<ul> -<li>Fixes SSL download for the standalone version of the SDK Updater.</li> -<li>Fixes issue with 64-bit JVM on Windows.</li> -<li>Adds support for platform samples components.</li> -<li>Improves support for dependency between components.</li> -<li>AVDs now sorted by API level.</li> -<li>The AVD creation dialog now enforces a minimum SD card size of 9MB.</li> -<li>Prevents deletion of running AVDs.</li> -<li>Settings are now automatically saved, no need to click "Apply".</li> -</ul> -</dd> - -<dt>Emulator:</dt> -<dd> -<ul> -<li>Emulator now requires SD card to be 9MB or more.</li> -</ul> -</dd> - -<dt>Layoutopt:</dt> -<dd> -<ul> -<li>Fixes <code>layoutopt.bat</code> to execute correctly on Windows.</li> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 4</a> <em>(December 2009)</em> - <div class="toggleme"> - -<dl> -<dt>Dependencies:</dt> -<dd><p>SDK Tools r4 is compatible with ADT 0.9.5 and later, but not -compatible with earlier versions. If you are developing in Eclipse with ADT, you -<strong>must</strong> update your ADT plugin to version 0.9.5 or higher if you -install SDK Tools r4 in your SDK. </p></dd> - -<dt>General notes:</dt> -<dd> -<ul> -<li>Launcher script now forces GDK_NATIVE_WINDOW=true (linux only), to fix a -compatibility issue between GTK and SWT.</li> -</ul> -</dd> - -<dt>Android SDK and AVD Manager:</dt> -<dd> -<ul> -<li>AVD Launch dialog now shows scale value.</li> -<li>Fixes potential NPE in SDK Manager on AVD launch, for older AVD with no -skin name specified.</li> -<li>Fixes XML validation issue in on older Java versions.</li> -<li>No longer forces the use of Java 1.5 on Mac OS X.</li> -</ul> -</dd> - -<dt>Emulator:</dt> -<dd> -<ul> -<li>No longer limits the size of the system partition.</li> -</ul> -</dd> - -<dt>Ant build tools:</dt> -<dd> -<ul> -<li>.apk packaging now properly ignores vi swap files as well as hidden files.</li> -</ul> -</dd> -</dl> - </div> -</div> - -<div class="toggleable closed"> - <a href="#" onclick="return toggleDiv(this)"> - <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" /> -SDK Tools, Revision 3</a> <em>(October 2009)</em> - <div class="toggleme"> - -<dl> -<dt>Dependencies:</dt> -<dd><p>SDK Tools r3 is compatible with ADT 0.9.4 and later, but not -compatible with earlier versions. If you are developing in Eclipse with ADT, you -<strong>must</strong> update your ADT plugin to version 0.9.4 or higher if you -install SDK Tools r3 in your SDK.</p> -</dd> - -<dt>Android tool:</dt> -<dd> -<ul> -<li>Adds new <code>android create test-project</code> and <code>android update -test-project</code> commands to allow for greater flexibility in the location of the -main and test projects.</li> -</ul> -</dd> - -<dt>DDMS:</dt> -<dd> -<ul> -<li>Adds a button to dump HPROF file for running applications (app must be able -to write to the sdcard).</li> -<li>Button to start/stop profiling of a running application (app must be able to -write to the sdcard). Upon stop, Traceview will automatically be launched to -display the trace.</li> -<li>Fixed DDMS, Traceview, and the AVD Mananger/SDK Updater to run on Mac OS X -10.6.</li> -<li>Fixed screenshot support for devices running 32-bit framebuffer.</li> -</ul> -</dd> - -<dt>Android SDK and AVD Manager:</dt> -<dd> -<ul> -<li>Provides a new UI that lets you set options for controlling -the emulator skin, screen size/density, and scale factor used when launching -an AVD.</li> -<li>Provides improved AVD creation UI, which lets you customize the hardware -properties of your AVDs.</li> -<li>Now enforces dependencies between platforms and tools components, and -between SDK add-ons and platforms.</li> -</ul> -</dd> - -<dt>Layoutopt, a new tool for optimizing layouts:</dt> - -<dd><p>The SDK Tools r3 package includes <code>layoutopt</code>, a new command-line -tool that helps you optimize your layout hierarchies. When run against your -layout files, the tool analyzes their hierarchies and notifies you of -inefficiencies and other potential issues. The tool also provides simple -solutions for the issues it finds. For usage, see <a -href="/guide/developing/tools/layoutopt.html">layoutopt</a>.</p> -</dd> -</dl> - </div> -</div> diff --git a/docs/html/sdk/win-usb.jd b/docs/html/sdk/win-usb.jd index 3be0faf..802615e 100644 --- a/docs/html/sdk/win-usb.jd +++ b/docs/html/sdk/win-usb.jd @@ -10,7 +10,7 @@ page.title=Google USB Driver </ol> <h2>See also</h2> <ol> - <li><a href="{@docRoot}sdk/oem-usb.html#InstallingDriver">Installing a USB Driver</a></li> + <li><a href="{@docRoot}tools/extras/oem-usb.html#InstallingDriver">Installing a USB Driver</a></li> <li><a href="{@docRoot}guide/developing/device.html">Using Hardware Devices</a></li> <li><a href="{@docRoot}sdk/adding-components.html">Adding SDK Packages</a></li> </ol> @@ -30,7 +30,7 @@ following devices:</p> <p>* <em>Or similar hardware on other carriers</em></p> <p>All other devices require Windows drivers provided by the hardware manufacturer, as listed in -the <a href="{@docRoot}sdk/oem-usb.html">OEM USB Drivers</a> document. The Galaxy Nexus +the <a href="{@docRoot}tools/extras/oem-usb.html">OEM USB Drivers</a> document. The Galaxy Nexus driver is also distributed by <a href="http://www.samsung.com/us/support/downloads/verizon-wireless/SCH-I515MSAVZW">Samsung</a> (listed as model SCH-I515).</p> @@ -169,4 +169,4 @@ included with the <a href="{@docRoot}sdk/index.html">Android SDK</a>:</p> downloaded into the <code><sdk>\extras\google\usb_driver\</code> directory.</li> </ol> -<p>For installation information, read <a href="{@docRoot}sdk/oem-usb.html#InstallingDriver">Installing a USB Driver</a>.</p> +<p>For installation information, read <a href="{@docRoot}tools/extras/oem-usb.html#InstallingDriver">Installing a USB Driver</a>.</p> |