首页 > 其他分享 >如何看待Android的Jetpack这一系列库?

如何看待Android的Jetpack这一系列库?

时间:2023-11-07 22:34:43浏览次数:30  
标签:看待 MVVM Jetpack LiveData UI 组件 Android

如何看待Android的Jetpack这一系列库?

随着移动领域的飞速发展,越来越多的工程师开始追求更高效率更便捷的开发模式,各种框架架构层出不穷,比如我们很熟悉的MVC、MVP、MVVM,而每种开发模式都有各自的优缺点,为了统一开发规范,Google 推出了Jetpack。

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法,减少样板代码。目前官方最推荐的项目架构是MVVM(MVI属于MVVM的变体),而Jetpack中的许多组件就是为MVVM量身打造的,因此对Android开发者来说了解和学习Jetpack组件库还是很有必要的。

选择Android Jetpack的原因:

  • 一起使用更方便:因为Android Jetpack组件中的很多库都对其他库提供了支持,比如Room和Paging就对LiveData提供了支持。
  • 向后兼容:基本上每个组件都对低版本提供了支持。
  • 支持RxJava:由于RxJava强大的生态环境,几乎和数据相关的组件都对RxJava提供了支持。
  • 减少代码量:以Data Binding + ViewModel + LiveData或RxJava构建的MVVM模式能够显著减少代码量,比较平时使用的MVP模式也会更加方便,无需主动更新UI。
  • 无需捆绑:Android Jetpack系列组件可以无需捆绑使用,你如果只想用里面的单个库,那么就可以仅仅依赖一个库。

Android Jetpack要学吗?怎么学?

学,肯定要学,Android Jetpack于谷歌而言,这是他们重新整理和统一安卓生态环境决心的体现,Android Jetpack所展现的内容,也是谷歌想拓展和维护的方向。于长期苦恼于第三方库选择的广大Android开发者而言,这是谷歌为我们提供的一盏明灯。

在这里为了方便大家系统的学习jetpack组件,这里分享一份《Jetpack架构组件从入门到精通》学习资料。

有需要的小伙伴,可以点击下方课程链接详细了解!!!

https://edu.51cto.com/course/32703.html

《Jetpack架构组件从入门到精通》

目录

如何看待Android的Jetpack这一系列库?_Android

一、Android Jetpack - NavigationNavigation

直接翻译即为导航,它是 Android Jetpack 组件之一,让单 Activity 应用成为首选架构。应用内Fragment页面的跳转则由 Navigation 来处理,开发者无需在处理 FragmentTransaction 的复杂性以及相关的转场动画。

如何看待Android的Jetpack这一系列库?_Android_02

二、Android Jetpack - Data Binding

Data Binding 是一个支持库,它使用一种 声明的方式 代替 编码的方式,用来绑定 UI 控件和数据源。

如何看待Android的Jetpack这一系列库?_UI_03

三、Android Jetpack - ViewModel & LiveDataViewModel

将视图和逻辑进行了分离。Activity或者Fragment只负责UI显示部分。具体的网络请求或者数据库操作则有ViewModel负责。类似于MVP模式中的Presenter层。

LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力,意指它遵循其他应用组件(如 Activity、Fragment 或 Service)的生命周期。

如何看待Android的Jetpack这一系列库?_UI_04

四、Android Jetpack - Room

Room是Jetpack组件库一员,属于ORM库,主要是对Sqlite做了一层抽象,从而简化开发者对数据库操作。Room支持编译时的语法检查,并且支持返回LiveData。

如何看待Android的Jetpack这一系列库?_Jetpack_05

五、Android Jetpack - Paging

Paging Libray分为三部分:DataSource, PagedList, PagedAdapter

如何看待Android的Jetpack这一系列库?_MVVM_06

六、Android Jetpack - WorkManger

WorkManager是Android Jetpack 中管理后台任务的组件。

常见的使用场景:1.向后端服务发送日志或分析数据 2.定期将应用数据与服务器同步

使用 WorkManager API 可以轻松地调度后台任务。可延迟运行(即不需要立即运行)并且在应用退出(进程未关闭)或应用重启时能够可靠运行的任务。

如何看待Android的Jetpack这一系列库?_UI_07

七、Android Jetpack架构组件之Lifecycle

为了应用的安全,经常会有从后台切回前台时进行软件确认等安全确认处理的需求。如果是以前的话,这个需求其实是挺难实现的。 但自从Google推出Lifecycle组件以后,这个需求就简单了很多。Lifecycle除了感知从后台切回前台以外, 利用这个组件可以更简单的实现复杂的处理生命周期的操作

如何看待Android的Jetpack这一系列库?_Jetpack_08

