Skip to content

Android Support支持库

Mr.wu edited this page May 16, 2017 · 7 revisions

v4 支持库

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

如需了解有关 v4 支持库所提供类和方法的完整详细信息,请参阅 API 参考中的 android.support.v4 软件包。

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

v4 compat 库

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

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

com.android.support:support-compat:25.0.0

v4 core-utils 库

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

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

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

v4 core-ui 库

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

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

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

v4 media-compat 库

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

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

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

v4 fragment 库

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

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

com.android.support:support-fragment:25.0.0

Dalvik 可执行文件分包支持库

此库可以为使用多个 Dalvik Executable (DEX) 文件开发应用提供支持。引用超过 65536 个方法的应用须使用 Dalvik 可执行文件分包配置。如需了解有关使用 Dalvik 可执行文件分包的详细信息,请参阅使用超过 6.4 万种方法开发应用。

此库的 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:25.0.0

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

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

com.android.support:palette-v7:25.0.0

v7 Preference 支持库

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

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

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

com.android.support:preference-v7:25.0.0

v7 mediarouter 库

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

一般而言,利用 v7 mediarouter 库中的 API,您可以控制当前设备到外部屏幕、扬声器和其他目标设备的媒体渠道和流的路由。此库包含的 API 可以用于发布应用特定的媒体路由提供程序、发现和选择目标设备,以及检查媒体状态,等等。如需了解有关 v7 mediarouter 库 API 的详细信息,请参阅 API 参考中的 android.support.v7.media 软件包。

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

com.android.support:mediarouter-v7:25.0.0

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

注解支持库

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

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

com.android.support:support-annotations:25.0.0

设计支持库

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

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

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

com.android.support:design:25.0.0

自定义标签页支持库

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

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

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

com.android.support:customtabs:25.0.0

百分比支持库

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

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

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

com.android.support:percent:25.0.0

support-v4 触角太深

v4 包从 2011 年开始出来,由于 ViewPager、FragmentActivity 等类,v4 被大量其他包引用,早已子孙遍全球,比如 v7 兼容包 appcompat-v7 就依赖 v4。

我们可以尝试通过 exclude module 可以把 v7 中 v4 去掉,然并卵,v7 依赖 FragmentActivity 这个类,而 FragmentActivity 位于 v4 的 support-fragment 中,所以依赖变成这样:

compile ('com.android.support:appcompat-v7:25.0.0') {
    exclude module: 'support-v4'
}
compile 'com.android.support:support-fragment:25.0.0'

上面介绍过现在 com.android.support:support-fragment 与 com.android.support:support-v4 已经几乎无异,所以对于依赖 v7 的 App 来说这次的 v4 拆分不能带来任何依赖包体积的精简。

初步看来 data-binding 也依赖与 support-v4。

参考资料:

Home

Android 开发录

-深入理解LayoutInflater.inflate()的参数

计算机网络原理

数据库

Java 垃圾回收机制

Java 开发录

面试

搭建翻墙shadowsocks 教程

其他

Clone this wiki locally