(1)常用依赖库对比:
Old build artifact-->AndroidX build artifact
com.android.support:appcompat-v7:28.0.0-->androidx.appcompat:appcompat:1.0.0
com.android.support:design:28.0.0-->com.google.android.material:material:1.0.0
com.android.support:support-v4:28.0.0-->androidx.legacy:legacy-support-v4:1.0.0
com.android.support:recyclerview-v7:28.0.0-->androidx.recyclerview:recyclerview:1.0.0
com.android.support.constraint:constraint-layout:1.1.3-->androidx.constraintlayout:constraintlayout:1.1.3
(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
2. AndroidX配置
1)更新升级插件
将AS更新至AS 3.4及以上;
Gradle 插件版本改为5.1.1及以上;
项目下gradle/wrapper/gradle-wrapper.propertie文件中的distributionUrl改为:
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
compileSdkVersion 版本升级到28及以上;
buildToolsVersion 版本改为28.0.0及以上。
2)开启迁移AndroidX
在项目的gradle.properties文件里添加如下配置:
android.useAndroidX=true
android.enableJetifier=true
表示项目启用 AndroidX 并迁移到 AndroidX。
3)替换依赖库
修改项目app目录下的build.gradle依赖库:
implementation 'com.android.support:appcompat-v7:28.0.0'→ implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'com.android.support:design:28.0.0'→implementation 'com.google.android.material:material:1.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'→ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
4)修改支持库类
将原来import的android.**包删除,重新import新的androidx.**包;
import android.support.v7.app.AppCompatActivity; →import androidx.appcompat.app.AppCompatActivity;
5)一键迁移AndroidX库
AS 3.2 及以上版本提供了更加方便快捷的方法一键迁移到 AndroidX。选择菜单上的ReFactor —— Migrate to AndroidX...即可。(如果迁移失败,就需要重复上面1,2,3,4步手动去修改迁移)
注意:如果你的项目compileSdkVersion 低于28,点击Refactor to AndroidX...会提示:
You need to have at least have compileSdk28 set in your module build.gradle to refactor to androidx
提示让你使用不低于28的sdk,升级最新到SDK,然后点击Migrate to AndroidX...,AS就会自动将项目重构并使用AndroidX库。
3. AndroidX影响
虽然说目前对我们没有多大影响,我们可以不使用仍然使用旧版本的支持库,毕竟没有强制,但长远来看还是有好处的。AndroidX重新设计了包结构,旨在鼓励库的小型化,支持库和架构组件包的名字也都简化了;而且也是减轻Android生态系统碎片化的有效方式。
4. AndroidX迁移问题
手动迁移涉及到很多xml文件的控件替换需要花一点时间,记得先备份代码再进行迁移。
本文参考其他文章,根据个人经验修改,侵删。