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

安卓依赖包关系:support->Androidx->Jetpack相关推荐

  1. Flutter中解决AndroidX包与Support包冲突问题

    本文转载来至https://www.jianshu.com/p/034254874ca9 最近在项目开发中遇到AndroidX兼容性问题,如下图 BUILD FAILED in 15s ******* ...

  2. sonoff开关改装件控制(3) ------flutter导入其他安卓项目的依赖包

    最近在给之前做的服务做了一个手机客户端,暂时完成了安卓部分,用的是Flutter,调用之前JAVA中的API,很多资料都不太全,碰到了一些坑,主要是flutter导入其他安卓项目的依赖包时碰到的问题 ...

  3. 优爱酷首发,Windows11安卓子系统WSA又悄悄更新了,电脑运行安装apk,最新版本号为V2203.40000.1.0 完整安装包附依赖包。

    文后附下载链接 优爱酷在10月份微软刚刚发布安卓子系统(WSA)之后,在第一时间即为全网朋友编辑发布并详细介绍了安卓子系统的下载安装图文和视频教程,帮大家尽可能的避坑,以便节省大家的摸着石头过河的时间 ...

  4. Python中pip,pip3,虚拟环境(venv)三者的关系,如何在pycharm中使用虚拟环境,以及安装依赖包所遇到的问题。

    目录 一.是什么是pip,pip3,与虚拟环境(venv) 二.三者之间的联系 三.在pycharm中设置虚拟环境 四.安装python依赖包的快捷方式 五.注意事项 六.感谢观看!!!点个赞或者关注 ...

  5. 正在或即将被使用的Go依赖包管理方法:Go Modules,Go 1.13的标准特性

    公众号原文地址:https://mp.weixin.qq.com/s/SGGV3tWEg5AAJ7I_FcK0cg 目录 目录 说明 初始化 依赖包的默认导入 依赖包的特定版本导入 查看已添加依赖 依 ...

  6. 安卓学习专栏——安卓报错android.support.v4.widget.SwipeRefreshLayout飘红

    步骤 系列文章 1.报错效果 2.修改方法使用新的标签名 总结 系列文章 提示:转到安卓学习专栏,观看更多内容! 点我直达–>安卓学习专栏 1.报错效果 第一行代码酷欧天气实战时飘红 安卓报错a ...

  7. 安卓学习专栏——安卓报错android.support.v4.widget.DrawerLayout飘红

    步骤 系列文章 1.报错效果 2.修改方法使用新的标签名 总结 系列文章 提示:转到安卓学习专栏,观看更多内容! 点我直达–>安卓学习专栏 1.报错效果 第一行代码酷欧天气实战时飘红 安卓报错a ...

  8. 使用govendor灵活管理Go程序中的依赖包

    业务痛点 使用Go开发程序的过程中,为了方便开发,往往会引用很多标准库或者第三方的依赖包,第三方依赖包往往比标准库功能更全面更强大更接地气,那么如何管理众多的第三方依赖包呢?如何更新其版本?在不需要时 ...

  9. 泛化,关联,聚合,合成,依赖的关系

    泛化(Generalization): 一句话,就是继承的表示.是is-a的关系. 表现为继承或实现关系(is a).具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系. 关 ...

  10. Linux 中yumdownloader 和 repotrack:下载yum软件离线环境的rpm依赖包

    前提: 通常生产环境由于安全原因都无法访问互联网.此时就需要进行离线安装,主要有两种方式:源码编译.rpm包安装.源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装. 必须先下载 ...

最新文章

  1. 质量管理系统_SRM供应商管理系统如何管控产品质量
  2. 用java设计一个二叉树类的结构,二叉树的基本结构以及java实现
  3. visio数据流线文字方向的问题
  4. 不规则对话框的又一实现
  5. C++应用通信服务器:MYCP功能介绍
  6. 用JavaScript 制作多彩的弹出式说明窗口
  7. 情侣签到365天获1000现金?这款App被关停下架了 网友拍手称快!
  8. Tomacat7启动报错 org.apache.catalina.deploy.WebXml addFilter
  9. java+catch块不执行_Java异常处理机制:try...catch...的执行流程
  10. 计算机键盘标注,电脑键盘上怎么打√和×
  11. Gitea 的邮件通知
  12. python 实现图片转卡通图
  13. codeforces 645F Cowslip Collections
  14. oracle一体机的管理界面,Oracle 数据库一体机:zData Light - 分布式存储管理平台
  15. 安卓实现扫一扫识别数字
  16. MIT一牛人对数学在机器学习中的作用给的评述
  17. 神经网络训练失败原因总结
  18. 阅文java面试_【上海阅文集团Java面试】阅文后端Java,二轮技术一轮HR-看准网
  19. 疫情后的第三年:时代更迭下的技术管理与团队协作
  20. 远程控制 远程监控软件屏幕实用技巧

热门文章

  1. 英语单词 One 个人 5. 身体动作
  2. 米勒拉宾素数测试模板
  3. Excel复制的数据到文本文件里面有 双引号
  4. STM32F103使用TIM DMA DAC实现播放WAV音乐
  5. 集成googlepay,出现Service not registered
  6. Java计算圆的周长代码,Java基础之计算圆的周长
  7. ADB识别失败,驱动显示感叹号解决方案——记录一次驱动重装导致的不识别手机问题
  8. 智课雅思词汇---十二、vent是什么意思
  9. 计算机C盘能扩展吗,为什么电脑c盘没有扩展卷(原因揭秘及扩大c盘空间的方式)...
  10. 从东南大学906被刷到调剂过程(内含个人感想)