文章目录

  • 一、简介
  • 二、应用组件
    • 1、Activity
    • 2、Fragment
    • 3、ContextCompat
    • 4、IntentCompat
    • 5、Loader
    • 6、Preference
    • 7、ContentResolverCompat
  • 三、界面
    • 1、RecyclerView
    • 2、ViewPager
    • 3、GridLayout
    • 4、PercentFrameLayout
    • 5、PercentRelativeLayout
    • 6、DrawerLayout
    • 7、SlidingPaneLayout
    • 8、NestedScrollView
    • 9、SwipeRefreshLayout
    • 10、CardView
    • 11、AppCompatDialogFragment
    • 12、NotificationCompat
    • 13、SearchView
  • 四、Material Design
    • 1、CoordinatorLayout
    • 2、AppBarLayout
    • 3、FloatingActionButton
    • 4、DrawerLayout
    • 5、TabLayout
    • 6、Snackbar
  • 五、其它功能
    • 1、图形
    • 2、无障碍
    • 3、媒体
    • 4、TV
    • 5、Wear
    • 6、实用工具
  • 六、软件包
    • 1、v4
    • 2、multidex
    • 3、v7
    • 4、v8
    • 5、v13
    • 6、v14
    • 7、v17
    • 8、矢量图形库
    • 9、注解
    • 10、Design支持库
    • 11、自定义标签库
    • 12、Percent库
    • 13、ExifInterface库
    • 14、内容推荐
    • 15、Wear界面库
  • 七、Gradle配置
  • 八、AndroidX

参考:https://developer.android.com/topic/libraries/support-library

一、简介

Android Support 库,是 Android 标准 SDK 之外的支持库,用以支持版本兼容性,提供新功能等。Android 9.0 发布后,Android Support 将迁移到新版本的 AndroidX,AndroidX 是 Jetpack 的一部分,建议使用 AndroidX。

二、应用组件

1、Activity

ActivityCompat:包含针对最新的关键 Activity 功能的向后兼容实现,例如运行时权限和动画过渡。
FragmentActivity:提供 Activity 的向后兼容实现,以使用 Fragment 和 Loader API 的支持库版本。
AppCompatActivity:为较低版本的设备提供 Material Design 颜色主题背景、微件色调调节和应用栏支持。需要使用 Theme.AppCompat 主题背景实现一致的视觉呈现效果,才能使用此类。

2、Fragment

提供框架 Fragment 类的独立实现。此类必须与 FragmentActivity 搭配使用。

3、ContextCompat

为较新版本的 Context 类中引入的功能提供支持,包括权限支持、文件访问权限和颜色信息。

4、IntentCompat

为较新版本的 Intent 类中引入的功能提供支持,包括选择和启动特定 Activity 的方法。

5、Loader

提供框架 Loader 类的静态实现,并且是 AsyncTaskLoader 和 CursorLoader 支持类的基类。

6、Preference

此类及其子类以向后兼容的方式提供应用设置界面的实现。

7、ContentResolverCompat

为较新版本的 ContentResolver 类中引入的功能提供支持,特别是支持取消进行中的查询的 query() 方法。

三、界面

1、RecyclerView

创建用于显示长列表的布局,并通过使用策略避免过高的内存消耗。借助此类,可以针对较大的数据集创建有限的窗口视图,从而避免在显示列表时消耗大量内存。

2、ViewPager

提供一种布局,允许用户左右翻阅数据页面。

3、GridLayout

提供一种子项位于矩形网格中的布局,可支持任意跨度的连续单元格和灵活的空间分布。此类提供了在 Android 4.0(API 级别 14)中引入的 GridLayout 类的向后兼容版本。

4、PercentFrameLayout

布局的子视图和内容支持基于百分比的尺寸和边距。

5、PercentRelativeLayout

布局的子视图和内容支持基于百分比的尺寸和边距。

6、DrawerLayout

创建一种布局,允许从视图窗口的边缘拉出互动式的抽屉式导航栏视图。

7、SlidingPaneLayout

提供一种水平的多窗格布局,以在应用界面的顶层用于创建各种布局,这些布局能够顺畅地适应多种不同的屏幕尺寸、在较大屏幕中展开以及通过折叠适应更小的屏幕。

8、NestedScrollView

支持嵌套其他滚动视图的滚动布局,可让创建列表项中包含其他子列表的列表,这些嵌套列表可以包含独立于父列表横向或纵向滚动的项。

9、SwipeRefreshLayout

提供一种布局,该布局支持通过手指滑动手势刷新列表或其他布局的数据。

10、CardView

一种支持库自定义类,用于创建 Material Design 样式的显示卡片,此类基于具有圆角和阴影的 FrameLayout。

11、AppCompatDialogFragment

通过扩展 DialogFragment 和使用 AppCompatDialog 提供样式一致的对话框。

12、NotificationCompat

以向后兼容的方式为较新的通知样式提供支持。

13、SearchView

提供一个类,以供用户输入搜索查询并向搜索提供器提交请求,该类主要在应用栏中使用。

四、Material Design

1、CoordinatorLayout

为整合 Material Design 组件和行为的布局提供顶层容器,此类还可以用作与一个或多个子视图进行特定交互的容器。

2、AppBarLayout

提供 Material Design 应用栏概念的许多滚动功能的实现。

3、FloatingActionButton

创建浮动按钮,用于显示您希望用户执行的特殊类型操作,此 Material Design 界面元素显示为浮在应用界面上方的圆形图标。

4、DrawerLayout

创建抽屉式导航栏,即显示应用的主导航菜单的界面面板,当用户从屏幕左边缘滑动手指或点按应用栏中的抽屉式导航栏图标时,此导航栏就会显示。

5、TabLayout

提供一种用于显示标签式页面的布局,此微件应与 ViewPager 类一起使用。

6、Snackbar

提供一个微件,用于使用信息提示控件弹出式窗口显示与操作有关的精简反馈。

五、其它功能

1、图形

android.support.graphics.drawable 软件包提供了对矢量可绘制对象的支持。通过使用矢量可绘制对象,可以使用一个矢量图形(在 XML 中定义)替换多个 PNG 资源。
VectorDrawableCompat 为 API 级别 9 及更高版本中的矢量可绘制对象提供支持。
AnimatedVectorDrawableCompat 为 API 级别 11 及更高版本中的动画矢量可绘制对象提供支持。

2、无障碍

android.support.v4.view.accessibility 软件包提供了用于实现在 API 级别 14 及更高版本中引入的无障碍功能的兼容性类,使无障碍服务能够观察和识别用户与屏幕中显示的项目进行的互动。
ExploreByTouchHelper:在代表类视图逻辑项集合的自定义视图中提供无障碍支持。

3、媒体

Android 支持库可支持将媒体路由器功能向后移植到搭载的低于 Android 4.1(API 级别 16)的平台版本的设备。借助这些类,可以在连接的 Android 设备上控制媒体播放。
MediaRouter:让应用能够控制媒体渠道和流从当前设备到外部扬声器和目标设备的路由路径。
MediaControllerCompat:让应用能够与进行中的媒体会话进行交互。应用可以通过此机制提供媒体控制按钮,并将其他播放命令发送到会话。
MediaSessionCompat:提供针对媒体播放的远程控制界面,以支持与其他应用或独立设备中的媒体控制器、音量键、媒体按钮和传输控件进行交互。

4、TV

Android SDK 提供了各种库以支持大屏幕设备等设备类型及相关的控制器。应用可以借助相应的支持库为各种平台版本提供功能,并且可以在外部屏幕、扬声器和其他目标设备上提供内容。
android.support.v17.leanback.* 软件包

5、Wear

Android SDK 提供了支持手表的库。这些库为应用提供了当用户佩戴手表时可用的功能。
android.support.wear.* 软件包

6、实用工具

Android 支持库提供了许多未内置于框架的功能。这些库提供了一系列应用可以使用的实用工具。
android.support.v4.util 软件包

六、软件包

1、v4

com.android.support:support-v4:28.0.0
com.android.support:support-compat:28.0.0
com.android.support:support-core-utils:28.0.0
com.android.support:support-core-ui:28.0.0
com.android.support:support-media-compat:28.0.0
com.android.support:support-fragment:28.0.0

2、multidex

com.android.support:multidex:1.0.0

3、v7

com.android.support:appcompat-v7:28.0.0
com.android.support:cardview-v7:28.0.0
com.android.support:gridlayout-v7:28.0.0
com.android.support:mediarouter-v7:28.0.0
com.android.support:palette-v7:28.0.0
com.android.support:recyclerview-v7:28.0.0
com.android.support:preference-v7:28.0.0

4、v8

Android Studio 和基于 Gradle 的编译版本支持将 RenderScript 与支持库配合使用。renderscript 库位于 build-tools/$VERSION/renderscript/ 文件夹中。
Gradle 编译脚本属性:

    defaultConfig {renderscriptTargetApi 18renderscriptSupportModeEnabled true}

5、v13

com.android.support:support-v13:28.0.0

6、v14

com.android.support:preference-v14:28.0.0

7、v17

com.android.support:preference-leanback-v17:28.0.0
com.android.support:leanback-v17:28.0.0

8、矢量图形库

com.android.support:support-vector-drawable:28.0.0
com.android.support:animated-vector-drawable:28.0.0

9、注解

com.android.support:support-annotations:28.0.0

10、Design支持库

com.android.support:design:28.0.0

11、自定义标签库

com.android.support:customtabs:28.0.0

12、Percent库

com.android.support:percent:28.0.0

从 26.0.0 版本开始,Percent 支持库已被弃用,应该使用ConstraintLayout。

13、ExifInterface库

com.android.support:exifinterface:28.0.0

Exif 标记将屏幕方向、日期和时间、相机信息和位置等信息直接存储在 JPEG 文件或 RAW 文件中。

