谷歌使用 AndroidX 代替 Android 支持库

  • Sergio De Simone
  • 谢丽

2018 年 5 月 22 日

话题:移动GoogleAndroid语言 & 开发

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

新的Android 扩展库(AndroidX)取代了使用七年之久的 Android 支持库,旨在简化相关工作,并为该库未来的发展打下坚实的基础。

Android 支持库允许开发人员在旧版本的 Android 上支持新的 OS 特性,或者回退到等效的功能,是一种可以部分地减轻 Android 生态系统碎片化的有效方式。按照谷歌的说法:

Android 支持库应用非常广泛;大多数 Android 应用都使用了 Android 支持库。

然而,在其自然发展的过程中,出现了多个让许多开发人员为之困惑的选项。其中一个例子是存在以“v7”命名的组件和包,这是该库需要的原始 Android SDK 级别,目前需要的最小版本是 14(Android 4.0)。

AndroidX 的第一项改进旨在帮助开发人员区分哪些包属于 OS,哪些是在应用程序包工具(APK)中。通常,APK 中的(非捆绑式)库可以很好地确保单个 API 可以供跨不同 Android 版本的库使用。在使用 AndroidX 时,所有非捆绑式的库都属于androidx.*命名空间,包括所有的支持库和架构组件。这有助于开发人员搞清楚,哪些依赖应该包含在 APK 中。

此外,AndroidX 重新设计了包结构,旨在鼓励库的小型化,支持库和架构组件包的名字也都简化了。点击这里,可以查看所有的重构变更。

最后需要指出的是,AndroidX 使用了严格的语义版本,用于表明何时保证二进制兼容性,何时可能破坏。例如,如果依赖 AndroidX 的 1.5.0 版本,那么也可以使用 1.7.0 版本,但不能使用 2.0.0。

AndroidX 带来的变化无疑会影响现有的代码库,这就需要代码重构和依赖转化。为了帮助开发人员迁移他们的代码库,Android Studio Canary 14 包含了一个重构特性,以便尽可能地简化这个过程。

就品质而言,AndroidX 目前仍被认为是处于 Alpha 阶段,有些变更会破坏兼容性。而且,有些已知的问题,因此,谷歌不建议在生产项目中使用它。

查看英文原文:Google Overhauls the Android Support Library into AndroidX

移动GoogleAndroid语言 & 开发