Android支持库

# 支持库

支持库命名规范

引入支持库时的命名规范为:“group:name:version”
例如:

implementation 'com.android.support:appcompat-v7:28.0.0'

group: com.android.support
name: appcompat-v7
version: 28.0.0

支持库简介

注意:Android 9.0(API 级别 28)发布后,新版支持库 AndroidX 也随之诞生,它属于 Jetpack。除了现有的支持库,AndroidX 库还包含最新的 Jetpack 组件。
您可以继续使用此支持库以往的工件(这里指的是版本 27 及更早版本,且已打包为 android.support.*)在 Google Maven 中仍然可用。不过,所有新库的开发都将在 AndroidX 库中进行。
我们建议在所有新项目中使用 AndroidX 库。您还应该考虑将现有项目迁移到 AndroidX。

在开发支持多个 API 版本的应用时,您可能需要一种标准的方法,以便对早期版本的 Android 系统提供新功能,或者优雅地回退到等效的功能。您可以利用这些库提供相应的兼容性层,而无需编译代码来处理早期版本的平台。此外,支持库还提供标准 Framework API 中未提供的额外的工具类和功能,使您能更轻松地面向更多设备进行开发和提供支持。

支持库的用途

支持库有一些独特的用途,而针对平台早期版本的向后兼容性类只是其中之一。下表完整列出了支持库在应用中的用途:

  • 新版 API 的向后兼容性 - 大量的支持库都为较新的框架类和方法提供向后兼容性。例如,Fragment 支持类为搭载 Android 3.0(API 级别 11)之前版本的设备中的 Fragment 提供支持。
  • 工具类和辅助类 - 支持库提供了很多辅助类,特别是针对界面开发。例如,RecyclerView 类提供了一个界面微件,用于显示和管理超长列表,并可在 API 级别 7 及更高版本的 Android 系统中使用。
  • 调试和实用工具 - 很多功能可以提供您集成到应用中的代码所不具备的实用工具,包括 support-annotations 库,它改进了对方法输入进行的代码 Lint 检查;以及多 dex 处理支持,用于通过 65536 种以上的方法配置和分发应用。

使用 Support API 与使用 Framework API

支持库提供的类和方法与 Android 框架中的 API 非常相似。了解这点后,您可能想确定应该使用 API 的框架版本,还是使用等效的支持库。以下指南介绍了何时应使用支持库类代替 Framework API:

  • 特定功能的兼容性 - 如果要在搭载早期版本平台的设备上支持最新的平台功能,请使用支持库中等效的类和方法。
  • 相关库功能的兼容性 - 更复杂的支持库类可能依赖于一个或多个其他支持库类,因此您应该针对这些依赖项使用支持库类。例如,ViewPager 支持类应该与 FragmentPagerAdapter 或 FragmentStatePagerAdapter 支持类一起使用。
  • 常规设置兼容性 - 如果您打算以向后兼容的方式在您的应用中使用特定平台功能,但您目前没有相应功能,也依然建议在该应用中使用支持库类。例如,您可能想要使用 ActivityCompat 代替框架 Activity 类,以便以后可以利用更新的功能,例如集成在 Android 6.0(API 级别 23)中引入的新权限模型。

版本支持和软件包名称

部分支持库软件包的名称会指示其最初支持的最低 API 级别。这些名称使用 v# 表示法,例如 support-v4 软件包。从支持库版本 26.0.0(2017 年 7 月发布)开始,所有支持库软件包所支持的最低 API 级别已更改为 Android 4.0(API 级别 14)。因此,在使用任何最新版本的支持库时,您不应假设 v# 软件包表示法会指示最低 API 支持级别。最新版本中的这项更改还意味着,名称为 v4 和 v7 的库软件包与其支持的最低 API 级别本质上等效。例如,对于 26.0.0 及更高版本的支持库,support-v4 和 support-v7 软件包支持的最低 API 级别均为 14。

支持库发布版本

支持库的发布版本(例如 24.2.0 或 25.0.1)不同于相应版本中的任何库支持的最低 API 级别。发布版本号可以指示此版本是针对哪个版本的平台 API 而编译的,因此,可以指示此版本的库中可能包含哪些最新的 API。

具体而言,发布版本号的第一部分(例如版本号 24.2.0 中的 24)通常与相应版本发布时可用的平台 API 版本对应。支持库的发布版本级别可以指示此版本集成了相应 API 级别的部分功能,但您不应假设其可以兼容新的平台 API 版本中发布的所有功能。

库依赖项

Android 支持库套件中的大多数库都依赖于一个或多个库。例如,几乎所有支持库都依赖于 support-compat 软件包。通常,您无需担心支持库依赖项,因为 Gradle 编译工具会通过自动包含依赖的库来为您管理库依赖项。

如果您想要查看您的应用中包含哪些库和库依赖项,请在应用开发项目的构建根目录下运行以下命令,获取关于此项目的依赖项的报告,其中包括 Android 支持库和其他库:

gradle -q dependencies your-app-project:dependencies

或者使用可视化方式,查看模块依赖:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学知识拯救世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值