AndroidX适配教程-程序员宅基地

技术标签: AndroidX  适配  

AndroidX概述

AndroidX是Android团队用于在Jetpack中开发,测试,打包,版本和发布库的开源项目 。AndroidX是对原始Android 支持库的重大改进 。与支持库一样,AndroidX与Android操作系统分开提供,并提供跨Android版本的向后兼容性。与支持库不同的是通过AndroidX可以看到实时实现的特性和bug修复,升级个别依赖,不需要对使用的所有其他库进行更新。AndroidX未来将完全取代支持库。此外,AndroidX还包括以下功能:

AndroidX中的所有软件包都以字符串开头,位于一致的命名空间中androidx。支持库包已映射到相应的androidx.*包中。
与支持库不同,AndroidX软件包是单独维护和更新的。这些androidx包使用 从版本1.0.0开始的严格语义版本控制。您可以单独更新项目中的AndroidX库。
所有新的支持库开发都将在AndroidX库中进行。这包括维护原始支持库工件和引入新的Jetpack组件。

AndroidX带来的依赖库变化

以下为常用的依赖库,

Old build artifact AndroidX build artifact

com.android.support:support-compat

androidx.core:core:1.0.0+

com.android.support:appcompat-v7 androidx.appcompat:appcompat:1.0.0+
com.android.support:recyclerview-v7

androidx.recyclerview:recyclerview:1.0.0+

com.android.support.constraint:constraint-layout

androidx.constraintlayout:constraintlayout:1.1.3+

com.android.support:design

com.google.android.material:material:1.0.0+

com.android.support:viewpager

androidx.viewpager:viewpager:1.0.0+

com.android.support:support-fragment

androidx.fragment:fragment:1.0.0+

com.android.support:multidex

androidx.multidex:multidex:2.0.1+

com.android.support:support-v4

androidx.legacy:legacy-support-v4:1.0.0+

迁移到AndroidX步骤

1.首先你的Android Studio版本至少为3.2.0以上,gradle版本4.10以上,以及compileSdkVersion为28以上

2.修改project目录下 gradle.properties,在里面添加两行代码:

    # 表示使用 androidx
    android.useAndroidX=true
    # 表示将第三方库迁移到 androidx
    android.enableJetifier=true

3.使用Android Studio的一键迁移的功能Refactor -> Migrate to AndroidX ,然后点击sync

4.进行完转换后发现代码是一片报红,无法编译运行,此时则只能进行手动修改导包了

需要检查修改报红的导包和xml,修改后如下:

5.项目中引用的第三方库进行升级兼容AndroidX,现在主流的三方库都已进行了AndroidX适配,若有些库必须使用并没有适配AndroidX,则只能降低版本使用

6.从support库迁移至androidx后,若使用了混淆,则必须在混淆文件中添加以下配置:

-keep class com.google.android.material.** {*;}
-keep class androidx.** {*;}
-keep public class * extends androidx.**
-keep interface androidx.** {*;}
-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**
-dontwarn androidx.**

 

    技术无止境,适配无尽头,最后祝大家适配AndroidX顺利!

      androidx官方文档

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MoonLoong/article/details/99551099

智能推荐

实现sum(1)(2)(3).valueOf(),实现这么一个sum函数,返回6_sum(1)(2)(3) 输出 6-程序员宅基地

文章浏览阅读2.1k次。function sum(a){ return function(b){ return function(c){return a+b+c}; }}console.log(sum(1)(2)(3).valueOf())_sum(1)(2)(3) 输出 6

RHEL 7.6 操作系统安装(上)_rhel7.6安装教程csdn-程序员宅基地

文章浏览阅读1.1k次。微信公众号:IT邦德目前B站(搜索jeames007)正在直播Mysql、Oracle、Python实战课程详情关注公众号:IT邦德 QQ群:168797397、5871594461.新建虚拟机在这里插入图片描述2.网卡设置3、安装操作系统3.1 成功引导系统后,会出现下面的界面3.2 安装RedHat7.6操作系统,回车,进入下面的界面3.3 选择语言:英文3.4.进入一站式安装界面,在此界面,只需把所有带感叹号的内容全部消除,便可进行安装3.5.时区选择,选_rhel7.6安装教程csdn

MapReduce wordcount测试卡死在running job_wordcount运行卡在running job-程序员宅基地

文章浏览阅读6.8k次,点赞2次,收藏14次。hadoop环境搭建好后,准备用MapReduce自带的wordcount程序测试一下,跑了几次总是卡在Running job那里2018-03-28 08:46:41,855 INFO client.RMProxy: Connecting to ResourceManager at master/192.168.85.3:80322018-03-28 08:46:42,341 INFO..._wordcount运行卡在running job

2022年全网最全的Oracle数据库技术附练习题以及答案 循序渐进_oracel大数据量进阶练习-程序员宅基地

