Difference between android-support-v7-appcompat and android-support-v4
What is a support library?
Support libraries are code libraries(Collection of classes) which makes a newly added feature to work with the older devices.
For example, Material Design was introduced in API 21 (Android 5.0 - Lolipop) but
the v7-support library makes it available for API 7 (Android 2.1.x -Eclair) and higher.
What are different support libraries?
Some of the main support libraries are
V4 Support library
V7 Support library
V8 Support library
v13 Support library
What does 7 stand for in v7 Support Library?
It means this library has features designed to be used with API level 7 and higher. Same goes with V4 (contains features meant for API 4 and higher) and so on.
Difference between v7 Support library and v7 appcompat library?
Few people including me get confused with these two terms. Actually, v7 appcompat library is a part of v7 Support library. v7 support library was mainly developed to support Material design and ActionBar design pattern for API 7 and higher.
V7 can be categorized into more sub categories
v7 appcompat library
v7 cardView library
v7 recyclerView library
v7 pallete library etc
v7 appcompat library has following key classes ActionBar, ActionBarActivity, ShareActionProvider.
So adding,
com.android.support:appcompat-v7:21.0.+
dependency in your gradle file, imports the above-mentioned classes.
Bonus
Other support libraries
Multidex Support Library (For creating apps with more than 65k methods)
v17 Leanback support Library (A Support library which provides important widgets for Android TV)
Relevant links
- Support Library Features
- Support Library Packages
- Support Library Features Guide
- What is Multidex and what is the use of Multidex Support Library?
UPDATE
There are many changes done into support library since this question was answered. Good thing is, it is very well documented also. So you must read Support Library Documentation for more details and more available support library.
Starting with Support Library release 26.0.0 (July 2017), the minimum supported API level across most support libraries has increased to Android 4.0 (API level 14) for most library packages.
Below is difference from Support Library Packages:
v4 Support Library
This library is designed to be used with
Android 1.6 (API level 4)Android 2.3 (API level 9)Android 4.0 (API level 14) and higher. It includes 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.v7 Libraries
There are several libraries designed to be used with
Android 2.1 (API level 7)Android 2.3 (API level 9)Android 4.0 (API level 14) 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.
So yes you need both jars if you want to use v7.
Update for android-support-v13.jar
v13 Support Library
This interface was deprecated in API level 27.1.0. Use Fragment instead of the framework Fragment.
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 (FragmentCompat) class and additional fragment support classes
When you see the package details it has a class FragmentCompat as given in definition. So it has not the all classes of appcompat library.