八、Android Jetpack Compose 最全上手指南Compose

并不是像 RecyclerView、ConstraintLayout 这种做了一个或者几个高级的 UI 控件,而是直接抛弃了我们写了 N 年的 View 和 ViewGroup 那一套东西,从上到下撸了一整套全新的 UI 框架。直白点说就是,它的渲染机制、布局机制、触摸算法以及 UI 的具体写法,全都是新的。

如何看待Android的Jetpack这一系列库?_UI_09

有需要的小伙伴,可以点击下方课程链接详细了解!!!

https://edu.51cto.com/course/32703.html

标签:看待,MVVM,Jetpack,LiveData,UI,组件,Android
From: https://blog.51cto.com/u_16163442/8240222

相关文章

  • 都在唱衰Android,事实真的是这样吗?
    Android开发现状目前,移动开发已经处于饱和的阶段,Android开发也不如当年盛况,已经不再像前几年前那么火爆。以前是只要你会Android四大组件的都是个香饽饽,那样的时代已经过去了,随着人机交互的体验要求,App的用户体验的要求、流畅度等等,已经不可同日而语。在这样的大环境下,那么对我们的......
  • IDA 动态调试 android so
    本篇介绍使用IDA可以单步调试so,即使没有源代码也没关系,这样就可以逆向目标应用的so,分析内部逻辑,本篇就介绍下如何操作。idadebugso首先得准备一个androidapp,带jni的。我这边用了一个加法的例子,jni代码如下:extern"C"JNIEXPORTjintJNICALLJava_com_example_idadebugdemo_......
  • Cocos Creator 3.x 之Android Studio打包(二)
    一,重构Android项目1, 新建Activity(这里是:AlexActivity)继承自AppActivity2,编辑AndroidManifest.xml,使AlexActivity为启动Activity二,JavaScript调用Java1,方法签名方法签名稍微有一点复杂,最简单的方法签名是 ()V,它表示一个没有参数没有返回值的方法。其他一些例子:(I)V 表示参数为......
  • 史上最全的Android面试题集锦
    前言由于之前从上海离职,来到深圳找工作。然后准备面试的时候,发现网上很多Android面试题及答案整理都没有答案,在成功的拿到几家公司的offer后(虽然不是阿里、网易这种级别的公司,但对我一个毕业三年的Android开发来说,算是成功的从小公司跳到大公司)自己总结了一些最近面试过的Androi......
  • 直播带货源码,android editText设置颜文字过滤
    直播带货源码,androideditText设置颜文字过滤 //给editText设置过滤器  InputFilterinputFilter=newInputFilter(){    //限制输入表情    Patternemoji=Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27f......
  • ​​Android平台GB28181历史视音频文件回放规范解读及技术实现
     技术背景在实现GB28181历史视音频文件回放之前,我们已完成了历史视音频文件检索和下载,历史视音频回放,在GB28181平台非常重要,比如执法记录仪等前端设备,默认录像数据存储在前端设备侧,如果需要上传到平台统一保存,除了到工作站拷贝外,还可以通过GB28181的历史视音频文件下载到指挥中心......
  • Android接入数字键盘并通过获取键盘输入的值控制App
    一、概述需求:现有一个需求,要求给Android系统接入一个数字键盘,用于方便工人操作(ps:因为触摸屏在特定场景下比键盘低效)需要:1.Android系统手机/pad需要能够连接数字键盘2.Android侧能够获取到手机键盘的按键值3.获取到键盘的按......
  • 就今年这行情,成为Android程序员还有发展前景吗?
    前言做为一名IT行业从业者,我认为IT行业饱和这个说法是不准确的,应该叫低端IT业趋于饱和,而技术深入的IT领域人才远远未达到饱和,甚至这样的人才还很稀缺。近些年计算机相关专业成为了热门专业,大家都知道这个行业赚钱,于是蜂拥而至。认为学了计算机就能进中大厂,其实能进去的都是少部分人......
  • 水果连连看,Android 小游戏开发
    A.项目描述"水果连连看"是一款经典的休闲益智小游戏。游戏的目标是通过连接相同的水果图标来消除它们,最终清空整个游戏界面。它以其简单易懂的规则和有趣的玩法而受到许多玩家的喜爱。让我们来梳理一下这款小游戏的功能需求。游戏规则和目标:游戏采用经典的连连看玩法,玩家需要在限......
  • android 系统修改签名:以android13为例
    android系统修改签名:以android13为例修改签名方式修改签名文件使用签名工具(development/tools/)修改签名文件development/tools/make_keyplatform'/C=CN/ST=ShenZhen/L=NanShan/O=Tripod/OU=WCD/CN=demo/[email protected]'  注意:以上两张图片表......