一、出现的原因:
谷歌为了在较低版本中兼容高版本新加的控件和布局以及相关的一些主题(Theme),甚至一些重要组件的生命周期及重要方法(如fragment的attached,added in API 23,需要使用兼容的fragment),而推出了兼容包,方便开发人员在较低版本中适配或者使用高版本的效果,简单的说就是,用于提供向下兼容的功能。

Android Support Library包名都是以android.support.*

二、兼容包简介
support-v4 
适用范围:4在这里指的是Android API版本号,对应的系统版本是1.6。那么support-v4的意思就是这个库中提供的API会向下兼容到Android 1.6系统。

包含内容:Fragment、NotificationCompat、LoadBroadcastManager、ViewPager、PageTabStrip、Loader、FileProvider等

使用方法:

compile 'com.android.support:support-v4:版本'

support-v7 
适用范围:appcompat-v7指的是将库中提供的API向下兼容至API 7,也就是Android 2.1系统。

包含内容:包含了v4的所有效果,还支持了Material Design的多种新的布局和空间,如RecyclerView、TabLayout、ToolBar、CardView等等

使用方法:

compile 'com.android.support:appcompat-v7:23.1.1'

compile 'com.android.support:cardview-v7:23.0.0'

compile 'com.android.support:recyclerview-v7:23.0.0'

support-v13 
适用范围:API level 13(Android 3.2)以上,针对于平板兼容开发

包含内容:增强的对Fragment效果的支持,使得Fragment能够在平板的各个版中兼容

使用方法:

compile 'com.android.support:support-v13:24.2.0'

support-v17:
适用范围:兼容4.2及以上,支持电视设备

包含内容:BrowseFragment, DetailFragment, PlaybasckOverlayFragment, SearchFragment等

使用方法:

com.android.support:preference-v14:24.2.0 

androidX
出现原因: Android官方支持的最低系统版本不断升高,support-v4、appcompat-v7库不再支持老版本系统.对这些API的架构进行了一次重新的划分,推出了AndroidX。因此,AndroidX本质上其实就是对Android Support Library进行的一次升级,

升级内容:   
1)包名:之前Android Support Library中的API,它们的包名都是在android.support.*下面的,而AndroidX库中所有API的包名都变成了在androidx.*下面。这是一个很大的变化,意味着以后凡是android.*包下面的API都是随着Android操作系统发布的,而androidx.*包下面的API都是随着扩展库发布的,这些API基本不会依赖于操作系统的具体版本。 
2)命名规则。吸取了之前命名规则的弊端,AndroidX所有库的命名规则里都不会再包含具体操作系统API的版本号了。比如,像appcompat-v7库,在AndroidX中就变成了appcompat库。

适用范围: AS 3.2及以上,Gradle 插件版本4.6及以上,compileSdkVersion 版本 28及以上,buildToolsVersion 版本改28.0.2及以上

包含内容:Android新的扩展库 AndroidX,用于替换原来的 Android扩展库(v系列包),包含v包的一切,implementation 'androidx.appcompat:appcompat:1.0.2'

使用方法:androidX的迁移,AndroidX和Android Support Library中的库是非常不建议混合在一起使用的,implementation 'androidx.appcompat:appcompat:1.0.2'

三、其他
注解支持库
适用范围:all

包含内容:提供的 API 支持向应用中添加注解元数据

使用方法:

com.android.support:support-annotations:24.2.0 

设计支持库
适用范围:all

包含内容:提供的 API 支持向应用中添加 Material Design 组件和模式(如:抽屉式导航栏、浮动操作按钮 (FAB)、快捷信息栏和标签页)

使用方法:

com.android.support:design:24.2.0 

百分比支持库
适用范围:all

包含内容:提供的 API 支持向应用中添加基于百分比的尺寸并对其进行管理(如 :PercentFrameLayout 、 PercentRelativeLayout)

使用方法:

com.android.support:percent:24.2.0 

电视的应用建议支持库
适用范围:all

包含内容:提供的 API 支持向电视设备上运行的应用中添加内容建议(如:ContentRecommendation 、 RecommendationExtender)

使用方法:

com.android.support:recommendation:24.2.0