Android 开发中常用的支持库

2016/6/11 posted in  Android

转载自《Android开发中那些常见到让人忽视的基础知识》

前言

许多情况下,某项功能可能对应用开发者很有用,但是添加到 Android 框架却并不合适。例如,某个应用可能仅需要用于特定用例的某项功能,如在不同版本的 Android 系统之间顺畅切换。

为了解决这一问题,Android SDK 添加了多个库,这些库统称为 Android 支持库。如果应用开发者想要在应用中集成库功能,他们可以添加其中任意一个库。

Android支持库(Android Support Library)

  • 向后兼容版本的框架组件

什么是向后兼容?-让在旧版本 Android 平台上运行的应用支持为新版本平台推出的功能。例如,应用在依赖于框架类的 5.0(API 级别 21)版本以下的 Android 系统上运行时,将无法显示 Material Design 元素,因为该版本的 Android 框架不支持 Material Design。但是,如果此应用添加了支持库的 appcompat 库,则可以访问 API 级别 21 中具有的许多功能,其中包括对 Material Design 的支持。

  • 用于实现建议的 Android 布局模式的UI元素

如DrawerLayout,RecyclerView等

  • 支持不同的设备类型

如Android TV,Android Auto等

  • 其他实用功能

如运行时权限等

支持库种类:

  • support-v4

    用在 Android 2.3(API 级别 9) 或更高版本上。

  • support-v7

    用在 Android 2.3(API 级别 9)或更高版本上,依赖v4

  • support-v8

  • support-v13

  • support-v14

  • support-v17

  • 注解支持库

  • 设计支持库

各种支持库功能描述

v4 支持库

这些库旨在与 Android 2.3(API 级别 9)及更高版本搭配使用。与其他支持库相比,它们包含的 API 集合最大,包括对应用组件、用户界面功能、辅助功能、数据处理、网络连接以及编程实用工具的支持。

注:在支持库修订版 24.2.0 之前,存在一个 v4 支持库。为了提高效率,此库拆分成多个模块。出于向后兼容的考虑,如果在 Gradle 脚本中列出了 support-v4,APK 将包含所有的 v4 模块。不过,要减少 APK 大小,建议仅列出应用需要的特定模块。

v4 compat 库

为众多框架 API 提供兼容性包装器,例如 Context.obtainDrawable() 和 View.performAccessibilityAction()。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:support-compat:24.2.0

v4 core-utils 库

提供大量实用程序类,例如 AsyncTaskLoader 和 PermissionChecker。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:support-core-utils:24.2.0

v4 core-ui 库

实现各种 UI 相关组件,例如 ViewPager、NestedScrollView 和 ExploreByTouchHelper。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:support-core-ui:24.2.0

v4 media-compat 库

向后移植部分媒体框架,包括 MediaBrowser 和 MediaSession。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:support-media-compat:24.2.0

v4 fragment 库

添加对使用片段封装用户界面和功能的支持,从而使应用能够提供可以在大屏幕设备与小屏幕设备之间进行调节的布局。此模块依赖于 compat、core-utils、core-ui 和 media-compat。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:support-fragment:24.2.0

Dalvik 可执行文件分包支持库

此库可以为使用多个 Dalvik Executable (DEX) 文件开发应用提供支持。引用超过 65536 个方法的应用须使用 Dalvik 可执行文件分包配置。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:multidex:1.0.0

v7 支持库

一些库旨在与 Android 2.3(API 级别 9)及更高版本搭配使用。这些库提供了特定的功能集,并且可以单独添加到应用中,与其他库互不影响。

v7 appcompat 库

此库添加了对操作栏用户界面设计模式的支持。此库包含对 Material Design 用户界面实现的支持。

注:此库依赖于 v4 支持库。

下面是 v7 appcompat 库中包含的一些关键类:

ActionBar - 提供操作栏用户界面模式的实现。

AppCompatActivity - 添加一个应用 Activity 类,此类可作为使用支持库操作栏实现的 Activity 的基础类。

AppCompatDialog - 添加一个对话框类,此类可作为 AppCompat 主题对话框的基础类。

ShareActionProvider - 包含对可以添加到操作栏中的标准化分享操作(例如电子邮件或发帖至社交应用)的支持。
此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:appcompat-v7:24.2.0

v7 cardview 库

此库添加了对 CardView 小部件的支持,让您能够在卡片内显示信息,从而使应用具备一致的外观。这些卡片对 Material Design 实现非常有用,并在电视应用布局中广为使用。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:cardview-v7:24.2.0

v7 gridlayout 库

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:gridlayout-v7:24.2.0

v7 mediarouter 库

此库可以提供 MediaRouter、MediaRouteProvider 和支持 Google Cast 的相关媒体类。

一般而言,利用 v7 mediarouter 库中的 API,您可以控制当前设备到外部屏幕、扬声器和其他目标设备的媒体渠道和流的路由。此库包含的 API 可以用于发布应用特定的媒体路由提供程序、发现和选择目标设备,以及检查媒体状态,等等。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:mediarouter-v7:24.2.0

支持库 r18 中引入的 v7 mediarouter 库 API 在后续版本的支持库中可能会发生更改。目前,建议仅使用与 Google Cast 有关的库。

v7 palette 库

v7 palette 支持库包含 Palette 类,此类让您可以从图像中抽取突出颜色。例如,音乐应用可以使用 Palette 对象从专辑封面抽取主要颜色,然后使用这些颜色创建一个色彩协调的歌曲标题卡。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:palette-v7:24.2.0

v7 recyclerview 库

recyclerview 库添加了 RecyclerView 类。此类能够为 RecyclerView 小部件提供支持,RecyclerView 是一种通过提供有限的数据项窗口有效显示大数据集的视图。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:recyclerview-v7:24.2.0

v7 Preference 支持库

首选项软件包提供的 API 支持添加 preference 对象(例如 CheckBoxPreference 和 ListPreference),方便用户修改 UI 设置。

v7 Preference 库添加了对接口(例如 Preference.OnPreferenceChangeListener 和 Preference.OnPreferenceClickListener)以及类(例如 CheckBoxPreference 和 ListPreference)的支持。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:preference-v7:24.2.0

v8 支持库

此库旨在与 Android 2.3(API 级别 9)及更高版本搭配使用。此库提供了特定的功能集,并且可以单独添加到应用中,与其他库互不影响。

v8 renderscript 库

此库旨在与 Android 2.3(API 级别 9)及更高版本搭配使用。它添加了对 RenderScript 计算框架的支持。 android.support.v8.renderscript 软件包中包含这些 API。请注意,在应用中添加这些 API 的步骤与添加其他支持库 API 迥然不同。

注:Android Studio 和 Gradle 构建支持使用带支持库的 RenderScript。renderscript 库位于 build-tools/$VERSION/renderscript/ 文件夹中。

以下示例显示了此库的 Gradle 构建脚本属性:

defaultConfig {
    renderscriptTargetApi 18
    renderscriptSupportModeEnabled true
}

v13 支持库

此库旨在用于 Android 3.2(API 级别 13)及更高版本。它添加了对带有 (FragmentCompat) 类和其他片段支持类的 Fragment 用户界面模式的支持。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:support-v13:24.2.0

v14 Preference 支持库

android.support.v14.preference 软件包提供的 API 添加了对首选项接口(例如 PreferenceFragment.OnPreferenceStartFragmentCallback 和 PreferenceFragment.OnPreferenceStartScreenCallback)以及类(例如 MultiSelectListPreference 和 PreferenceFragment)的支持。
此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:preference-v14:24.2.0

适用于电视的 v17 Preference 支持库

android.support.v17.preference 软件包提供的 API 可以在电视设备上提供首选项接口,包括对 LeanbackListPreferenceDialogFragment.ViewHolder.OnItemClickListener 接口和类的支持,例如 BaseLeanbackPreferenceFragment 和 LeanbackPreferenceFragment。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

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

v17 Leanback 库

android.support.v17.leanback 软件包提供的 API 支持在电视设备上构建用户界面。它为电视应用提供了一些重要的小部件。一些值得注意的类包括:

BrowseFragment - 一种用于创建主要布局的片段,主要布局用于浏览类别和媒体项目。

DetailsFragment - 用于 Leanback 细节屏幕的包装器片段。

PlaybackOverlayFragment - 用于显示播放控件及相关内容的 DetailsFragment 子类。

SearchFragment - 用于处理搜索的片段。片段可以接收用户的搜索请求并将其传递给应用提供的 SearchResultProvider。SearchResultProvider 可以将搜索结果返回给 SearchFragment,后者会将结果渲染到 RowsFragment 中。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:leanback-v17:24.2.0

注解支持库

注解软件包提供的 API 支持向应用中添加注解元数据。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:support-annotations:24.2.0

设计支持库

设计软件包提供的 API 支持向应用中添加 Material Design 组件和模式。

设计支持库添加了对应用开发者依赖的各种 Material Design 组件和模式的支持,例如抽屉式导航栏、浮动操作按钮 (FAB)、快捷信息栏和标签页。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:design:24.2.0

自定义标签页支持库

自定义标签页软件包提供的 API 支持向应用中添加自定义标签页并对其进行管理。

自定义标签页支持库添加了对自定义标签页服务和自定义标签页回调等各种类的支持。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:customtabs:24.2.0

百分比支持库

百分比软件包提供的 API 支持向应用中添加基于百分比的尺寸并对其进行管理。

百分比支持库添加了对 PercentLayoutHelper.PercentLayoutParams 接口和各种类的支持,例如 PercentFrameLayout 和 PercentRelativeLayout。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:percent:24.2.0

适用于电视的应用建议支持库

应用建议软件包提供的 API 支持向电视设备上运行的应用中添加内容建议。

应用库添加了对注解(例如 ContentRecommendation.ContentMaturity 和各种类(例如 ContentRecommendation 和 RecommendationExtender)的支持。

此库的 Gradle 构建脚本依赖关系标识符如下所示:

com.android.support:recommendation:24.2.0

参考文章:

https://developer.android.com/topic/libraries/support-library/features.html#v4

建议:

在对Android有一定了解的情况下,可以适当看一下Android官方文档,并做好记录,避免每次忘了都得去Google。