14、内容推荐

com.android.support:recommendation:28.0.0

15、Wear界面库

com.android.support:wear:28.0.0

七、Gradle配置

支持库通过 Google 的 Maven 代码库获取。
在项目的 build.gradle 文件中添加Google的Maven代码库:

    allprojects {repositories {google()// If you're using a version of Gradle lower than 4.1, you must// instead use://// maven {//     url 'https://maven.google.com'// }}}

在模块的 build.gradle 文件中 dependencies 块中添加相应的库:

    dependencies {// ...implementation "com.android.support:support-core-utils:28.0.0"}

八、AndroidX

参考:https://developer.android.com/jetpack/androidx

androidx现已完全取代support库,建议使用androidx。
项目中使用androiodx时,需要在 gradle.properties 文件中设置 Android Gradle 插件的标记:
android.useAndroidX:该标记设置为 true 时,Android 插件会使用对应的 AndroidX 库,而非支持库。如果未指定,则该标记默认为 false。
android.enableJetifier:该标记设置为 true 时,Android 插件会通过重写其二进制文件来自动迁移现有的第三方库,以使用 AndroidX 依赖项。如果未指定,该标记默认为 false。

【Android】Android Support库介绍相关推荐

  1. Material Design 开发利器:Android Design Support Library 介绍

    Material Design 开发利器:Android Design Support Library 介绍 本文翻译自著名博客 Android Developers,原作者是 Ian Lake,点击 ...

  2. Android 各个Support Library介绍

    参考: http://zmywly8866.github.io/2015/10/09/android-support-library.html V4 Support Library 这个包的名字是:& ...

  3. android广播第三方库,Android Support 库:LocalBroadcastManager

    在介绍完 Android Support 库发展历程(http://blog.chengyunfeng.com/?p=1047)后, 再分别介绍下 Android Support 库中有用但是被忽略的 ...

  4. GitHub 上排名前 100 的 Android 开源库介绍

    转自:http://www.codeceo.com/article/github-top-100-android-libs.html 本项目主要对目前 GitHub 上排名前 100 的 Androi ...

  5. GitHub上排名前100的Android开源库介绍

    摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然 ...

  6. Android Design Support Library 中控件的使用简单介绍(一)

    Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...

  7. 记录一个AndroidX和Android support库不能共存的坑

    今天用到第三方库的时候一直报异常More than one file was found with OS independent path 'META-INF/androidx.legacy_lega ...

  8. Android Support库百分比布局

    之前写过一篇屏幕适配的文章Android 屏幕适配最佳实践,里面提到了类似百分比布局的东西,但是该方法缺点很明显,就会增加很多无用的数据,导致apk包变大. 而谷歌的support库中,增加了一个叫做 ...

  9. Android support v4、v7、v13、v14、v17和其他support库免费下载

    文章目录 一. 前言 二.下载 1 android-support-v4下载 2 andorid-support-v7下载 3 andorid-support-v13下载 4 andorid-supp ...

最新文章

  1. Hadoop- MapReduce分布式计算框架原理
  2. 2018年最实用的6个机器学习项目
  3. Git 查看提交历史
  4. Alfresco Community 批量导入指南
  5. 10 分钟从零搭建个人博客
  6. poj 1830 开关问题 高斯消元
  7. tensorflow知识点
  8. 可以伪装mysql子节点框架是啥_kingbus 架构设计之如何伪装成 MySQL Master 角色
  9. Apache服务器之------虚拟主机多功能配置
  10. 药品计算机培训计划,_计算机培训学习计划范文
  11. 校验身份证、组织机构代码证、纳税人识别号、营业执照号 的方法
  12. openwrt使用tayga/totd实现NAT64/DNS64
  13. Word中如何删除某一页的页眉,不影响其他页眉
  14. 2只老虎c语言课程设计,二年级《两只老虎》教学设计
  15. 复星文旅换帅:徐晓亮任董事长职务 钱建农将任复星国际执行总裁
  16. 从魔兽世界论专业队友的重要性
  17. 国际物流专线是什么意思?
  18. opencv实现车牌识别
  19. [转]记一次linux(被)入侵,服务器变矿机~
  20. Nginx+Tomcat的配合使用

热门文章

  1. You are not allowed to create a user with GRANT
  2. 电子邮件头跟踪_如何以正确的方式发送电子邮件:跟踪,跟进并获得回复。
  3. 机器学习 - K-means聚类分析
  4. 永远年轻,永远热泪盈眶 1
  5. 品牌授权关联扑朔迷离,卖家如何自救?
  6. Springboot毕设项目基于springboot的城市智能出行rota7java+VUE+Mybatis+Maven+Mysql+sprnig)
  7. 计算机本科应届生年薪30W40W真的很普遍吗?
  8. “毒舌”专家解析大数据应用案例Part3—大数据打造互联网+物流菜鸟物流大数据应用分析...
  9. 2021-02-08 单工、半双工和全双工有何区别和联系
  10. 路由器NAT类型检测