AndroidX是什么?
为什么会有AndroidX和android.support.*支持库?
在开发支持多个 API 版本的应用时,您可能需要一种标准的方法,以便对早期版本的 Android 系统提供新功能,或者优雅地回退到等效的功能。您可以利用这些库提供相应的兼容性层,而无需编译代码来处理早期版本的平台。此外,支持库还提供标准 Framework API 中未提供的额外的工具类和功能,使您能更轻松地面向更多设备进行开发和提供支持。
Android 支持库最初是适用于各种应用的单个二进制库,如今它已经发展为一套用于应用开发的库。现在,其中很多库在应用开发过程中即使不是必需的,我们也强烈推荐使用。
AndroidX是什么?
androidx 命名空间中的工件包含 Android Jetpack 库。与支持库一样,androidx 命名空间中的库与 Android 平台分开提供,并向后兼容各个 Android 版本。
AndroidX 对原始 Android 支持库进行了重大改进,后者现在已不再维护。androidx 软件包完全取代了支持库,不仅提供同等的功能,而且提供了新的库。
AndroidX 将原始支持库 API 替换为 androidx
命名空间中的软件包。只有软件包和 Maven 工件名称发生了变化;类、方法和字段名称没有变化。
AndroidX 还包括以下功能
- AndroidX 中的所有软件包都使用一致的命名空间,以字符串 androidx 开头。支持库软件包已映射到对应的 androidx.* 软件包。
- 与支持库不同,androidx 软件包会单独维护和更新。从版本 1.0.0 开始,androidx 软件包使用严格的语义版本控制。您可以单独更新项目中的各个 AndroidX 库。
- 版本 28.0.0 是支持库的最后一个版本。我们将不再发布 android.support 库版本。所有新功能都将在 androidx 命名空间中开发。
注意事项:
- 执行迁移之前,请先将应用更新到最新版本。我们建议您将项目更新为使用支持库的最终版本:版本 28.0.0。这是因为,1.0.0 版本的 AndroidX 工件是与支持库 28.0.0 工件等效的二进制文件。
- Android 9.0(API 级别 28)发布后,新版支持库 AndroidX 也随之诞生,它属于 Jetpack。除了现有的支持库,AndroidX 库还包含最新的 Jetpack 组件。
- 您可以继续使用此支持库以往的工件(这里指的是版本 27 及更早版本,且已打包为 android.support.*)在 Google Maven 中仍然可用。不过,所有新库的开发都将在 AndroidX 库中进行。
为什么将支持库android.support.*替换为AndroidX?
(android.support.*)部分支持库软件包的名称会指示其最初支持的最低 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。
那么很明显,Android团队也意识到这种命名已经非常不合适了,于是对这些API的架构进行了一次重新的划分,推出了AndroidX。因此,AndroidX本质上其实就是对Android Support Library进行的一次升级,升级内容主要在于以下两个方面。
第一,包名。之前Android Support Library中的API,它们的包名都是在android.support.*下面的,而AndroidX库中所有API的包名都变成了在androidx.*下面。这是一个很大的变化,意味着以后凡是android.*包下面的API都是随着Android操作系统发布的,而androidx.*包下面的API都是随着扩展库发布的,这些API基本不会依赖于操作系统的具体版本。
第二,命名规则。吸取了之前命名规则的弊端,AndroidX所有库的命名规则里都不会再包含具体操作系统API的版本号了。比如,像appcompat-v7库,在AndroidX中就变成了appcompat库。
一个AndroidX完整的依赖库格式如下所示:
implementation 'androidx.appcompat:appcompat:1.0.2'
支持库的用途
支持库有一些独特的用途,而针对平台早期版本的向后兼容性类只是其中之一。下表完整列出了支持库在应用中的用途:
- 新版 API 的向后兼容性 - 大量的支持库都为较新的框架类和方法提供向后兼容性。例如,Fragment 支持类为搭载 Android 3.0(API 级别 11)之前版本的设备中的 Fragment 提供支持。
- 工具类和辅助类 - 支持库提供了很多辅助类,特别是针对界面开发。例如,RecyclerView 类提供了一个界面微件,用于显示和管理超长列表,并可在 API 级别 7 及更高版本的 Android 系统中使用。
- 调试和实用工具 - 很多功能可以提供您集成到应用中的代码所不具备的实用工具,包括 support-annotations 库,它改进了对方法输入进行的代码 Lint 检查;以及多 dex 处理支持,用于通过 65536 种以上的方法配置和分发应用。
参考:
AndroidX概览
https://developer.android.google.cn/jetpack/androidx
迁移到 AndroidX
https://developer.android.google.cn/jetpack/androidx/migrate
其他
https://blog.csdn.net/guolin_blog/article/details/97142065
AndroidX是什么?相关推荐
- Androidx CoordinatorLayout 和 AppBarLayout 实现折叠效果(通俗的说是粘性头效果)
Androidx CoordinatorLayout 和 AppBarLayout 实现折叠效果 或者 说是粘性头效果 先看下面是不是你需要的结果 大致顺序是先滚动整体,然后折叠 在滚动list ...
- Android:你好,androidX!再见,android.support
190325 补充:莫名问题的解决 181106 补充:修改未迁移成功的三方库 1.AndroidX简介 点击查看Android文档中对androidx的简介 按照官方文档说明 androidx 是对 ...
- [Android Pro] AndroidX重构和映射
原文地址:https://developer.android.com/topic/libraries/support-library/refactor https://blog.csdn.net/ch ...
- androidx和android的区别,【译】使用AndroidX代替Android支持库
今天,我们发布一个新的Android扩展库(AndroidX)的早期预览版,这表示了支持库的一个新的时代.请为这些变化提出你们的反馈.既然这是一个早期的预览版本,我们并不建议放在生产环境尝试这些功能, ...
- Android Studio androidx 包冲突解决方法
Android Studio androidx 包冲突解决方法 参考文章: (1)Android Studio androidx 包冲突解决方法 (2)https://www.cnblogs.com/ ...
- android androidx版本,Android AndroidX 简介与迁移
AndroidX 简介 AndroidX 是 Android 团队用于在 Jetpack 中开发,测试,打包,版本和发布库的开源项目 . AndroidX 是对原始 Android Support L ...
- 【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
文章目录 一.报错信息 二.问题分析 一.报错信息 从 DEX 文件加载 Activity 组件 , 运行时报如下错误 ; 2021-12-12 14:02:52.432 5342-5342/com. ...
- androidx使用FileProvider适配安卓7
前言 安卓7版本后,需要适配获取本地uri,否则会报错,之前用的android support库,可以参考这篇文章<点击查看> 但是现在使用了androidx后,发现清单文件中配置不一样了 ...
- AndroidStudio中提示:This project uses AndroidX dependencies, but the ‘android.useAndroidX‘ property is
场景 Android Studio中在新建项目时勾选了 Use legacy android.support licrary 然后在运行项目时提示: This project uses Android ...
- Androidx ViewPager+Fragment 懒加载
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/113545036 本文出自[赵彦军的博客] 目录 前言 懒加载(预加载) 传统模式 ...
最新文章
- Java 洛谷 P1307 数字反转
- Neumorphism新拟物化控件设计灵感
- 为什么我们需要域?MS Active Directory系列之一
- Underscore js是一个JavaScript实用库
- 今天我必须要全网曝光这几个公众号
- 企业信息化政务信息化浙里办
- 看Panasonic EZ0l21充电器有感
- Xilinx FPGA配置clocking时钟动态相位输出
- Python 函数的使用和内嵌函数
- 电脑版桌面云便签账号怎么绑定微信或解绑微信?
- 编写程序解决“百钱买百鸡”问题。公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,现有百钱欲买百鸡,共有多少种买法?
- S7-1200PLC通过增量式编码器实现速度采集和模拟量采集
- 计算机科学丛书收藏,计算机科学丛书:机器学习
- 通过Ping检测网络故障的典型次序和IPconfig命令的使用
- Java枚举—枚举进阶
- 一句话证明:费马大定理
- 气象数据的可视化展现形式
- 非正常情况下的移动加权平均算法
- 4000多家沪深上市公司专利数据库(2010-2021年)
- 星际争霸2 人族两船兵笔记