1.官方定义

jetpack(充气背包)

android room 依赖 安卓依赖_android room 依赖

2. 组件库分类介绍

android room 依赖 安卓依赖_support_02

分类和详细介绍见链接;

3. 谷歌亲儿子系列依赖包的发展史

3.1 Support库:

Support库是为新API提供向后兼容性的支持库,包含大量应用组件、视图、Material Design等功能类。重新改写的Preference组件也包含其中。依据兼容API版本的不同,Support库的分支众多且凌乱,使用起来也愈发繁琐和呆板。

3.2 一统江湖的AndroidX:

Support库愈加臃肿的分支和呆板的管理方法困扰着开发者。Google同样不胜其烦,终于推出了AndroidX。期望采用全新的包名和版本管理方法彻底解决这个困境。比如Support库各分支下Preference组件在AndroidX下的对应关系:

android room 依赖 安卓依赖_androidx_03

使用也很方便,只需指定对应的包名和版本即可:

def preference_version = “1.1.1”

implementation “androidx.preference:preference:$preference_version”

AndroidX和Support库到底有无区别?

将最核心的Preference类进行对比,可以发现:除了格式、书写风格的差异以外,代码逻辑几乎完全一致。

AndroidX的构成:

android room 依赖 安卓依赖_androidx_04

可以看到,实际上AndroidX在集成了Support库的以外,还涵盖了众多知名的Jetpack框架,这些框架实际上来源于2017年发布的Android Architecture Components(AAC)。

3.3 Jetpack 开发套件

android room 依赖 安卓依赖_jetpack_05

将Jetpack理解为一系列框架不够准确。实际上它是包含了框架、KTX、开发工具和开发向导的开发套件,期望在多个层面提升与Android开发的效率。

提供Android App开发的最佳实践

消除大量的样板代码,帮助开发者更轻松地编写优质应用

提供向后兼容性,在不同版本、不同配置的设备上提供一致性的开发体验

改变混乱的散碎的版本管理

和AndroidX到底啥关系?

Jetpack开发套件的源码管理在AndroidX内,包括之前的Support库,还有后来吸收的AAC库等等。简要绘制了一下Jetpack的演变图。

android room 依赖 安卓依赖_jetpack_06

非要总结下Jetpack和AndroidX关系的话,像fundroid大神描述的那样比较贴切。
AndroidX是对SDK以外API的内部管理包,Jetpack则是对外宣传的开发套件。
“AndroidX”的名字也很酷啊,那为什么不直接用它来进行宣传? 个人的一些理解:

“AndroidX”的命名过于抽象、不易理解,也没有特别的含义

“Jetpack”本意是喷气背包、助推器的意思,它更能传达助力开发效率腾飞的设计初衷,也易于理解和传颂。再搭配上Android Logo塑造一个火箭机器人的形象,非常有趣和具备辨识度。

android room 依赖 安卓依赖_android room 依赖_07

参考连接:
Jetpack介绍: https://zhuanlan.zhihu.com/p/334350927
谷歌亲儿子系列依赖包的发展里程(support->androidX->Jetpack):
https://www.jianshu.com/p/a674c6119f07