【Jetpack】Jetpack 简介 ( 官方架构设计标准 | Jetpack 组成套件 | Jetpack架构 | Jetpack 的存在意义 | AndroidX 与 Jetpack 的关系 )
文章目录
一、Google 官方推出的架构设计标准 Jetpack二、Jetpack 组成套件三、Jetpack 架构四、Jetpack 的存在意义1、提高开发效率2、最佳架构方案3、消除样本代码4、设备系统兼容性5、改善应用性能6、测试支持 五、AndroidX 与 Jetpack 的关系一、Google 官方推出的架构设计标准 Jetpack
Android 架构发展 : Android 架构的发展 途径了 MVC -> MVP -> MVVM 等方案 , 这些架构都 不是 Google 官方提出的 , 都是各个团队 根据自己的需求推出的适合自己的架构方案 ;
Jetpack 是 Google 推出的 架构设计标准 , 是官方推出 架构设计指导方案 ;
借助 Jetpack 提供的一系列的 工具 和 组件 , Android 开发者 可以 快速高效地 构建出 高质量 / 高性能 的应用架构 ;
使用 Jetpack 提供的架构 , 可以 简化 Android 应用开发架构相关内容 , 并且可以 减少格式化样本代码的编写 , 开发者可以使用更多的精力和时间 专注于 业务逻辑 的开发 ;
同时 , 还可以 减少 出错崩溃 的概率 , 内存泄漏 , 降低代码复杂度 ;
二、Jetpack 组成套件
Jetpack 是 Google 官方提出的 , 由 多个 库 组成的 套件 , 这些库包括 :
UI 库 : Animation , Transitions , Emoji , Layout , Palette …架构库 : Data Binding , ViewModel , Lifecycles , LiveData , Navigation , Padding , Room …行为库 : Download Manager , Permissions , Notifications , Sharing …基础库 : AppCompat , Android KTX , Multidex , Test …三、Jetpack 架构
Jetpack 是 Google 推出的 架构设计标准 , 是官方推出 架构设计指导方案 ;
Jetpack 架构 是 基于 分层结构设计 和 模块化开发 的 设计思想 提出的 ;
Jetpack 提供了一系列的组件类型 :
基础组件 : 提供 基础 功能 , 可以 简化开发 , 提高 代码 可维护性 ; 如 : Android KTX ;架构组件 : 构建 响应式的 , 高效的 , 可测试 的应用程序 ; 如 : ViewModel 管理 UI 数据模型 , LiveData 用于 响应数据 改变 , Room 管理数据库模块 等 ;UI 组件 : 创建 灵活 , 美观 , 易于扩展 的 UI 界面 ; 如 : ConstraintLayout 约束布局 , RecyclerView 列表 , ViewPager2 组件 ;测试组件 : 创建 可靠 自动化测试 模块 ; 如 : JUtils , Espresso , UI Automator 等测试组件 ;功能组件 : 管理 后台任务 , 导航 , 分页 等实际功能 ; 如 : WorkManager 等 ;Jetpack 架构中 , 每个组件 都有其 相应的 功能 , 根据 项目的需求 , 和 团队的分工 , 将各种组件 进行 组合使用 , 就可以 构成一个 高可靠性的 项目架构 ;
使用 Jetpack 组件组合成的 架构设计 , 可以快速构建 应用程序 , 并且提高程序的稳定性 , 可维护性 ;
四、Jetpack 的存在意义
1、提高开发效率
Jetpack 提供了 大量 现成 的 组件 和 工具 , 可以快速 构建 高质量 / 高性能 的 Android 工程 , 并且可以 提高 代码的 稳定性 , 可维护性 ;
使用 Jetpack 库 , 减少了很多 重复性的 代码工作 , 提高了开发效率 ;
2、最佳架构方案
Jetpack 是 Google 推荐的最佳的架构方案 , 一直在 不断更新 , 并且 兼容之前的 Android 系统版本 ;
使用 Jetpack 可以减少 架构带来 内存泄漏 和 崩溃 ;
3、消除样本代码
使用 Jetpack 开发套件 , 可以轻松进行 工程架构 , 减少不必要的 架构相关的样板代码 , 开发者只需要专心开发自己的逻辑代码即可 ;
Jetpack 提供了一套 UI , 行为 , 架构 相关的解决方案 , 开发者可以不用再架构上浪费时间 , 专心开发自己的逻辑 ;
样板代码示例 : Activity 中管理各种生命周期 ;
4、设备系统兼容性
开发 Android 应用 , 需要 考虑到 Android 的各个版本的特性 , 以及 各个 Android 手机厂商的适配问题 , 需要花费大量的时间精力进行适配工作 ;
使用 Jetpack 可以保证 在 各个 Android 版本 , 各种 Android 设备中 , 保持运行一致 , 可以降低 测试 , 适配 的 工作量 ;
Jetpack 自带设备系统兼容性解决方案 ;
5、改善应用性能
使用 Jetpack 提供的 一系列的 组件 和 工具 , 可以
提高 应用的 性能 ,提高 代码稳定性 ,提高 代码可维护性 ,减少应用崩溃 ,减少应用内存泄漏 ;6、测试支持
Jetpack 提供了一系列的 测试组件 ,
借助 Espresso , UI Automator , JUnit 测试组件 ,
可以快速 创建 Android 自动化测试 功能 ,
提高 程序的 质量 , 提高代码的稳定性 ;
五、AndroidX 与 Jetpack 的关系
Google 推出的 AndroidX 库 , 其 更新频率很频繁 , AndroidX 没有并入 SDK , 是因为其 更新频率很高 , 几乎 每个月都要更新 , Android 的 SDK 每次只在新版本发布时才更新 , 基本要半年到一年才能更新一次 ;
官方的 SDK 有很多不完善的地方 , Google 开发了很多开源项目 , 对 SDK 缺陷进行修复 , 这些开源项目最后都并入了 AndroidX 项目 , 其中每个子项目都在更新 , 因此 AndroidX 更新频率很高 ;
AndroidX 与 Jetpack 的关系 :
AndroidX 的命名空间 中 包含了 Jetpack 套件 ;之前的 Android Support Library 已经停止更新 , 官方推荐使用 AndroidX 替代 Android 支持库 ;Android Architecture Component 架构组件 也 并入了 AndroidX ;官方推出的库 , 除 SDK 之外的都并入到了 AndroidX 命名空间中 ;
相关文章
- 计算机网络??网络安全_小黑安全
- 我终于读懂了设计模式的七大原则。。。_掉头发的王富贵
- 基于Java+SpringBoot+vue+element疫情物资捐赠分配系统设计和实现_java李杨勇
- 大学毕业后,我就送了2个月外卖,哭了一整晚_自在的旅者
- taro 兼容支付宝小程序和微信小程序<六>-- 自定义密码或验证码输入框组件的input 自动获取焦点(ios支付宝小程序怎么隐藏input的光标)_Misha韩_小程序input自动获取焦点
- iOS面试准备 - ios篇_smallcatlei
- Linux入门与进阶(一)_小新爱编程_linux进阶该掌握哪些内容
- 查看docker 容器的端口_普通网友_docker查看容器端口
- linux 命令:echo 详解_yspg_217_echo命令
- 如何在Mac上卸载软件?用这三种方法简单、干净、快速_jiuguosanxun
- 【SwiftUI模块】0021、SwiftUI做一个基于拖动手势位置的精美扩展工具栏_宇夜iOS
- Windows 挂载 NFS磁盘 【全】_每天都要有成长_windows挂载nfs
- 未定义与 double 类型的输入参数相对应的函数 int_跟我学Swift 5.2函数_L 姐
- iOS小技能:UILabel展示三行,如果超过三行显示下拉icon或者更多..._iOS逆向
- 天龙八部TLBB系列 - 网单获取数据库密码和服务端密码(超简单)_芝麻粒儿
- 【2022】APP-IOS客户端Android客户端安全性测试-常见问题_洋菜美眉