Support Library

In this document

See also

The Android Support Library package is a set of code libraries that provide
backward-compatible versions of Android framework APIs as well as features that are only available
through the library APIs. 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.

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

Overview

Including the Support Libraries in your Android project is considered a best practice for
application developers, depending on the range of platform versions your app is targeting
and the APIs that it uses. Using the features the libraries 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 android.support
packages in the API reference.

Revisions

This section provides details about the Support Library package releases.

Added support for Fragment
transitions for devices running Android 5.0 (API level 21).
Be aware that transitions have no effect on devices running
Android 4.4 and lower.

Added DocumentFile to ease
the transition from File
while working with document trees. However, this class demands
more processing overhead compared to the platform's
DocumentsContract API added in
Android 4.4 (API level 19). So you should switch to using DocumentsContract when running on Android 4.4
and higher.

Added WakefulBroadcastReceiver helper class for
implementing a common pattern of detecting a device wakeup event and passing work off
to a Service while ensuring that the device does not go back to
sleep before the handoff is complete.

Added 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
ActionBarActivity class.

New v7 mediarouter library:

Added a new mediarouter library that provides support for the Google Cast developer preview.
The v7 mediarouter library APIs provide a means of controlling the routing of
media channels and streams from the current device to external screens,
speakers, and other destination devices, with compatibility back to Android 2.1
(API level 7). See V7
mediarouter library for more information.

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 the Google Cast
developer preview.

Fixed many bugs for Fragment, including proper
handling of onActivityResult() when
the target fragment no longer exists, dispatching selection events to invisible fragments, improved
FragmentTransaction.replace() behavior
and added better state handling for fragments being moved out of view.

Added 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 ShareActionProvider in Android 4.0.

Added NavUtils and TaskStackBuilder to provide support for implementing the
Android Design guidelines for navigation. These
additions include a way to implement the action bar's Up button across versions.
For an example implementation of this pattern, see the AppNavigation sample in
(<sdk>/samples/<platform>/AppNavigation).

Fixed a Loader bug that caused issues in
canceling AsyncTasks when running on Froyo and older
versions of the platform. The support
code now uses its own version of AsyncTask to keep the same
behavior on all platform versions.

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:

ViewPager: A ViewGroup that manages the
layout for the child views, which the user can swipe between.

PagerAdapter: An adapter that populates the ViewPager with the
views that represent each page.

FragmentPagerAdapter: An extension of PagerAdapter for flipping
between fragments.

FragmentStatePagerAdapter: An extension of PagerAdapter for
flipping between fragments that uses the library's support for Fragment.SavedState.

New v13 support library:

Includes the FragmentPagerAdapter and FragmentStatePagerAdapter
to support the horizontal paging.

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