视频连接:迁移AndroidX
1.为什么需要迁移到AndroidX
- Support Library 28.0是最后一个android.support命名空间里的版本,之后将不再维护,相关bug修复以及新功能都会跟随AndroidX发布
- 更好的包管理,标准化的独立版本迭代,更好的标准化命名
- 有些其他的代码库已经迁移到了AndroidX命名空间,例如Google Play Services、ButterKnife,Mockito 2等
- 新的三方库会随着androidX推出,例如Jetpack compose、CameraX等,要想用就得迁移到AndroidX
2.如何迁移
迁移前的准备
- 代码备份,以防万一
- 单独分支上进行,不要重构,不要添加新功能
- 由团队中的几个人专门负责迁移工作
迁移步骤
- 将Support Library 升级到28,解决所有API更改问题,并用Support Library28进行编译。因为Support Library28跟AndroidX API都是相同的,仅仅是代码包名不同。
- 启用Jetifier,更改第三方库依赖。Jetifier会帮助把第三方依赖迁移到AndroidX,也就是说Jetifier会更改这些依赖的flight代码,但是它不会更改你的原代码,也不会迁移你生成的代码。
android.useAndroidX = true
android.enableJetifier = true
- 更新第三方依赖,例如ButterKnife、Glide、Mockito 2,SQLDelight等,确保兼容AndroidX。Jetifier不会去检查代码生成库,需要自己去检查是否兼容。
- 使用AS自动迁移。如果不使用AS的话,可以使用脚本迁移。当然,你也可以选择手工迁移,根据support包到AndroidX版本的映射,手动修改。
网友评论