diff options
Diffstat (limited to 'docs/html/sdk/compatibility-library.jd')
-rw-r--r-- | docs/html/sdk/compatibility-library.jd | 484 |
1 files changed, 0 insertions, 484 deletions
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> |