文章目录
- 一、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 命名空间中 ;