Jetpack架构组件库-Jetpack入门介绍

简介: Jetpack架构组件库-Jetpack入门介绍

一,初认Jetpack

Jetpack 是 Android 软件组件的集合,使您可以更轻松地开发出色的 Android 应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,google官方一种Android架构的一种之前大厂都推出各自的Android框架

Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。

目前大部分 APP 已经开始使用 Android Jetpack。通过 Android Jetpack 可以让我们的 BUG 减少,以及在框架的封装,让开发者把更多的精力放在业务逻辑以及用户体念上。

为了这种模板式的开发,Google 在2018年推出了 Android Jetpack。

二、JetPack的组成


Jetpack 主要包括 4 个部分,分别是【Architecture:架构】、【UI:界面】、【behavior:行为】和【foundation:基础】


  1. Lifecycle:具备宿主生命周期感知能力的组件

特性:持有组件(如 Activity 或 Fragment)生命周期状态的信息,并且允许其他对象观察此状态;

 2.LiveData:新一代具备生命周期感知能力的数据订阅、分发组件

特性:支持共享资源、支持黏性事件的分发、不再需要手动处理生命周期、确保界面符合数据状态;

3.ViewModel:具备生命周期感知能力的数据存储组件

特性:页面因配置变更导致的重启,此时数据不丢失;可以实现跨页面(跨 Activity)的数据共享;

4.SavedState 架构组件原理解析

特性:因内存不足,电量不足导致页面被回收时可以搭配 ViewModel 实现数据存储与恢复;

5.Room:轻量级 orm 数据库,本质上是一个 SQLite 抽象层

特性:使用简单(类似于 Retrofit 库),通过注解的方式实现相关功能,编译时自动生成相关实现类

6.DataBinding:只是一种工具,解决的是 View 和数据之间的双向绑定

特性:支持数据与视图双向绑定、数据绑定空安全、减少模板代码、释放 Activity/Fragment 压力;

7.Paging: 列表分页组件,可以轻松完成分页预加载以达到无限滑动的效果

特性:巧妙融合 LiveData、提供多种数据源加载方式;

不足之处:不支持列表数据增删改,列表添加 HeaderView,FooterView 定位不准确;

8.Navigation 组件原理分析:端内统一路由组件

特性:能够为 Activity,Fragment,Dialog,FloatWindow 提供统一的路由导航服务,可以传递参数,指定导航动画,还支持深度链接等主要能力;

不足:十分依赖 xml 配置文件不利于组件化,模块化

9.WorkManager:新一代后台任务管理组件,service 能做的事情它都能做

特性:支持周期性任务调度、链式任务调度、丰富的任务约束条件、程序即便退出,依旧能保证任务的执行;

Foundationy,基础组件
目的:提供横向功能,例如向后兼容性、测试、安全、Kotlin 语言支持,并包括多个平台开发的组件;
  1. Android KTX:优化了供 Kotlin 使用的 Jetpack 和 Android 平台 API,帮助开发者以更简洁、更愉悦、更惯用的方式使用 Kotlin 进行 Android 开发;
  2. AppCompat:帮助较低版本的 Android 系统进行兼容;
  3. Auto:开发 Android Auto 应用的组件,提供了适用于所有车辆的标准化界面和用户交互;
  4. 检测:从 AndroidStudio 中快速检测基于 Kotlin 或 Java 的代码;
  5. 多 Dex 处理:为具有多个 Dex 文件应用提供支持;
  6. 安全:安全的读写加密文件和共享偏好设置;
  7. 测试:用于单元和运行时界面测试的 Android 测试框架;
  8. TV:构建可让用户在大屏幕上体验沉浸式内容的应用;
  9. Wear OS:开发 Wear 应用的组件;
