From 5ffbba6455298593a59aeb98fafd0e0ede25b2c8 Mon Sep 17 00:00:00 2001 From: Joe Fernandez Date: Mon, 15 Jul 2013 15:53:03 -0700 Subject: [PATCH] docs: Support Library Guide Extending the Support Library documentation to explain how to support mainstream features such as ActionBar across multiple versions of Android. Change-Id: I8ddeeb912884a39b2fb8717129d22993102ef650 --- .../images/tools/sdk-manager-support-libs.png | Bin 0 -> 53798 bytes docs/html/tools/support-library/features.jd | 249 +++++++++++ .../index.jd} | 401 +++++++----------- docs/html/tools/support-library/setup.jd | 308 ++++++++++++++ docs/html/tools/tools_toc.cs | 35 +- 5 files changed, 735 insertions(+), 258 deletions(-) create mode 100644 docs/html/images/tools/sdk-manager-support-libs.png create mode 100644 docs/html/tools/support-library/features.jd rename docs/html/tools/{extras/support-library.jd => support-library/index.jd} (66%) create mode 100644 docs/html/tools/support-library/setup.jd diff --git a/docs/html/images/tools/sdk-manager-support-libs.png b/docs/html/images/tools/sdk-manager-support-libs.png new file mode 100644 index 0000000000000000000000000000000000000000..37968005c789e3126444af98a71743977cc5611d GIT binary patch literal 53798 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 xelI>Y&ir+}ZNB(z>-Fz^yZ;> +

+ + +

The Android Support Library package contains several individual libraries that can be included + in your application. Each of these libraries supports a specific range of Android platform + versions and set of features.

+ +

This guide explains the important features and version support provided by the Support + Libraries, to help you decide which of them you should include in your application. In general, + we recommend including the v4 support and v7 + appcompat libraries in your application, because they support a wide range of + Android versions and provide APIs for recommended user interface patterns.

+ +

In order to use any of the following libraries, you must download the library files to your + Android SDK installation. Follow the directions for downloading the Support Libraries in + Support Library Setup to + complete this step. You must take additional steps to include a specific Support Library in + your application. See the end of each library section below for instructions on how to include + the library in your application.

+ + +

v4 Support Library

+ +

This library is designed to be used with Android 1.6 (API level 4) and higher. It includes the + largest set of APIs compared to the other packages, including support for application components, + user interface features, accessibility, data handling, network connectivity, and programming + utilities. Here are a few of the key classes included in the v4 package:

+ +
    +
  • App Components +
      +
    • {@link android.support.v4.app.Fragment} + - Adds support encapsulation of user interface and functionality with Fragments, enabling + applications provide layouts that adjust between small and large-screen devices.
    • +
    +
      +
    • {@link android.support.v4.app.NotificationCompat} - Adds support for rich notification + features.
    • +
    +
      +
    • {@link android.support.v4.content.LocalBroadcastManager} - Allows applications to easily + register for and receive intents within a single application without broadcasting them + globally.
    • +
    +
  • +
  • User Interface +
      +
    • {@link android.support.v4.view.ViewPager} - Adds a + {@link android.view.ViewGroup} that manages the layout for the + child views, which the user can swipe between.
    • +
    • {@link android.support.v4.view.PagerTitleStrip} + - Adds a non-interactive title strip, that can be added as a child of + {@link android.support.v4.view.ViewPager}.
    • +
    • {@link android.support.v4.view.PagerTabStrip} - Adds a + navigation widget for switching between paged views, that can also be used with + {@link android.support.v4.view.ViewPager}.
    • +
    • {@link android.support.v4.widget.DrawerLayout} - Adds + support for creating a Navigation Drawer that can be pulled in from the edge of a window.
    • +
    • {@link android.support.v4.widget.SlidingPaneLayout} + - Adds widget for creating linked summary and detail views that + appropriately adapt to various screen sizes.
    • +
    +
  • +
  • Accessibility +
      +
    • {@link android.support.v4.widget.ExploreByTouchHelper} + - Adds a helper class for implementing accessibility support for custom views.
    • +
    +
      +
    • {@link android.support.v4.view.accessibility.AccessibilityEventCompat} - Adds support for + {@link android.view.accessibility.AccessibilityEvent}. For more information about implementing + accessibility, see Accessibility.
    • +
    +
      +
    • {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat} - Adds support + for {@link android.view.accessibility.AccessibilityNodeInfo}.
    • +
    +
      +
    • {@link android.support.v4.view.accessibility.AccessibilityNodeProviderCompat} - Adds + support for {@link android.view.accessibility.AccessibilityNodeProvider}.
    • +
    +
      +
    • {@link android.support.v4.view.AccessibilityDelegateCompat} - Adds support for + {@link android.view.View.AccessibilityDelegate}.
    • +
    +
  • +
  • Content +
      +
    • {@link android.support.v4.content.Loader} - Adds support for asynchronous loading of data. + The library also provides concrete implementations of this class, including + {@link android.support.v4.content.CursorLoader} and + {@link android.support.v4.content.AsyncTaskLoader}.
    • +
    +
      +
    • {@link android.support.v4.content.FileProvider} - Adds support for sharing of private + files between applications.
    • +
    +
  • +
+ +

+ There are many other APIs included in this package. For complete, detailed information about the + v4 Support Library APIs, see the {@link android.support.v4.app android.support.v4} package in the + API reference. +

+ +

This library is located in the {@code <sdk>/extras/android/support/v4/} directory after + you download the Android Support Libraries. This library does not contain user interface + resources. To include it in your application project, follow the instructions for + adding libraries without + resources.

+ +

The Gradle build script dependency identifier for this library is as follows:

+ +
+com.android.support:support-v4:18.0.+
+
+ +

This dependency notation specifies the release version 18.0.0 or higher.

+ + + +

v7 Libraries

+ +

There are several libraries designed to be used with Android 2.1 (API level 7) and higher. + These libraries provide specific feature sets and can be included in your application + independently from each other.

+ + +

v7 appcompat library

+ +

This library adds support for the Action + Bar user interface design pattern. +

+ +

Note: + This library depends on the v4 Support Library. If you are using Ant or Eclipse, make sure + you include the v4 Support Library as part of this library's classpath. +

+ +

Here are a few of the key classes included in the v7 appcompat library:

+ +
    +
  • {@link android.support.v7.app.ActionBar} - Provides an implementation of the action bar + user interface pattern. For more + information on using the Action Bar, see the + Action Bar developer guide. +
  • +
  • {@link android.support.v7.app.ActionBarActivity} - Adds an application activity class that + must be used as a base class for activities that uses the Support Library action bar + implementation. +
  • +
  • {@link android.support.v7.widget.ShareActionProvider} - Adds support for a standardized + sharing action (such as email or posting to social applications) that can be included in an + action bar. +
  • +
+ +

This library is located in the {@code <sdk>/extras/android/support/v7/appcompat/} + directory after you download the Android Support Libraries. This library contains user + interface resources. To include it in your application project, follow the instructions for + adding libraries with + resources.

+ +

The Gradle build script dependency identifier for this library is as follows:

+ +
+com.android.support:appcompat-v7:18.0.+
+
+ +

This dependency notation specifies release version 18.0.0 or higher.

+ + + +

v7 gridlayout library

+ +

This library adds support for the {@link android.support.v7.widget.GridLayout} class, which + allows you to arrange user interface elements using a grid of rectangular cells. + For detailed information about the v7 gridlayout library APIs, see the + {@link android.support.v7.widget android.support.v7.widget} package in the API reference.

+ +

This library is located in the {@code <sdk>/extras/android/support/v7/gridlayout/} + directory after you download the Android Support Libraries. This library contains user + interface resources. To include it in your application project, follow the instructions for + adding libraries with + resources.

+ +

The Gradle build script dependency identifier for this library is as follows:

+ +
+com.android.support:gridlayout-v7:18.0.+
+
+ +

This dependency notation specifies release version 18.0.0 or higher.

+ + +

v13 Support Library

+ +

This library is designed to be used for Android 3.2 (API level 13) and higher. It adds support + for the Fragment user interface pattern + with the ({@link android.support.v13.app.FragmentCompat}) class and additional fragment support + classes For more information about fragments, see the + Fragments developer guide. For detailed + information about the v13 Support Library APIs, see the {@link android.support.v13.app + android.support.v13} package in the API reference. +

+ +

This library is located in the {@code <sdk>/extras/android/support/v13/} directory after + you download the Android Support Libraries. This library does not contain user interface + resources. To include it in your application project, follow the instructions for + adding libraries without + resources.

+ +

The Gradle build script dependency identifier for this library is as follows:

+ +
+com.android.support:support-v13:18.0.+
+
+ +

This dependency notation specifies the release version 18.0.0 or higher.

diff --git a/docs/html/tools/extras/support-library.jd b/docs/html/tools/support-library/index.jd similarity index 66% rename from docs/html/tools/extras/support-library.jd rename to docs/html/tools/support-library/index.jd index a82a98ae4eba4..e5efb8d811575 100644 --- a/docs/html/tools/extras/support-library.jd +++ b/docs/html/tools/support-library/index.jd @@ -3,52 +3,149 @@ page.title=Support Library @jd:body -

Minimum API level supported: 4

+

The Android Support Library package is a set of code libraries that provide useful and important + features for Android applications in addition to the framework APIs. These libraries provide + backward-compatible versions of framework APIs as well as features that are only available + through its API. Each Support Library is backward-compatible to a specific Android API level. + This design means that your applications can use the libraries' features and still be compatible + with devices running Android 1.6 (API level 4) and up.

-

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.

- -

Note: The Support Package includes more than one support -library. Each one has a different minimum API level. 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/}.

