专栏名称: Android_开发者
目录
相关文章推荐
51好读  ›  专栏  ›  Android_开发者

[译] Plaid 应用迁移到 AndroidX 的实践经历

Android_开发者  · 掘金  · android  · 2019-05-22 05:10

正文

阅读 98

[译] Plaid 应用迁移到 AndroidX 的实践经历

一份 AndroidX 的迁移指南

Virginia Poltrack 提供图片。

Plaid 是一款呈现 Material Design 风格和丰富交互界面的有趣应用。最近这款应用通过现今的 Android 应用开发技术实现了一番重构。获取更多应用信息和重新设计的视觉效果,可以查阅 Restitching Plaid

和大多数 Android 应用一样,Plaid 依赖 Android Support Library,该库可以为新 Android 特性提供向后兼容性,以便可以运行在旧版操作系统的 Android 机上。在 2018 年的 9 月份,最新的 Support Library 版本(28.0.0)被发布,和 Support Library 一起发布的 Android 库已经被迁移到 AndroidX(除了 Design 库被迁移到 Android 的 Material Components),并且这些库的新增开发都是基于 AndroidX。因此,接收 bug 修复、新功能和其他库更新的唯一选择就需要将 Plaid 迁移到 AndroidX。

什么是 AndroidX?

在 2018 Google I/O 大会上,Android 团队 发布了 AndroidX 。它是 Android 团队用于开发、测试、打包、定版以及在 Jetpack 中发布库时所用到的 开源代码 。和 Support Library 类似,每一个 AndroidX 库都是独立于 Android OS 来发布,并且提供了跨 Android 版本的向后兼容性。它是对 Support Library 的重大改进和全面替代方案。

阅读下文来了解我们如何为迁移过程准备自己的代码,以及执行迁移过程。

迁移前准备

我强烈建议在一个版本可控的分支做迁移工作。这样你可以逐步解决可能出现的任何迁移问题,同时分离出每个变更用于分析定位问题。你可以在这个 Pull Request 下查看我们的讨论过程,并且通过点击下面的提交链接来跟进最新信息。另外 Android Studio 提供了一个迁移前做工程备份的可选服务。

和任何大规模代码的重构工作一样,最好在迁移到 AndroidX 期间,迁移分支与主要开发分支之间做到最少合并来避免合并冲突。虽然对其他应用来说不可行,但是我们团队能够临时暂停向主分支提交代码以帮助迁移。一次性迁移整个应用也非常必要,因为部分迁移——同时使用 AndroidX 和 Support 库将会导致迁移过程中的失败。

最后,请阅读 developer.android.com 网站上 迁移至 AndroidX 文中的提示。现在让我们开始吧!

依赖标识

在你开始之前,对代码准备的最重要的一点建议是:

确保你正在使用的依赖库是与 AndroidX 兼容的。

依赖于一个旧版 support 库的第三方库可能与 AndroidX 不兼容,这很有可能导致你的应用在迁移到 AndroidX 后无法编译。检查你的应用任意依赖是否兼容的一个方法是访问这些依赖的项目站点。一个更直接的方法是开始迁移,并且检查可能出现的报错。

对于 Plaid 应用,我们使用了一个与AndroidX 不兼容的图形加载库 Glide 的旧版本(4.7.1)。这导致迁移后出现一个让应用无法构建的代码生成问题(这是一个记录在 Glide 工程下的类似 问题 ),在开始迁移之前我们把 Glide 更新到版本 4.8.0(参考这次 提交 ),这个版本添加了对 AndroidX 注解的支持。

关于这一点,请尽可能地更新到你的应用所依赖第三方库的最新版本。这对 Support 库而言尤其是一个好主意,因为升级到 28.0.0(截至撰写本文的最终版本)将使迁移更加顺畅。

使用 Android Studio 进行重构

迁移过程中我们使用了 Android Studio 3.2.1 版本中内置的重构工具。 AndroidX 迁移工具位于菜单栏的 Refactor > Migrate to AndroidX 选项。这个选项将迁移整个项目的所有模块。

运行 AndroidX 重构工具后的预览窗口。

如果你不使用 Android Studio 或者更倾向于其他工具来做迁移,请参考 Artifact Class 来对比新旧支持库间架构和类的改动,这些材料也有提供 CSV 格式。

Android Studio 中的 AndroidX 迁移工具是 AndroidX 迁移的主要方式。这个工具正在持续的优化中,所以如果你遇到问题或者希望查看某个功能,请在 Google 问题追踪页 提交一票







请到「今天看啥」查看全文