Android Jetpack架构组件

Jetpack时Google新推出的一种架构模式,按照Google官方的说明,它有以下优点

  • 加速开发:组件可以单独采用(不过这些组件是为协同工作而构建的),同时利用 Kotlin 语言功能帮助您提高工作效率。
  • 消除样板代码:Android Jetpack 可管理繁琐的 Activity(如后台任务、导航和生命周期管理),以便您可以专注于如何让自己的应用出类拔萃。
  • 构建高质量的强大应用:Android Jetpack 组件围绕现代化设计实践构建而成,具有向后兼容性,可以减少崩溃和内存泄漏。
    同时指出了常见的架构原则:
  • **分离关注点**:基于界面的类应仅包含处理界面和操作系统交互的逻辑。
  • **通过模型驱动界面**:模型是负责处理应用数据的组件。它们独立于应用中的 View 对象和应用组件,因此不受应用的生命周期以及相关的关注点的影响。

具体项目的结构如下:
Android Jetpack架构组件_第1张图片
Jetpack架构组件:

  • Android Jetpack – ViewModel篇
  • Android Jetpack – LiveDate篇
  • Android Jetpack – DataBinding篇
  • Android Jetpack – Navigation篇
  • Android Jetpack – Lifecycles篇

ViewModel:对象为特定的界面组件(如 Fragment 或 Activity)提供数据,并包含数据处理业务逻辑,以与模型进行通信。例如,ViewModel 可以调用其他组件来加载数据,还可以转发用户请求来修改数据。ViewModel 不了解界面组件,因此不受配置更改(如在旋转设备时重新创建 Activity)的影响。Android Jetpack – ViewModel篇

LiveData::是一种可观察的数据存储器。应用中的其他组件可以使用此存储器监控对象的更改,而无需在它们之间创建明确且严格的依赖路径。LiveData 组件还遵循应用组件(如 Activity、Fragment 和 Service)的生命周期状态,并包括清理逻辑以防止对象泄漏和过多的内存消耗。Android Jetpack – LiveDate篇

DataBinding:声明性地将可观察数据绑定到UI元素,其目的在于是为了脱离Controller与View之间的引用联系,很类似Butterknife库,使用也比较相似。Android Jetpack – DataBinding篇

Navigation:允许用户在应用程序中浏览、进入和退出不同内容的Fragment。Navigation能够实现从简单的按钮单击到更复杂的模式,如应用程序栏和导航抽屉。导航组件还通过遵循一套既定的原则来确保一致和可预测的用户体验。Android Jetpack – Navigation篇

Lifecycles:Lifecycles是一个生命周期感知组件,当Activity或者Fragment的生命周期发生改变的时会,Lifecycles也会做出相应的生命周期状态的改变,它保存关于组件生命周期状态的信息(比如活动或片段),并允许其他对象观察这种状态。Android Jetpack – Lifecycles篇
Room :Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。通俗来说就是提供了方便调用的接口,减少了很多样板代码的编写,本质上还是SQLite数据库,通过注解,在编译时生成实现接口的代码。Android Jetpack – Room篇

先占坑--------------在以后的学习中慢慢逐步完善。。。。。。

现在在实习了,发现项目中并不会全部都使用到Jetpack的全部内容,只需要摘取适合的那部分便可以,像Navigation这块,使用的不多,通过一个集中的Router来比较常用.

你可能感兴趣的:(学习,Android,Jetpack)