一、概念:
从 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
在执行该操作时会提醒我们是否将当前项目打包备份。如果你提前已经做好了备份,可以忽略;如果没有备份,则先备份。
由于 Migrate to AndroidX 执行之后,部分控件的包名/路径名转换的有问题,所以还需要我们手动调整(包括修改 xml 布局文件和 .java 或 .kt 文件)。
如:ViewPager, RecyclerView 等,这些内容在迁移完成之后,包名是 androidx.core.weight.xxxx,这是一个错误的包名,我们必须手动修改,否则,无法正常编译。之后要修改直到运行成功!
三、总结
其实简单的使用还是很容易的,只要一个工程要处理就手动处理下吧,如果你有几十个项目需要处理,建议写个脚本,遍历所有文件替换目标包名。