AndroidX 迁移

1.概述

AndroidX 将原始支持库 API 替换为 androidx 命名空间中的软件包。只有软件包和 Maven 工件名称发生了变化;类、方法和字段名称没有变化。

2.迁移前准备
  1. 备份项目。
  2. 创建新分支,进行迁移。
3.迁移步骤
1.项目版本更新到28

1.gradle 版本更新为 3.2.0 及以上。

// 项目下 build.gradle

buildscript {
	...
	dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }    
}

2.项目更新为使用支持库的最终版本:版本 28.0.0。

// build.gradle

android {
    compileSdkVersion 28
    ...
}
2.引入 AndroidX

1.引入 AndroidX。

// build.gradle
implementation 'androidx.core:core:1.1.0'

2.provider,android:name 修改为 androidx.core.content.FileProvider。

// AndroidMenifest

<provider
      android:name="androidx.core.content.FileProvider"
      android:authorities="${applicationId}.fileProvider"
      android:exported="false"
      android:grantUriPermissions="true">
      <meta-data
           android:name="android.support.FILE_PROVIDER_PATHS"
           android:resource="@xml/provider_config" />
</provider>
3.启用 Jetifier

Jetifier 帮助迁移第三方依赖以使用AndroidX。Jetifier 将更改这些依赖项的字节码,以使其与使用AndroidX的项目兼容。但是,Jetifier不会更改您的源代码或迁移您生成的代码。

  1. android.useAndroidX=true,Android 插件会使用对应的 AndroidX 库而非支持库。
  2. android.enableJetifier=true,Android 插件会通过重写现有第三方库的二进制文件,自动将这些库迁移为使用 AndroidX。
// gradle.properties

android.useAndroidX=true
android.enableJetifier=true
4.更新依赖关系

1、第三方库升级为支持 AndroidX 版本。如 Glide、OKhttp 等。

5.更新原始码

1、使用 Android Studio 3.2 及更高版本,只需从菜单栏中依次选择 Refactor > Migrate to AndroidX,即可将现有项目迁移到 AndroidX。

2、run 下,报错地方改为 AndroidX 里边的引用。
如:

  1. Fragment、FileProvider 改为 AndroidX 里面的 Fragment、FileProvider 等。
  2. Nullable 注解改为 AndroidX 里面的注解 等。
  3. 布局文件里面的控件改为 AndroidX 里面的控件。如:CoordinatorLayout。
6.ProGuard 和构建脚本

迁移工具不会自动更新ProGuard和任何相关的内置脚本。因此,如果您正在使用这些文件并在其中包含程序包名称,则需要手动进行编辑。

// ProGuard 混淆文件
-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.**
7.获取最新的稳定版本
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
改为
implementation 'androidx.appcompat:appcompat:1.0.2'

参考:
Migrating to AndroidX: tips, tricks, and guidance

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值