文章浏览阅读1.8k次,点赞4次,收藏33次。前言【本章末尾给大家留下了大量的福利】 1.什么是数据库?>> 存储数据的仓库2.常见的数据库有哪些?Oracle>>甲骨文Mysql>>甲骨文SQLServer>>微软Access>>微软DB2>>IBM人大金仓>>国产 3.生活中哪些地方使用数据库?超市商品管理系统>>商品信息网上购物商城>>商品信息和账户信息银行管理系统>>账户信息12306>>账户信息和车次信息一、数据库发展史1.1 程序管理阶段20世纪50年代中前期特点:数据不能长期保存1.2 文件系统阶段20世纪50年代后期-->20世纪60年_oracel大数据量进阶练习

Python入门——安装与PIP_pip install panders-程序员宅基地

文章浏览阅读521次。Python入门——安装与PIPPython下载安装版本控制各个版本安装到不同目录下:版本设置:运行运行pip37版本:运行python38版本:PIP换源临时使用pip源方法:永久换源方法:Linux方法:Windows方法:pip使用pip介绍依赖包查询pip说明:pip安装某一个库:pip卸载某个库pip升级某个包pip列出当前已经安装可升级的包pip批量升级过期包使用pip-review批..._pip install panders

2019秋招:460道Java后端面试高频题答案版【模块二:Java集合类】-程序员宅基地

文章浏览阅读1.3w次。点击上方“码农进阶之路”,选择“设为星标”回复“面经”获取面试资料 来源:https://url.cn/5dVANAQ 说明:答案来自于我的秋招复习笔记,但是答案都是..._使用hashset存储数据,并不是按添加的顺序存储;不管数据所处的位置,访问数据的速度

随便推点

QT入门之main函数中的QApplication a(argc,argv)与exec()作用_qapplication a(argc, argv)-程序员宅基地

文章浏览阅读7.9k次,点赞22次,收藏52次。一个最简单、最初级的QT程序如下所示int main(int argc,char * argv[]){ QApplication a(argc,argv); MainWindow w; w.show(); return a.exec();}(1)QApplication a(argc,argv);定义一个 Qt 应用程序对象,它的构造函数接收和 main 函数一样的参数,是 Qt 图形界面程序的入口,就像 main 函数是普通 C++ 程序的入口一样。(2)re_qapplication a(argc, argv)

rpm包与deb包的制作过程_debian与prm-程序员宅基地

文章浏览阅读1.5k次。制作RPM包第一步:BUILD目录:tar.gz包的解压后存放的位置,并在此目录进行编译安装SPECS目录:存放SPEC文件(important)RPMS目录:存放制作好的rpm包SOURCES目录:存放源代码SRPMS目录:存放编译好的二进制rpm包BUILDROOT目录:在BUILD目录中执行完make install之后生成的目录mkdri -p ~/rpmb..._debian与prm

AWD-LSTM为什么这么棒?_regularizing and optimizing lstm language models-程序员宅基地

文章浏览阅读2.2k次。AWD-LSTM是目前最优秀的语言模型之一。在众多的顶会论文中,对字级模型的研究都采用了AWD-LSTMs,并且它在字符级模型中的表现也同样出色。本文回顾了论文——Regularizing and Optimizing LSTM Language Models,在介绍AWD-LSTM模型的同时并解释其中所涉及的各项策略。该论文提出了一系列基于词的语言模型的正则化和优化策略。这些策略不仅行之有..._regularizing and optimizing lstm language models

centos7安装python3.62出现pip错误_使用yum工具在CentOS7系统下安装python-pip错误时的对应技巧...-程序员宅基地

文章浏览阅读270次。pip简介 pip 是一个Python计算机程序语言写成的软件包管理系统,它可以安装和管理软件包有时我们在使用centos7的软件包管理程序yum安装python-pip的时候会报一下错误:No package python-pip available. Error: Nothing to do翻译过来即是说没有python-pip软件包可以安装。这是因为像centos这类衍生出来的发行版,他们的..._安装 pip时出现 no package python-pip available. error: nothing to do错误、

飞思卡尔MC9S12G64串口发送接收驱动_s12z 串口-程序员宅基地

文章浏览阅读1.6k次。因为之前刚入职,对串口调试不了解,下面整理一下书上的串口程序。 移植性还比较强使用说明:MC9S12系列的串口有两种查询方式 1》使用中断方式查询 2》在主函数中使用轮询的方式的方法进行查询 这两种方法在下面函数中都有体现,需要在用的时候注意分别提取 主要是初始化的SCI1..._s12z 串口

DS Video for Android TV (稳定安装打开版)_ds video tv版-程序员宅基地

文章浏览阅读1.4k次。这个 apk 只支持到 Android 5.0 以上的版本。Android 5.0 以下的就不用试了。要想在普通的 Android 系统电视盒子上使用 DS Video for Android TV 版,DS Video for Android TV 版的 apk 请直接去群晖官网的下载中心下载吧。需要附件里的这个 apk 和 群晖官网下载中心下载的那个 apk 这两个都安装上才可以._ds video tv版