+

This guide provides information about what features are enabled by the different libraries, + how to use them in your development environment and information about the Support Library + releases.

-

Revisions

+

Overview

-

The sections below provide notes about successive releases of -the Support Package, as denoted by revision number.

+

Including the Support Libraries in your Android project is considered a best practice for + application developers. Using the features they provide can help you improve the look of your + application, increase performance and broaden the reach of your application to more users. + If you use the Android + code template tools, you will notice that + all the Android application templates include one or more of the Support Libraries by default.

+ +

The Support Libraries each target a base Android API level and each provides a different set + of features. In order to effectively use the libraries, it is important to consider what features + you want to support and understand what features are supported by each library at what Android + API level. To get started, review the + Support Library Features guide. + After that, go to the + Support Library Setup topic to + learn how to incorporate the Support Libraries into your application. For more details + about Support Library APIs, see the {@link android.support.v4.app android.support} + packages in the API reference.

+ + +

Revisions

+ +

This section provides details about the Support Library package releases.

Support Package, revision 13 (May 2013) +/>Android Support Library, revision 18 (July 2013) +

+
+
+
Changes for v4 support library:
+
+
    +
  • User interface +
      +
    • Added {@link android.support.v4.text.BidiFormatter} for handling + text strings that combine right to left and left to right-formatted text.
    • +
    • Modified {@link android.support.v4.view.ViewPager} to better handle cases where the + pager has a measured width of zero in the initial layout processing.
    • +
    • Modified {@link android.support.v4.widget.DrawerLayout} and + {@link android.support.v4.widget.SlidingPaneLayout} to not throw exceptions for + measurement while the project code is being edited.
    • +
    +
  • + +
  • Accessibility +
      +
    • Added {@link android.support.v4.widget.ExploreByTouchHelper} to simplify the + implementation of accessibility for custom views.
    • +
    • Fixed a problem with {@link android.support.v4.view.ViewPager} incorrectly + populating {@link + android.support.v4.view.accessibility.AccessibilityEventCompat#TYPE_VIEW_SCROLLED + TYPE_VIEW_SCROLLED} accessibility events.
    • +
    • Fixed a null pointer exception in {@link android.support.v4.view.ViewPager} when + populating an accessibility event.
    • +
    • Simplified {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat} + by changing {@link java.lang.CharSequence} inputs to {@link java.lang.String} objects. +
    • +
    • Deprecated an {@link android.support.v4.view.accessibility.AccessibilityRecordCompat} + constructor that used an {@link java.lang.Object} as input.
    • +
    +
  • + +
  • Media +
      +
    • Added {@link android.support.v4.media.TransportMediator} helper class to manage + media transport control, such as play, pause, skip and other media actions.
    • +
    • Added {@link android.support.v4.hardware.display.DisplayManagerCompat} for managing + display output to one or more device displays.
    • +
    +
  • + +
  • Other changes +
      +
    • Added {@link android.support.v4.content.WakefulBroadcastReceiver} helper class for + implementing a common pattern of detecting a device wakeup event and passing work off + to a {@link android.app.Service} while ensuring that the device does not go back to + sleep before the handoff is complete.
    • +
    • Added two new APIs, + {@link android.support.v4.content.AsyncTaskLoader#commitContentChanged + commitContentChanged()} and + {@link android.support.v4.content.AsyncTaskLoader#rollbackContentChanged + rollbackContentChanged()}, to {@link android.support.v4.content.AsyncTaskLoader} to + help deal with background updates for data changes that are subsequently canceled. +
    • +
    +
  • +
+
+ +
New v7 appcompat library:
+
+
    +
  • Added {@link android.support.v7.app.ActionBar} to allow implementation of the + action bar user interface design + pattern back to Android 2.1 (API level 7) and higher. Use of this class requires + that you implement your activity by extending the new + {@link android.support.v7.app.ActionBarActivity} class.
  • +
+
+ +
+
+
+ + +
+

+ Android Support Library, revision 13 (May 2013)

@@ -71,8 +168,9 @@ the Support Package, as denoted by revision number.

  • Added {@link android.support.v4.content.FileProvider} to allow sharing of private files between applications.
  • Updated {@link android.support.v4.view.ViewPager} to throw an exception if the - associated {@link android.support.v4.view.PagerAdapter} class is modified without a call - to {@link android.support.v4.view.PagerAdapter#notifyDataSetChanged notifyDataSetChanged()}. + associated {@link android.support.v4.view.PagerAdapter} class is modified without a + call to {@link android.support.v4.view.PagerAdapter#notifyDataSetChanged + notifyDataSetChanged()}.
  • Fixed an issue with {@link android.support.v4.view.ViewPager} children drawing sort order.
  • @@ -81,6 +179,15 @@ the Support Package, as denoted by revision number.

    between tap timeout and long press events. + +
    New v7 gridlayout library:
    +
    +
      +
    • Added {@link android.support.v7.widget.GridLayout} to provide support for the + {@link android.widget.GridLayout} layout object.
    • +
    • Added {@link android.support.v7.widget.Space} which can be used to create blank areas + within a {@link android.support.v7.widget.GridLayout} layout object.
    • +
    @@ -89,7 +196,7 @@ the Support Package, as denoted by revision number.

    Support Package, revision 12 (February 2013) +/>Android Support Library, revision 12 (February 2013)

    @@ -110,10 +217,11 @@ the Support Package, as denoted by revision number.

    +

    Support Package, revision 11 (November 2012) +/>Android Support Library, revision 11 (November 2012)

    @@ -175,7 +283,7 @@ the Support Package, as denoted by revision number.

    Support Package, revision 10 (August 2012) +/>Android Support Library, revision 10 (August 2012)

    @@ -194,7 +302,7 @@ the Support Package, as denoted by revision number.

    Support Package, revision 9 (June 2012) +/>Android Support Library, revision 9 (June 2012)

    @@ -260,10 +368,11 @@ isActiveNetworkMetered()} method.
    +

    Support Package, revision 8 (April 2012) +/>Android Support Library, revision 8 (April 2012)

    @@ -282,10 +391,11 @@ isActiveNetworkMetered()} method.
    +

    Support Package, revision 7 (March 2012) +/>Android Support Library, revision 7 (March 2012)

    @@ -311,10 +421,11 @@ for creating standardized system notifications.
    +

    Support Package, revision 6 (December 2011) +/>Android Support Library, revision 6 (December 2011)

    @@ -367,7 +478,7 @@ for creating standardized system notifications.

    Support Package, revision 5 (December 2011) +/>Android Support Library, revision 5 (December 2011)

    @@ -426,7 +537,7 @@ for creating standardized system notifications.

    Support Package, revision 4 (October 2011) +/>Android Support Library, revision 4 (October 2011)

    @@ -468,7 +579,7 @@ for creating standardized system notifications.

    Compatibility Package, revision 3 (July 2011) +/>Android Support Library, revision 3 (July 2011)

    @@ -519,7 +630,7 @@ Android 3.2 and higher (all other APIs in the v4 library are already available w

    Compatibility Package, revision 2 (May 2011) +/>Android Support Library, revision 2 (May 2011)

    @@ -527,7 +638,7 @@ Android 3.2 and higher (all other APIs in the v4 library are already available w
    • Support for fragment animations
    • -
    • Fix {@code android.support.v4.app.Fragment#onActivityResult Fragment.onActivityResult()} +
    • Fix {@link android.support.v4.app.Fragment#onActivityResult Fragment.onActivityResult()} bug
    @@ -539,204 +650,10 @@ Android 3.2 and higher (all other APIs in the v4 library are already available w

    Compatibility Package, revision 1 (March 2011) +/>Android Support Library, revision 1 (March 2011)

    Initial release with the v4 library.

    - - -

    Downloading the Support Package

    - -

    The Support Package is provided as a downloadable package from the Android SDK -Manager. To install:

    - -
      -
    1. Launch the Android SDK Manager. -

      From Eclipse, you can select Window -> Android SDK Manager. Or, launch {@code SDK Manager.exe} from -the {@code <sdk>/} directory (on Windows only) or {@code android} from the {@code -<sdk>/tools/} directory.

    2. -
    3. Expand the Android Repository, check Android Support package -and click Install selected.
    4. -
    5. Proceed to install the package.
    6. -
    - -

    When done, all files (including source code, samples, and the JAR files) are saved -into the <sdk>/extras/android/support/ 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/}).

    - - -

    Setting Up a Project to Use a Library

    - -

    To add one of the libraries to your Android project:

    -
    -
    - Add the JAR file to your project. -
    -
    - Copy the JAR file for the library you want to use into your Android project. To do this: -
      -
    • - Create the directory {@code libs/} at the root of your project - (next to {@code src/}, {@code res/}, and so forth). -
    • -
    • - Locate the JAR file for the library you want to use and copy it into the - {@code libs/} directory. -

      - For example, the library that supports API level 4 and up is located at - {@code <sdk>/extras/android/support/v4/android-support-v4.jar}. -

      -
    • -
    -

    - Your build system may expect to find the JAR file in a directory other than - {@code libs}. Read the documentation for your build system to learn where to put the - JAR file. -

    -
    -
    - If necessary, add the {@code libs/} directory to your build path. -
    -
    - Read the documentation for your build system to learn how to add the JAR file to the - build path. -
    -
    -

    - To confirm that you've added the JAR file to the correct directory and added it to the build - path: -

    -
      -
    1. - Edit one of your source files to add an {@code import} statement that imports a - class from the {@code android.support.*} package. -
    2. -
    3. - Build your app. The code should compile cleanly. -
    4. -
    5. - As a double-check, run your app. It should run correctly, without any runtime exceptions - indicating that the class in {@code android.support.*} can't be found. -
    6. -
    -

    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}).

    - -

    Tip: To see the library APIs in action, take a look at the sample -apps in {@code <sdk>/extras/android/support/<version>/samples/}.

    - -

    Warning: 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 {@code android:minSdkVersion} -and double check the import statements for classes that also exist in the support library, such as -{@code SimpleCursorAdapter}.

    - - -

    Using the v4 Library APIs

    - -

    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:

    - -
      -
    • {@link android.app.Fragment}
    • -
    • {@link android.app.FragmentManager}
    • -
    • {@link android.app.FragmentTransaction}
    • -
    • {@link android.app.ListFragment}
    • -
    • {@link android.app.DialogFragment}
    • -
    • {@link android.app.LoaderManager}
    • -
    • {@link android.content.Loader}
    • -
    • {@link android.content.AsyncTaskLoader}
    • -
    • {@link android.content.CursorLoader}
    • -
    - -

    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:

    - -
      -
    • 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).
    • -
    • 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).
    • -
    • The {@link android.app.ActionBar} is not supported by the library. -However, when creating your Options -Menu, 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: -
      -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;
      -}
      -
      -

      Also see the Action Bar -Compatibility 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.

      -
    • -
    - -

    Tip: 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:

    -
    -<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11" />
    -
    -

    This way, your application automatically receives the Holographic theme and the Action Bar for -each activity when running on Android 3.0 and higher.

    -
    - -

    For more information about how you can optimize your application for the latest -Android-powered devices, read Supporting Tablets and Handsets.

    - - -

    Reference Docs

    - -

    The reference documentation for the Support Packages is included as part of the Android -online developer documentation:

    - - - - -

    Samples

    - -

    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:

    - - - -

    Additionally, the Google I/O App 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.

    - diff --git a/docs/html/tools/support-library/setup.jd b/docs/html/tools/support-library/setup.jd new file mode 100644 index 0000000000000..a2ece159f3419 --- /dev/null +++ b/docs/html/tools/support-library/setup.jd @@ -0,0 +1,308 @@ +page.title=Support Library Setup + +@jd:body + + + + +

    How you setup the Android Support Libraries in your development project depends on what features + you want to use and what range of Android platform versions you want to support with your + application.

    + +

    This document guides you through downloading the Support Library package and adding libraries + to your development environment.

    + + +

    Downloading the Support Libraries

    + +

    The Android Support Library package is provided as a supplemental download to the Android SDK + and is available through the Android + SDK Manager. Follow the + instructions below to obtain the Support Library files. +

    + +

    To download the Support Library through the SDK Manager:

    + +
      +
    1. Start the Android SDK Manager.
    2. +
    3. In the SDK Manager window, scroll to the end of the Packages list, + find the Extras folder and, if necessary, expand to show its contents.
    4. +
    5. Select the Android Support Library item. +

      + Note: If you're developing with Android Studio, select and install the + Android Support Repository item instead. +

      +
    6. +
    7. Click the Install packages... button.
    8. +
    + + +

    Figure 1. The Android SDK Manager with the +Android Support Library selected.

    + +

    After downloading, the tool installs the Support Library files to your existing Android SDK + directory. The library files are located in the following subdirectory of your SDK: + {@code <sdk>/extras/android/support/} directory.

    + + +

    Choosing Support Libraries

    + +

    Before adding a Support Library to your application, decide what features you want to include + and the lowest Android versions you want to support. For more information on the features + provided by the different libraries, see + Support Library Features.

    + + +

    Adding Support Libraries

    + +

    In order to use a Support Library, you must modify your application's project's + classpath dependencies within your development environment. You must perform this procedure for + each Support Library you want to use.

    + +

    Some Support Libraries contain resources beyond compiled code classes, such as images or XML + files. For example, the v7 + appcompat and v7 gridlayout + libraries include resources.

    + +

    If you are not sure if a library contains resources, check the + Support Library Features page. + The following sections describe how to add a Support Library with or without resources to your + application project.

    + + +

    Adding libraries without resources

    + +

    To add a Support Library without resources to your application project:

    + +
    +

    + Using Eclipse

    + +
    +
      +
    1. Make sure you have downloaded the Android Support Library + using the SDK Manager.
    2. +
    3. Create a {@code /libs} directory in the root of your application project.
    4. +
    5. Copy the JAR file from your Android SDK installation directory (e.g., + {@code <sdk>/extras/android/support/v4/android-support-v4.jar}) into your + application's project {@code /libs} directory. +
    6. Right click the JAR file and select Build Path > Add to Build Path. +
    7. +
    +
    +
    + +
    +

    + Using Android Studio

    + +
    +
      +
    1. Make sure you have downloaded the Android Support Repository. + using the SDK Manager.
    2. +
    3. Open the {@code build.gradle} file for your application.
    4. +
    5. Add the support library to the {@code dependencies} section. For example, to add the v4 + support library, add the following lines: +
      +dependencies {
      +    ...
      +    compile "com.android.support:support-v4:18.0.+"
      +}
      +
      +
    6. +
    +
    +
    + + +

    Adding libraries with resources

    + +

    To add a Support Library with resources to your application project:

    + +
    +

    + Using Eclipse

    +
    + +

    Create a library +project based on the support library code:

    + +
      +
    1. Make sure you have downloaded the Android Support Library + using the SDK Manager.
    2. +
    3. Create a library project and ensure the required JAR files are included in the project's + build path: +
        +
      1. Select File > Import.
      2. +
      3. Select Existing Android Code Into Workspace and click + Next.
      4. +
      5. Browse to the SDK installation directory and then to the Support Library folder. + For example, if you are adding the {@code appcompat} project, browse to + <sdk>/extras/android/support/v7/appcompat/.
      6. +
      7. Click Finish to import the project. For the v7 appcompat project, you + should now see a new project titled android-support-v7-appcompat.
      8. +
      9. In the new library project, expand the {@code /libs} folder, right-click each {@code .jar} + file and select Build Path > Add to Build Path. For example, when + creating the the v7 appcompat project, add both the {@code android-support-v4.jar} and + {@code android-support-v7-appcompat.jar} files to the build path.
      10. +
      11. Right-click the project and select Build Path > Configure Build Path. +
      12. +
      13. In the Order and Export tab, check the .jar files you just + added to the build path, so they are available to projects that depend on this library + project. For example, the {@code appcompat} project requires you to export both the + {@code android-support-v4.jar} and {@code android-support-v7-appcompat.jar} files.
      14. +
      15. Uncheck Android Dependencies.
      16. +
      17. Click OK to complete the changes.
      18. +
      +
    4. +
    + +

    You now have a library project for your selected Support Library that you can use with one or + more application projects.

    + +

    Add the library to your application project:

    +
      +
    1. In the Project Explorer, right-click your project and select Properties. +
    2. In the Library pane, click Add. +
    3. Select the library project and click OK. For example, the + {@code appcompat} project should be listed as android-support-v7-appcompat. +
    4. +
    5. In the properties window, click OK. +
    + +
    +
    + + +
    +

    + Using Android Studio

    + +
    +
      +
    1. Make sure you have downloaded the Android Support Repository + using the SDK Manager.
    2. +
    3. Open the {@code build.gradle} file for your application.
    4. +
    5. Add the support library feature project identifier to the {@code dependencies} section. + For example, to include the {@code appcompat} project add + {@code compile "com.android.support:appcompat-v7:18.0.+"} to the dependencies section, as + shown in the following example: +
      +dependencies {
      +    ...
      +    compile "com.android.support:appcompat-v7:18.0.+"
      +}
      +
      +
    6. +
    +
    +
    + + +

    Using Support Library APIs

    + +

    Support Library classes that provide support for existing framework APIs typically have the + same name as framework class but are located in the android.support class packages, + or have a *Compat suffix.

    + +
    +

    Caution: When using classes from the Support Library, be certain you import + the class from the appropriate package. For example, when applying the {@code ActionBar} + class:

    +
      +
    • {@code android.support.v7.app.ActionBar} when using the Support Library.
    • +
    • {@code android.app.ActionBar} when developing only for API level 11 or higher.
    • +
    +
    + +

    + Note: After including the Support Library in your application project, we + strongly recommend using the + ProGuard tool to prepare your application APK + for release. In addition to protecting your source code, the ProGuard tool also removes unused + classes from any libraries you include in your application, which keeps the download size of + your application as small as possible. For more information, see + ProGuard. +

    + +

    Further guidance for using some Support Library features is provided in the Android developer + training classes, + guides + and samples. For more information about the individual Support Library classes and methods, see + the {@link android.support.v4.app android.support} packages in the API reference. +

    + + +

    Manifest Declaration Changes

    + +

    If you are increasing the backward compatibility of your existing application to an earlier + version of the Android API with the Support Library, make sure to update your application's + manifest. Specifically, you should update the android:minSdkVersion + element of the + <uses-sdk> tag in the manifest to the new, lower version number, as + shown below:

    + +
    +  <uses-sdk
    +      android:minSdkVersion="7"
    +      android:targetSdkVersion="17" />
    +
    + +

    This change tells Google Play that your application can be installed on devices with Android + 2.1 (API level 7) and higher.

    + +

    + Note: If you are including the v4 support and v7 appcompat libraries in your + application, you should specify a minimum SDK version of "7" (and not + "4"). The highest support library level you include in your application determines + the lowest API version in which it can operate. +

    + + +

    Code Samples

    + +

    Each Support Library includes code samples to help you get started using the support +APIs. The code is included in the download from the SDK Manager and is placed inside the Android +SDK installation directory, as listed below:

    + +
      +
    • 4v Samples: {@code <sdk>/extras/android/support/samples/Support4Demos/}
    • +
    • 7v Samples: {@code <sdk>/extras/android/support/samples/Support7Demos/}
    • +
    • 13v Samples: {@code <sdk>/extras/android/support/samples/Support13Demos/}
    • +
    • App Navigation: {@code <sdk>/extras/android/support/samples/SupportAppNavigation/}
    • +
    + diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs index c555f98418419..8ad61ec20f53c 100644 --- a/docs/html/tools/tools_toc.cs +++ b/docs/html/tools/tools_toc.cs @@ -56,7 +56,13 @@
  • Using the Emulator
  • -
  • Using Hardware Devices
  • + - - + + + + + - - -