Behavior,行为组件
目的:帮助开发者的应用与标准 Android 服务(如通知、权限、分享)相集成;
  1. CameraX:帮助开发简化相机应用的开发工作,提供一致且易于使用的界面,适用于大多数 Android 设备,并可向后兼容至 Android 5.0(API 21);
  2. DownloadManager:处理长时间运行的 HTTP 下载的系统服务;
  3. 媒体和播放:用于媒体播放和路由(包括 Google Cast)的向后兼容 API;
  4. 通知:提供向后兼容的通知 API,支持 Wear 和 Auto;
  5. 权限:用于检查和请求应用权限的兼容性 API;
  6. 设置:创建交互式设置,建议使用 AndroidX Preference Library 库将用户可配置设置集成到应用中;
  7. 分享操作:可以更轻松地实现友好的用户分享操作;
  8. 切片:切片是一种 UI 模板,创建可在应用外部显示应用数据的灵活界面元素;
UI,界面组件
  1. Animation and Transition:该框架包含用于常见效果的内置动画,并允许开发者创建自定义动画和生命周期回调;
  2. Emoji Compatibility:即便用户没有更新 Android 系统也可以获取最新的表情符号;
  3. Fragment:组件化界面的基本单位;
  4. 布局:用 XML 中声明 UI 元素或者在代码中实例化 UI 元素;
  5. 调色板:从调色板中提取出有用的信息;


    来自google官方架构图

    具体使用下次再更新文章,欢迎关注公众号;
相关文章
|
10天前
|
存储 设计模式 数据库
构建高效的安卓应用:探究Android Jetpack架构组件
【4月更文挑战第20天】 在移动开发的世界中,构建一个既高效又可维护的安卓应用是每个开发者追求的目标。随着Android Jetpack的推出,Google为开发者提供了一套高质量的库、工具和指南,以简化应用程序开发流程。本文将深入探讨Jetpack的核心组件之一——架构组件,并展示如何将其应用于实际项目中,以提升应用的响应性和稳定性。我们将通过分析这些组件的设计原则,以及它们如何协同工作,来揭示它们对于构建现代化安卓应用的重要性。
|
28天前
|
调度
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构(二)
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构
|
1月前
|
存储 Kubernetes 负载均衡
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(下)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
2月前
|
SQL 存储 缓存
MySQL - 一文了解MySQL的基础架构及各个组件的作用
MySQL - 一文了解MySQL的基础架构及各个组件的作用
|
2月前
|
SQL 分布式计算 Hadoop
Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
【2月更文挑战第6天】Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
101 0
|
1月前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
34 0
|
1月前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
15 0
|
9天前
|
设计模式 前端开发 数据库
构建高效Android应用:使用Jetpack架构组件实现MVVM模式
【4月更文挑战第21天】 在移动开发领域,构建一个既健壮又易于维护的Android应用是每个开发者的目标。随着项目复杂度的增加,传统的MVP或MVC架构往往难以应对快速变化的市场需求和复杂的业务逻辑。本文将探讨如何利用Android Jetpack中的架构组件来实施MVVM(Model-View-ViewModel)设计模式,旨在提供一个更加模块化、可测试且易于管理的代码结构。通过具体案例分析,我们将展示如何使用LiveData, ViewModel, 和Repository来实现界面与业务逻辑的分离,以及如何利用Room数据库进行持久化存储。最终,你将获得一个响应迅速、可扩展且符合现代软件工
14 0
|
15天前
|
消息中间件 存储 数据库
RabbitMQ入门指南(二):架构和管理控制台的使用
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了RabbitMQ架构和管理控制台的使用等内容。
43 0
RabbitMQ入门指南(二):架构和管理控制台的使用
|
18天前
|
存储 数据库 Android开发
构建高效安卓应用:采用Jetpack架构组件优化用户体验
【4月更文挑战第12天】 在当今快速发展的数字时代,Android 应用程序的流畅性与响应速度对用户满意度至关重要。为提高应用性能并降低维护成本,开发者需寻求先进的技术解决方案。本文将探讨如何利用 Android Jetpack 中的架构组件 — 如 LiveData、ViewModel 和 Room — 来构建高质量的安卓应用。通过具体实施案例分析,我们将展示这些组件如何协同工作以实现数据持久化、界面与逻辑分离,以及确保数据的即时更新,从而优化用户体验并提升应用的可维护性和可测试性。