当前位置: 首页 > 工具软件 > SuPPort > 使用案例 >

【Android】Android Support库介绍

齐朝明
2023-12-01

参考: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 18
        renderscriptSupportModeEnabled 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。

 类似资料: