返回
支付宝 AndroidX 升级之路:一波三折终有成
Android
2023-10-09 02:35:14
当支付宝 App 遇见 AndroidX
每当一款新技术、新框架出现时,技术团队都需要花费大量精力去学习、实践、验证、推广,最后再决定是否应用到实际项目中。AndroidX 的出现也不例外。
对于支付宝这样一个体量庞大、历史悠久的 App 来说,全面升级 AndroidX 并不是一件轻而易举的事情。本文将结合支付宝在升级 AndroidX 过程中遇到的问题,以飨读者。
AndroidX 是什么?
AndroidX 是 Android Jetpack 的一部分,是一个不断更新和维护的库集合,它向后兼容早期的 Android 版本,并且包含 Android 支持库中的大部分功能。
AndroidX 的出现解决了 Android 支持库存在的许多问题,例如:
- 版本冲突: Android 支持库不同版本之间容易发生冲突,导致应用程序崩溃。
- 命名空间冲突: Android 支持库和 AndroidX 使用相同的命名空间,容易导致类名冲突。
- 代码冗余: Android 支持库和 AndroidX 中存在大量的重复代码。
支付宝拥抱 AndroidX
支付宝早在 2019 年就开始探索 AndroidX,并于 2020 年启动了全面升级计划。
截至目前,支付宝 App 的绝大部分模块已经完成 AndroidX 升级。升级过程涉及到以下主要工作:
- 依赖项升级: 将 Android 支持库的依赖项替换为 AndroidX 依赖项。
- 代码重构: 重构代码以适应 AndroidX 的新 API 和命名空间。
- 测试验证: 对应用程序进行全面的测试,以确保升级后应用程序仍然正常工作。
升级过程中遇到的问题
在 AndroidX 升级过程中,支付宝也遇到了不少问题,其中比较棘手的问题有:
- 旧依赖项与新依赖项的兼容性问题: 一些旧依赖项与 AndroidX 依赖项不兼容,需要进行兼容性调整。
- 命名空间冲突: Android 支持库和 AndroidX 使用相同的命名空间,导致类名冲突。
- AndroidX 依赖项版本更新频繁: AndroidX 依赖项版本更新频繁,需要及时跟进更新。
- 大型工程集成困难: 支付宝 App 是一个大型工程,包含大量模块,集成 AndroidX 需要大量的工作量。
支付宝的解决方案
针对遇到的问题,支付宝采取了以下解决方案:
- 建立兼容性库: 针对不兼容的旧依赖项,支付宝建立了兼容性库,以解决兼容性问题。
- 重命名命名空间冲突类: 对于命名空间冲突的类,支付宝重命名了它们的命名空间,以避免冲突。
- 自动化依赖项更新: 支付宝开发了自动化工具,以及时跟进 AndroidX 依赖项版本更新。
- 分模块分阶段升级: 支付宝将 App 分解成多个模块,并分阶段进行 AndroidX 升级。
AndroidX 升级带来的好处
经过不懈的努力,支付宝终于完成了 AndroidX 全面升级。升级后,支付宝 App 获得了以下好处:
- 代码更加稳定: AndroidX 解决了 Android 支持库存在的许多问题,提高了应用程序的稳定性。
- 开发效率提高: AndroidX 提供了更简洁、更现代化的 API,提高了开发效率。
- 面向未来的准备: AndroidX 是 Android 官方推荐的库,为应用程序提供了面向未来的准备。
总结
支付宝 AndroidX 升级是一个巨大的工程,涉及到大量的工作量和技术挑战。通过不断地学习、探索和解决问题,支付宝最终成功完成了 AndroidX 全面升级。
AndroidX 升级不仅给支付宝 App 带来了显著的好处,也为支付宝的技术团队积累了宝贵的经验。未来,支付宝将继续拥抱新技术、新框架,不断优化和完善 App。