page.title=Support Library Features

@jd:body

<div id="qv-wrapper">
  <div id="qv">

    <h2>In this document</h2>
    <ol>
      <li><a href="#v4">v4 Support Libraries</a>
        <ol>
          <li><a href="#v4-compat">v4 compat library</a></li>
          <li><a href="#v4-core-utils">v4 core-utils library</a></li>
          <li><a href="#v4-core-ui">v4 core-ui library</a></li>
          <li><a href="#v4-media-compat">v4 media-compat library</a></li>
          <li><a href="#v4-fragment">v4 fragment library</a></li>
        </ol>
      </li>
      <li><a href="#multidex">Multidex Support Library</a></li>
      <li><a href="#v7">v7 Support Libraries</a>
        <ol>
          <li><a href="#v7-appcompat">v7 appcompat library</a></li>
          <li><a href="#v7-cardview">v7 cardview library</a></li>
          <li><a href="#v7-gridlayout">v7 gridlayout library</a></li>
          <li><a href="#v7-mediarouter">v7 mediarouter library</a></li>
          <li><a href="#v7-palette">v7 palette library</a></li>
          <li><a href="#v7-recyclerview">v7 recyclerview library</a></li>
          <li><a href="#v7-preference">v7 preference library</a></li>
        </ol>
      </li>
      <li><a href="#v8">v8 Support Library</a></li>
      <li><a href="#v13">v13 Support Library</a></li>
      <li><a href="#v14-preference">v14 Preference Support Library</a></li>
      <li><a href="#v17-leanback">v17 Leanback Library</a></li>
      <li><a href="#v17-preference">v17 Preference Library for TV</a></li>
      <li><a href="#annotations">Annotations Support Library</a></li>
      <li><a href="#design">Design Support Library</a></li>
      <li><a href="#custom-tabs">Custom Tabs Support Library</a></li>
      <li><a href="#percent">Percent Support Library</a></li>
      <li><a href="#recommendation">Recommendation Support Library for TV</a></li>
    </ol>

    <h2>See also</h2>
    <ol>
      <li><a href="{@docRoot}topic/libraries/support-library/index.html#revisions">
        Support Library Revisions</a></li>
      <li><a href="{@docRoot}topic/libraries/support-library/setup.html">
        Support Library Setup</a></li>
      <li><a href="{@docRoot}topic/libraries/testing-support-library/index.html">
        Testing Support Library</a></li>
    </ol>

  </div>
</div>

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

<p>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 <a href="#v4">v4 support</a> and <a href="#v7-appcompat">v7
  appcompat</a> libraries, because they support a wide range of
  Android versions and provide APIs for recommended user interface patterns.</p>

<p>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
  <a href="{@docRoot}tools/support-library/setup.html#download">Support Library Setup</a> 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 important information on how to
  include the library in your application.</p>


<h2 id="v4">v4 Support Libraries</h2>

<p>
  These libraries are designed to be used with Android 2.3 (API level 9) and
  higher. They include the largest set of APIs compared to the other libraries,
  including support for application components, user interface features,
  accessibility, data handling, network connectivity, and programming
  utilities.
</p>

<p>
  For complete, detailed information about the classes and methods provided by
  the v4 support libraries, see the {@link android.support.v4.app
  android.support.v4} package in the API reference.
</p>


<p class="note">
  <strong>Note:</strong> Prior to Support Library revision 24.2.0, there was a
  single v4 support library. That library was divided into multiple modules to
  improve efficiency. For backwards compatibility, if you list
  <code>support-v4</code> in your Gradle script, your APK will include all of
  the v4 modules. However, to reduce APK size, we recommend that you just list
  the specific modules your app needs.
</p>

<h3 id="v4-compat">v4 compat library</h3>

<p>
  Provides compatibility wrappers for a number of framework APIs, such as
  <code>Context.obtainDrawable()</code> and
  <code>View.performAccessibilityAction()</code>.
</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:support-compat:24.2.0
</pre>

<h3 id="v4-core-utils">v4 core-utils library</h3>

<p>
  Provides a number of utility classes, such as {@link
  android.support.v4.content.AsyncTaskLoader} and {@link
  android.support.v4.content.PermissionChecker}.
</p>

<p>
  The Gradle build script dependency identifier for this library is as follows:
</p>

<pre>
com.android.support:support-core-utils:24.2.0
</pre>

<h3 id="v4-core-ui">v4 core-ui library</h3>

<p>
  Implements a variety of UI-related components, such as {@link
  android.support.v4.view.ViewPager}, {@link
  android.support.v4.widget.NestedScrollView}, and {@link
  android.support.v4.widget.ExploreByTouchHelper}.
