Android源码中com.android.support依赖迁移到AndroidX库

本文介绍了AndroidX的基本概念,强调了从android.support库迁移至AndroidX的重要性,提供了详细的迁移步骤,包括修改gradle.properties、升级Gradle版本和插件、调整SdkVersion等。同时,文章还对比了AndroidX与旧版支持库的依赖,并给出了迁移过程中需要注意的提示,如layout文件中包名的修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<<返回总目录

一、AndroidX 简介

1.Google(谷歌) 2018 IO 大会推出了 Android新的扩展库 AndroidX,用于替换原来的 Android扩展库,将原来的android替换成androidx;只有包名和Maven工件名受到影响,原来的类名,方法名和字段名不会更改。官方早就推荐将support库迁移到androidx,因为后续support库不会再做更新

2.AndroidX是对android.support.xxx包的整理后产物。由于之前的support包过于混乱,所以,Google推出了AndroidX

3.Android 版本 28.0.0 (9.0)是支持support库的最后一个版本
   (1) 谷歌将不再发布android.support库版本。所有新功能都将在androidx命名空间中开发
   (2) 所以Android 9.0 之前还可以使用support,Android 10.0之后要使用androidx了
   (3) android对RecycleView有了优化,并且包名也改变了,还有其他控件support相关的控件都修改了包名

二、迁移步骤

1.修改当前项目的gradle.properties

android.useAndroidX=true
android.enableJetifier=true

其中:
(1) android.useAndroidX=true 表示当前项目启用AndroidX
(2) android.enableJetifier=true 表示将依赖包也迁移到AndroidX。如果取值为false,表示不迁移依赖包到AndroidX,但在使用依赖包中的内容时可能会出现问题,当然了,如果你的项目中没有使用任何三方依赖,那么,此项可以设置为false

三、Gradle

1.升级Gradle版本,修改gradle-wrapper.properties:
   AndroidX最低支持的gradle版本是4.6,我这边直接5.1.1了;

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

2.升级插件版本
   在主工程(Project)的bulid.gradle里,AndroidX最低支持的版本是3.2,我这边直接3.4.1了;

classpath 'com.android.tools.build:gradle:3.4.1'

3.修改SdkVersion
   AndroidX最低支持28、28.0.2;

compileSdkVersion: 29
targetSdkVersion : 29
buildToolsVersion "29.0.0"

4.附带添加一下这个gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

5.Gradle中的compileOptions
   点击链接:Android Studio的Gradle中compileOptions的问题

6.使用Migrate to androidx
在这里插入图片描述
在这里插入图片描述
这波操做之后,你的项目就会有大变更了:
在这里插入图片描述
原来的android.xxx.xxx.28.0.2所有变为androidx.xxx.xxx.1.0.0;
下面的这些引入也会变化:

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.appcompat.widget.AppCompatTextView;

四、常用依赖库对比

1.常用依赖库对比

Old build artifactAndroidX build artifact
com.android.support:appcompat-v7:28.0.2androidx.appcompat:appcompat:1.0.0
com.android.support:design:28.0.2com.google.android.material:material:1.0.0
com.android.support:support-v4:28.0.2androidx.legacy:legacy-support-v4:1.0.0
com.android.support:recyclerview-v7:28.0.2androidx.recyclerview:recyclerview:1.0.0
com.android.support.constraint:constraint-layout:1.1.2androidx.constraintlayout:constraintlayout:1.1.2
2.常用支持库类对比
Support Library classAndroidX class
:–:–
android.support.v4.app.Fragmentandroidx.fragment.app.Fragment
android.support.v4.app.FragmentActivityandroidx.fragment.app.FragmentActivity
android.support.v7.app.AppCompatActivityandroidx.appcompat.app.AppCompatActivity
android.support.v7.app.ActionBarandroidx.appcompat.app.ActionBar
android.support.v7.widget.RecyclerViewandroidx.recyclerview.widget.RecyclerView

五、温馨提示:

1.除了修改build.gradle文件下的dependencies以外,还需要将layout文件中的包名更改。如果不清楚更改哪里的话,build一下就好了,按照报错的地方更改就即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

彬sir哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值