1.官方定义
jetpack(充气背包)
2. 组件库分类介绍
分类和详细介绍见链接;
3. 谷歌亲儿子系列依赖包的发展史
3.1 Support库:
Support库是为新API提供向后兼容性的支持库,包含大量应用组件、视图、Material Design等功能类。重新改写的Preference组件也包含其中。依据兼容API版本的不同,Support库的分支众多且凌乱,使用起来也愈发繁琐和呆板。
3.2 一统江湖的AndroidX:
Support库愈加臃肿的分支和呆板的管理方法困扰着开发者。Google同样不胜其烦,终于推出了AndroidX。期望采用全新的包名和版本管理方法彻底解决这个困境。比如Support库各分支下Preference组件在AndroidX下的对应关系:
使用也很方便,只需指定对应的包名和版本即可:
def preference_version = “1.1.1”
implementation “androidx.preference:preference:$preference_version”
AndroidX和Support库到底有无区别?
将最核心的Preference类进行对比,可以发现:除了格式、书写风格的差异以外,代码逻辑几乎完全一致。
AndroidX的构成:
可以看到,实际上AndroidX在集成了Support库的以外,还涵盖了众多知名的Jetpack框架,这些框架实际上来源于2017年发布的Android Architecture Components(AAC)。
3.3 Jetpack 开发套件
将Jetpack理解为一系列框架不够准确。实际上它是包含了框架、KTX、开发工具和开发向导的开发套件,期望在多个层面提升与Android开发的效率。
提供Android App开发的最佳实践
消除大量的样板代码,帮助开发者更轻松地编写优质应用
提供向后兼容性,在不同版本、不同配置的设备上提供一致性的开发体验
改变混乱的散碎的版本管理
和AndroidX到底啥关系?
Jetpack开发套件的源码管理在AndroidX内,包括之前的Support库,还有后来吸收的AAC库等等。简要绘制了一下Jetpack的演变图。
非要总结下Jetpack和AndroidX关系的话,像fundroid大神描述的那样比较贴切。
AndroidX是对SDK以外API的内部管理包,Jetpack则是对外宣传的开发套件。
“AndroidX”的名字也很酷啊,那为什么不直接用它来进行宣传? 个人的一些理解:
“AndroidX”的命名过于抽象、不易理解,也没有特别的含义
“Jetpack”本意是喷气背包、助推器的意思,它更能传达助力开发效率腾飞的设计初衷,也易于理解和传颂。再搭配上Android Logo塑造一个火箭机器人的形象,非常有趣和具备辨识度。
参考连接:
Jetpack介绍: https://zhuanlan.zhihu.com/p/334350927
谷歌亲儿子系列依赖包的发展里程(support->androidX->Jetpack):
https://www.jianshu.com/p/a674c6119f07