Android从support到Androidx的升级过程

一、概念:

从 API 28(Android 9.0,Pie)开始,Google 推荐开发者从原来的各种支持库转移到一个新版本的名为 AndroidX 的支持库。它相比老支持库有着无需操心版本控制、实时更新的优点。原有的支持库将被保留并且可以继续使用,但接下来所有新的支持都将发布在 AndroidX 上。
简而言之就是之前support包的升级版本!!!

二、迁移步骤

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

 android.useAndroidX=true
 android.enableJetifier=true

备注:
android.useAndroidX=true 表示当前项目启用 AndroidX
android.enableJetifier=true 表示将依赖包也迁移到AndroidX 。如果取值为 false ,表示不迁移依赖包到AndroidX,但在使用依赖包中的内容时可能会出现问题,当然了,如果你的项目中没有使用任何三方依赖,那么,此项可以设置为 false
注意:是当前项目的 gradle.properties, 当我们切换 AS 视图到 Android 目录结构时,该文件会显示为 gradle.properties (Project Properties)。一定要注意与 gradle.properties (Global Properties) 区分

在 AndroidStudio 3.2 或更高版本(图为 AndroidStudio 为 3.5.2 版本)中执行如下操作:

Refactor > Migrate to AndroidX
image.png

在执行该操作时会提醒我们是否将当前项目打包备份。如果你提前已经做好了备份,可以忽略;如果没有备份,则先备份。
由于 Migrate to AndroidX 执行之后,部分控件的包名/路径名转换的有问题,所以还需要我们手动调整(包括修改 xml 布局文件和 .java 或 .kt 文件)。
如:ViewPager, RecyclerView 等,这些内容在迁移完成之后,包名是 androidx.core.weight.xxxx,这是一个错误的包名,我们必须手动修改,否则,无法正常编译。之后要修改直到运行成功!

三、总结

其实简单的使用还是很容易的,只要一个工程要处理就手动处理下吧,如果你有几十个项目需要处理,建议写个脚本,遍历所有文件替换目标包名。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容