AndroidX与原始 Android 支持库

为什么要用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:

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

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

在这里插入图片描述
然后 在build.gradle引入相应的依赖(我这里以RecyclerView为例)

旧构建工件:

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

使用androidx:

在这里插入图片描述
最后 在布局文件中使用

支持库:
在这里插入图片描述

使用androidx:
在这里插入图片描述

发布了14 篇原创文章 · 获赞 1 · 访问量 3212

猜你喜欢

转载自blog.csdn.net/weixin_43729960/article/details/105520180
今日推荐