</p>

<p>
  The Gradle build script dependency identifier for this library is as follows:
</p>

<pre>
com.android.support:support-core-ui:24.2.0
</pre>

<h3 id="v4-media-compat">v4 media-compat library</h3>

<p>
  Backports portions of the <a href=
  "/reference/android/media/package-summary.html">media</a> framework,
  including {@link android.media.browse.MediaBrowser} and {@link
  android.media.session.MediaSession}.
</p>

<p>
  The Gradle build script dependency identifier for this library is as follows:
</p>

<pre>
com.android.support:support-media-compat:24.2.0
</pre>

<h3 id="v4-fragment">v4 fragment library</h3>

<p>
  Adds support for encapsulation of user interface and functionality with
  <a href=
  "/guide/components/fragments.html">fragments</a>,
  enabling applications to provide layouts that adjust between small and
  large-screen devices. This module has dependencies on <a href=
  "#v4-compat">compat</a>, <a href="#v4-core-utils">core-utils</a>, <a href=
  "#v4-core-ui">core-ui</a>, and <a href="#v4-media-compat">media-compat</a>.
</p>

<p>
  The Gradle build script dependency identifier for this library is as follows:
</p>

<pre>
com.android.support:support-fragment:24.2.0
</pre>

<h2 id="multidex">Multidex Support Library</h2>

<p>
  This library provides support for building apps with multiple Dalvik Executable (DEX) files.
  Apps that reference more than 65536 methods are required to use multidex configurations. For
  more information about using multidex, see <a href="{@docRoot}tools/building/multidex.html">
  Building Apps with Over 64K Methods</a>.
</p>

<p>
  The Gradle build script dependency identifier for this library is as follows:
</p>

<pre>
com.android.support:multidex:1.0.0
</pre>



<h2 id="v7">v7 Support Libraries</h2>

<p>There are several libraries designed to be used with Android 2.3 (API level 9) and higher.
  These libraries provide specific feature sets and can be included in your application
  independently from each other.</p>


<h3 id="v7-appcompat">v7 appcompat library</h3>

<p>This library adds support for the
  <a href="{@docRoot}guide/topics/ui/actionbar.html">Action Bar</a> user
  interface <a href="{@docRoot}design/patterns/actionbar.html">design
  pattern</a>. This library includes support for
  <a href="{@docRoot}design/material/">material design</a> user interface
  implementations.
</p>

<p class="note"><strong>Note:</strong>
  This library depends on the v4 Support Library.
</p>

<p>Here are a few of the key classes included in the v7 appcompat library:</p>

