前言

提到Android架构,我们首先想到的是MVC,MVP,MVVM。他们主要是针对视图和模型的。随着Android的发展,从原来的框架很少,全是自己动手撸。到现在框架越来越多,选型也越来越多,导致开发出来越来越不规范。我们知道MVP和MVVM只是应用在架构上,而不是在框架选型上。而google在2018年推出jetpack就是为了解决以上的问题。

Jetpack是什么?

Jetpack它不是一个新的架构,而是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种Android版本和设备中一致运行的代码,让开发者精力集中编写重要的代码。

Jetpack的优势

既然需要使用Jetpack,那么说不出一些优势,你的领导也不会同意说换就换的。下面我们看看jetpack有哪些优势:

  • Jetpack 拥有基于生命周期感知的能力,可以减少NPE崩溃、内存泄漏。为我们开发出健壮且流畅的程序提供强力保障。
  • Jetpack 可以减少样板代码,有助于提升 Android 开发的效率。

JetPack的分类

我们来看下google官方提供的一张图:
jetpack体系
由图可知,Jetpack被分成了四大类:

  • 基础 - Foundation
  • 架构 - Architecture
  • 界面 - UI
  • 行为 - Behavior

Foundation(基础组件)

  • AppCompat:帮助较低版本的Android系统进行兼容
  • Android KTX:优化了供Kotlin使用的Jetpack和Android平台API,帮助开发者以更简洁、更愉悦、更惯用的方式使用Kotlin进行Android开发
  • Multidex:为具有多个Dex文件应用提供支持
  • Test:从AndroidStudio中快速检测基于Kotlin或Java的代码

Architecture(架构组件)

  • Data Binding:属于支持库可使用声明式将布局中的界面组件绑定到应用中的数据源
  • Lifecycles:管理Activity和Fragment生命周期
  • LiveData:是一个可观察的数据持有者类。与常规Observable不同,LiveData是有生命周期感知的
  • Navigation:处理应用内导航所需的一切
  • Paging:一次加载/按需加载 && 显示小块数据
  • Room:帮助开发者更友好、流畅的访问SQLite数据库
  • ViewModel:以生命周期感知的方式存储和管理与UI相关的数据
  • WorkManager:管理Android的后台的作业,即使应用程序退出或设备重新启动也可以运行可延迟的异步任务

UI(界面组件)

  • Animation and Transition:该框架包含用于常见效果的内置动画,并允许开发者创建自定义动画和生命周期回调
  • Auto:开发Android Auto应用的组件,提供了适用于所有车辆的标准化界面和用户交互
  • TV:构建可让用户在大屏幕上体验沉浸式内容的应用
  • Wear:开发Wear应用的组件
  • Emoji:即便用户没有更新Android系统也可以获取最新的表情符号
  • Fragment:组件化界面的基本单位
  • Layout:用XML中声明UI元素或者在代码中实例化UI元素
  • Paletee:从调色板中提取出有用的信息

Behavior(行为组件)

  • DownloadManager:可处理长时间运行的HTTP下载&&超时重连
  • Media & playback:用于媒体播放,以及路由的向后兼容API
  • Permissions:用于检查和请求应用权限的兼容性API
  • Notifications:提供向后兼容的通知API,支持Wear和Auto
  • Sharing:提供适合应用操作栏的共享操作
  • Slices:创建可在应用外部显示应用数据的灵活界面元素