欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AndroidX与原始 Android 支持库

程序员文章站 2022-06-08 12:05:51
...

为什么要用AndroidX替代支持库

支持库引入的原因,是因为随着Android系统版本更新,肯定会带来一些新的系统变化,同时也为开发者带来了新的功能接口或Api能力。为了既要支持老的系统版本,又要具备新的Api功能,Android官方提供了支持库(android.support.*)。支持库的对应版本中,包含了可以支持到的具体的最低版本的,同时具有新的功能提供的具体实现及接口。于是,通过引入支持库,既不影响最低支持的版本,又具有了新的Android系统功能。
支持库为了利用Android系统自身的一些可能的新能力,每个版本的如v4的支持库内部,又针对不同的编译版本,划分出了多个支持库细分版本。后来,开发者引入时,需要引入与当前项目编译版本相对应的,且需要满足当前项目最低支持版本的具体支持库构建版本。最终导致的一个问题是,繁杂的支持库变更,不仅开发者不方便使用,官方维护也不容易。
为了解决支持库的命名的混乱,Google推出了androidx。

Androidx的特性

androidx 命名空间中的工件包含 Android Jetpack 库。与支持库一样,androidx 命名空间中的库与 Android 平台分开提供,并向后兼容各个 Android 版本。
AndroidX 对原始 Android 支持库进行了重大改进,后者现在已不再维护。androidx 软件包完全取代了支持库,不仅提供同等的功能,而且提供了新的库。

此外,AndroidX 还包括以下功能:

AndroidX 中的所有软件包都使用一致的命名空间,以字符串 androidx 开头。支持库软件包已映射到对应的 androidx.* 软件包。有关所有旧类到新类以及旧构建工件到新构建工件的完整映射,请参阅软件包重构页面。

与支持库不同,androidx 软件包会单独维护和更新。从版本 1.0.0 开始,androidx 软件包使用严格的语义版本控制。您可以单独更新项目中的各个 AndroidX 库。

如何在项目中使用androidX

要想使用androidx或者虽说需要把项目从支持库迁移到androidx,需要了解从支持库到对应的 AndroidX 工件和类的正确映射(参考官网文档:https://developer.android.google.cn/jetpack/androidx/migrate

下面是一些常见的映射:
支持库工件映射:
AndroidX与原始 Android 支持库
支持库类映射:
AndroidX与原始 Android 支持库

下面通过一个简单例子来说明如何使用androidx:

首先 需要在 gradle.properties 文件中将以下两个 Android Gradle 插件标记设置为 true。(现在android studio的版本都是默认支持这种方式了)

android.useAndroidX: 该标记设置为 true 时,Android 插件会使用对应的 AndroidX 库,而非支持库。
android.enableJetifier: 该标记设置为 true 时,Android 插件会通过重写其二进制文件来自动迁移现有的第三方库,以使用 AndroidX 依赖项。

AndroidX与原始 Android 支持库
然后 在build.gradle引入相应的依赖(我这里以RecyclerView为例)

旧构建工件:

implementation 'com.android.support:recyclerview-v7:27.1.1'

使用androidx:

AndroidX与原始 Android 支持库
最后 在布局文件中使用

支持库:
AndroidX与原始 Android 支持库

使用androidx:
AndroidX与原始 Android 支持库

相关标签: androidx android