<ul>
  <li>{@link android.support.v7.app.ActionBar} - Provides an implementation of the action bar
      <a href="{@docRoot}design/patterns/actionbar.html">user interface pattern</a>. For more
      information on using the Action Bar, see the
      <a href="{@docRoot}guide/topics/ui/actionbar.html">Action Bar</a> developer guide.
  </li>
  <li>{@link android.support.v7.app.AppCompatActivity} - Adds an application activity class that can
       be used as a base class for activities that use the Support Library action bar
       implementation.
  </li>
  <li>{@link android.support.v7.app.AppCompatDialog} - Adds a dialog class that can be used as a base
      class for AppCompat themed dialogs.
  </li>
  <li>{@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.
  </li>
</ul>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:appcompat-v7:24.2.0
</pre>



<h3 id="v7-cardview">v7 cardview library</h3>

<p>This library adds support for the {@link android.support.v7.widget.CardView}
widget, which lets you show information inside cards that have a consistent look
on any app. These cards are useful for material design
implementations, and are used extensively in layouts for TV apps.</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:cardview-v7:24.2.0
</pre>



<h3 id="v7-gridlayout">v7 gridlayout library</h3>

<p>After you download the Android Support Libraries, 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.</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:gridlayout-v7:24.2.0
</pre>



<h3 id="v7-mediarouter">v7 mediarouter library</h3>

<p>This library provides {@link android.support.v7.media.MediaRouter}, {@link
android.support.v7.media.MediaRouteProvider}, and related media classes that
support <a href="https://developers.google.com/cast/docs/android_sender">Google Cast</a>. </p>

<p>In general, the APIs in the v7 mediarouter library provide a means of
controlling the routing of media channels and streams from the current device to
external screens, speakers, and other destination devices. The library includes
APIs for publishing app-specific media route providers, for discovering and
selecting destination devices, for checking media status, and more. For detailed
information about the v7 mediarouter library APIs, see the
{@link android.support.v7.media android.support.v7.media} package in the API
reference.</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:mediarouter-v7:24.2.0
</pre>

<p class="caution">The v7 mediarouter library APIs introduced in Support Library
r18 are subject to change in later revisions of the Support Library. At this
time, we recommend using the library only in connection with <a
href="https://developers.google.com/cast/docs/android_sender">Google Cast</a>. </p>

<h3 id="v7-palette">v7 palette library</h3>

<p>The v7 palette support library includes the
{@link android.support.v7.graphics.Palette} class, which lets you extract
prominent colors from an image. For example, a music app could use a
{@link android.support.v7.graphics.Palette} object to extract the major colors
from an album cover, and use those colors to build a color-coordinated song
title card.</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:palette-v7:24.2.0
</pre>



<h3 id="v7-recyclerview">v7 recyclerview library</h3>

<p>The recyclerview library adds the {@link android.support.v7.widget.RecyclerView}
class. This class provides support for the
<a href="{@docRoot}training/material/lists-cards.html">RecyclerView</a>
widget, a view for efficiently displaying large data sets by providing a
limited window of data items.</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:recyclerview-v7:24.2.0
</pre>


<h3 id="v7-preference">v7 Preference Support Library</h3>

<p>The
<a href="{@docRoot}reference/android/support/v7/preference/package-summary.html">preference</a>
package provides APIs to support adding preference objects, such as
{@link android.support.v7.preference.CheckBoxPreference} and
{@link android.support.v7.preference.ListPreference}, for
users to modify UI settings. </p>

<p>The v7 Preference library adds support for interfaces, such as
{@link android.support.v7.preference.Preference.OnPreferenceChangeListener} and
{@link android.support.v7.preference.Preference.OnPreferenceClickListener}, and classes,
such as {@link android.support.v7.preference.CheckBoxPreference} and
{@link android.support.v7.preference.ListPreference}.  </p>


<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:preference-v7:24.2.0
</pre>

<h2 id="v8">v8 Support Library</h2>

<p>This library is designed to be used with Android 2.3 (API level 9) and higher.
  This library provides specific feature sets and can be included in your application
  independently from other libraries.</p>

<h3 id="v8-renderscript">v8 renderscript library</h3>

<p>This library is designed to be used with Android 2.3 (API level 9) and higher. It adds support for
  the <a href="{@docRoot}guide/topics/renderscript/compute.html">RenderScript</a> computation
  framework. These APIs are included in the {@link android.support.v8.renderscript} package. You
  should be aware that the steps for including these APIs in your application is <em>very
  different</em> from other support library APIs. For more information about using these APIs
  in your application, see the
  <a href="{@docRoot}guide/topics/renderscript/compute.html#access-rs-apis">RenderScript</a>
  developer guide.</p>

<p class="note">
  <strong>Note:</strong> Use of RenderScript with the support library is supported with Android
  Studio and Gradle-based builds. The
  renderscript library is located in the <code>build-tools/$VERSION/renderscript/</code> folder.
</p>

<p>The following example shows the Gradle build script properties for this library:</p>

<pre>
defaultConfig {
    renderscriptTargetApi 18
    renderscriptSupportModeEnabled true
}
</pre>



<h2 id="v13">v13 Support Library</h2>

<p>This library is designed to be used for Android 3.2 (API level 13) and higher. It adds support
  for the <a href="{@docRoot}guide/components/fragments.html">Fragment</a> user interface pattern
  with the ({@link android.support.v13.app.FragmentCompat}) class and additional fragment support
  classes. For more information about fragments, see the
  <a href="{@docRoot}guide/components/fragments.html">Fragments</a> 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.
</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:support-v13:24.2.0
</pre>





<h2 id="v14-preference">v14 Preference Support Library</h2>


<p>The {@link android.support.v14.preference} package provides APIs to add support
for preference interfaces such as
{@link android.support.v14.preference.PreferenceFragment.OnPreferenceStartFragmentCallback}
  and
{@link android.support.v14.preference.PreferenceFragment.OnPreferenceStartScreenCallback},
  along with classes, such as
{@link android.support.v14.preference.MultiSelectListPreference} and
{@link android.support.v14.preference.PreferenceFragment}. For detailed
  information about the v14 Preference Support Library APIs, see the
  <a href="{@docRoot}reference/android/support/v14/preference/package-summary.html">preference</a>
  package in the API reference.
</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:preference-v14:24.2.0
</pre>




<h2 id="v17-preference">v17 Preference Support Library for TV</h2>


<p>The {@link android.support.v17.preference} package provides APIs for providing preference
  interfaces on TV devices, including support for the
{@link android.support.v17.preference.LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener}
interface and classes, such as
{@link android.support.v17.preference.BaseLeanbackPreferenceFragment} and
{@link android.support.v17.preference.LeanbackPreferenceFragment}. For detailed
  information about the v17 Preference Support Library APIs, see the
  <a href="{@docRoot}reference/android/support/v17/preference/package-summary.html">preference</a>
  package in the API reference.
</p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:preference-leanback-v17:24.2.0
</pre>





<h2 id="v17-leanback">v17 Leanback Library</h2>

<p>The {@link android.support.v17.leanback} package provides APIs to support
  building user interfaces
  on TV devices. It provides a number of important widgets for TV apps. Some of the notable classes include:</p>

<ul>
  <li>{@link android.support.v17.leanback.app.BrowseFragment} - A fragment for
    creating a primary layout for browsing categories and rows of media
    items.</li>
  <li>{@link android.support.v17.leanback.app.DetailsFragment} - A wrapper
    fragment for Leanback details screens.</li>
  <li>{@link android.support.v17.leanback.app.PlaybackOverlayFragment} - A
    subclass of {@link android.support.v17.leanback.app.DetailsFragment} for
    displaying playback controls and related content.</li>
  <li>{@link android.support.v17.leanback.app.SearchFragment} - A fragment to
    handle searches. The fragment receives the user's search request and passes
    it to the application-provided {@link
    android.support.v17.leanback.app.SearchFragment.SearchResultProvider
    SearchResultProvider}. The {@link
    android.support.v17.leanback.app.SearchFragment.SearchResultProvider
    SearchResultProvider} returns the search results to the
    {@link android.support.v17.leanback.app.SearchFragment}, which renders them
    into a {@link android.support.v17.leanback.app.RowsFragment}.</li>
</ul>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:leanback-v17:24.2.0
</pre>



<h2 id="annotations">Annotations Support Library</h2>

<p>The <a href="{@docRoot}reference/android/support/annotation/package-summary.html">Annotation</a>
package provides APIs to support adding annotation metadata to your apps. </p>

<p></p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:support-annotations:24.2.0
</pre>



<h2 id="design">Design Support Library</h2>

<p>The
<a href="{@docRoot}reference/android/support/design/package-summary.html">Design</a> package
provides APIs to support adding material design components and patterns to your apps. </p>

<p>The Design Support library adds support for various material design components and patterns for
app developers to build upon, such as navigation drawers, floating action buttons (<i>FAB</i>),
snackbars, and <a href="{@docRoot}design/building-blocks/tabs.html">tabs</a>.  </p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:design:24.2.0
</pre>



<h2 id="custom-tabs">Custom Tabs Support Library</h2>

<p>The
<a href="{@docRoot}reference/android/support/customtabs/package-summary.html">Custom Tabs</a>
package provides APIs to support adding and managing custom tabs in your apps. </p>

<p>The Custom Tabs Support library adds support for various classes, such as
<a href="{@docRoot}reference/android/support/customtabs/CustomTabsService.html">Custom Tabs
Service</a>
and
<a href="{@docRoot}reference/android/support/customtabs/CustomTabsCallback.html">Custom Tabs
Callback</a>.  </p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:customtabs:24.2.0
</pre>




<h2 id="percent">Percent Support Library</h2>

<p>The
<a href="{@docRoot}reference/android/support/percent/package-summary.html">Percent</a>
package provides APIs to support adding and managing percentage based dimensions in your app. </p>

<p>The Percent Support library adds support for the
<a href="{@docRoot}reference/android/support/percent/PercentLayoutHelper.PercentLayoutParams.html">
PercentLayoutHelper.PercentLayoutParams</a> interface
and various classes, such as
<a href="{@docRoot}reference/android/support/percent/PercentFrameLayout.html">PercentFrameLayout</a>
and
<a href="{@docRoot}reference/android/support/percent/PercentRelativeLayout.html">
PercentRelativeLayout</a>.  </p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:percent:24.2.0
</pre>



<h2 id="recommendation">App Recommendation Support Library for TV</h2>

<p>The
<a href="{@docRoot}reference/android/support/app/recommendation/package-summary.html">App
Recommendation</a>
package provides APIs to support adding content recommendations in your app running on TV devices. </p>

<p>The App  library adds support for annotations, such as
<a href="{@docRoot}reference/android/support/app/recommendation/ContentRecommendation.ContentMaturity.html">
ContentRecommendation.ContentMaturity</a> and various classes, such as
<a href="{@docRoot}reference/android/support/app/recommendation/ContentRecommendation.html">ContentRecommendation</a>
and
<a href="{@docRoot}reference/android/support/app/recommendation/RecommendationExtender.html">
RecommendationExtender</a>.  </p>

<p>The Gradle build script dependency identifier for this library is as follows:</p>

<pre>
com.android.support:recommendation:24.2.0
</pre>
