Android AndroidX的迁移

1. AndroidX变化

1)常用依赖库对比:

Old  build artifactAndroidX  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

更多详细变化内容,可以下载CSV格式映射文件;

2)常用支持库类对比:

Support Library classAndroidX 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

更多详细变化内容,可以下载CSV格式映射文件。

2. AndroidX配置

1)更新升级插件

将AS更新至AS 3.2及以上;

Gradle 插件版本改为4.6及以上;

项目下gradle/wrapper/gradle-wrapper.propertie文件中的distributionUrl改为:

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

compileSdkVersion 版本升级到28及以上;

buildToolsVersion 版本改为28.0.2及以上。

插件更新提示

2)开启迁移AndroidX

在项目的gradle.properties文件里添加如下配置:

android.useAndroidX=trueandroid.enableJetifier=true

 表示项目启用 AndroidX 并迁移到 AndroidX。

3)替换依赖库

修改项目app目录下的build.gradle依赖库:

implementation 'com.android.support:appcompat-v7:28.0.2' → implementation 'androidx.appcompat:appcompat:1.0.0'implementation 'com.android.support:design:28.0.2'  → implementation 'com.google.android.material:material:1.0.0'implementation 'com.android.support.constraint:constraint-layout:1.1.2' → implementation 'androidx.constraintlayout:constraintlayout:1.1.2'...

4)修改支持库类

将原来import的android.**包删除,重新import新的androidx.**包;

importandroid.support.v7.app.AppCompatActivity;→importandroidx.appcompat.app.AppCompatActivity;

5)一键迁移AndroidX库

AS 3.2 及以上版本提供了更加方便快捷的方法一键迁移到 AndroidX。选择菜单上的ReFactor —— Migrate to AndroidX...即可。(如果迁移失败,就需要重复上面1,2,3,4步手动去修改迁移)

AndroidX 迁移

注意:如果你的项目compileSdkVersion 低于28,点击Refactor to AndroidX...会提示:

You need to have at least have compileSdk28set in your module build.gradle to refactor to androidx

提示让你使用不低于28的sdk,升级最新到SDK,然后点击Migrate to AndroidX...,AS就会自动将项目重构并使用AndroidX库。

3. AndroidX迁移问题

《Android Support库和AndroidX冲突问题》

4. AndroidX影响

  虽然说目前对我们没有多大影响,我们可以不使用仍然使用旧版本的支持库,毕竟没有强制,但长远来看还是有好处的。AndroidX重新设计了包结构,旨在鼓励库的小型化,支持库和架构组件包的名字也都简化了;而且也是减轻Android生态系统碎片化的有效方式。

作者:翻译不了的声响

链接:https://www.jianshu.com/p/7dc111353328

来源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(Android AndroidX的迁移)