返回

支付宝 AndroidX 升级之路:一波三折终有成

Android

当支付宝 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。