什么是 Android X
- Android X 是 Google 推出的一系列兼容包以及工具库,之前的 support 包被拆分成为了多个库,包括新的 JetPack 开发工具库其实也算做是 Android X 的一部分
为什么要迁移
- support 包不再维护,bug 不能及时维护
- 新的库比如 ViewPager2 都是基于 Android X 的 RecyclerView,如果不升级无法使用
- 海外项目涉及到 Google 相关的库比如支付/登陆/ play service 等都已经升级,如果你不跟着升级会有很多冲突,而且一些海外的第三方库都要求你依赖 gms,如果不升级会有很多问题
建议什么项目怎么迁移
- 海外项目建议尽快迁移
官方迁移指南
- B 站视频
- 官方文档
- 官方简易文字指南
- 如果之前 support 包没有升级到 28,请先全部升级到 28
- gradle.properties 中添加 android.useAndroidX=true 和 android.enableJetifier=true 两个属性
同步后使用 Android Studio 的一键迁移到 AndroidX
迁移过程中的一些坑
- 不要使用 Android Studio 自带的一键迁移,会出现很多包名对不上的情况,公司的项目迁移后的很多类的包名都是错误的
- 建议直接参考 class mapping 全局搜索替换类的包名,这样简单粗暴不会有任何问题。xml 记得也要替换
- 部分第三方库比如 Glide,butterknife 升级到 Android X 可能会发生崩溃,去查对应库的 issue 升级即可
- 升级过后需要把应用内的功能全部回归测试一遍,避免出现任何问题,迁移工作加上测试大致 2 天左右,建议单独抽出两天时间不要做新功能专门做这个升级
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!