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

一、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:

扫描二维码关注公众号,回复: 13726633 查看本文章
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 artifact AndroidX build artifact
com.android.support:appcompat-v7:28.0.2 androidx.appcompat:appcompat:1.0.0
com.android.support:design:28.0.2 com.google.android.material:material:1.0.0
com.android.support:support-v4:28.0.2 androidx.legacy:legacy-support-v4:1.0.0
com.android.support:recyclerview-v7:28.0.2 androidx.recyclerview:recyclerview:1.0.0
com.android.support.constraint:constraint-layout:1.1.2 androidx.constraintlayout:constraintlayout:1.1.2

2.常用支持库类对比

Support Library class AndroidX class
android.support.v4.app.Fragment androidx.fragment.app.Fragment
android.support.v4.app.FragmentActivity androidx.fragment.app.FragmentActivity
android.support.v7.app.AppCompatActivity androidx.appcompat.app.AppCompatActivity
android.support.v7.app.ActionBar androidx.appcompat.app.ActionBar
android.support.v7.widget.RecyclerView androidx.recyclerview.widget.RecyclerView

五、温馨提示:

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

猜你喜欢

转载自blog.csdn.net/qq_35091074/article/details/123092696
今日推荐