华为Jetpack项目揭秘,Jetpack如何与MVVM完美结合?

92 篇文章 7 订阅
4 篇文章 0 订阅

最近有听到很多小伙伴问“Android 开发还有前景吗?”。确实,现在的Android开发早已没有前几年那么火热了,初级开发者的市场已经严重饱和,但据我的几个HR朋友反应,高级工程师现在都是各家大厂在抢人了,往往都是高薪但招不到人。

这也对我们开发者提出了更高的要求,所以,努力让自己成为高级工程师才是最重要的,技术才是我们的核心竞争力!

谷歌在 2018 I/O 大会上发布了一系列辅助android开发者的实用工具,这套工具就是Jetpack,它是一套库的合集,可以帮助开发者更轻松地编写出色的 Android 应用程序。避免频繁的bug,做重复的工作。

并且,使用Jetpack对开发者来说还有以下几个优势:

  • 加速开发: Jetpack 提供丰富的组件,组件可以单独采用,将拿来主义发挥到极致,但是又可以深度定制
  • 消除样板代码: Jetpack 可管理繁琐的 Activity(如后台任务、导航和生命周期管理)。
  • 构建高质量的强大应用: Jetpack 组件围绕现代化设计实践构建而成,具有向后兼容性,可以减少崩溃和内存泄漏。

大厂是如何使用Jetpack的?

Jetpack 现在包含的内容非常丰富,一般大厂中使用 MVVM 设计思想与Jetpack联合使用。同时 Jetpack 里面的架构相关的组件也是为MVVM 量身定制的。

用Jetpack与MVVM设计思想开发的项目不仅保护了项目的完整性,很难出现难以排查的内存泄漏,同时也解耦了各个模块。

就拿华为音乐来看他的架构:

设计思想 我们选用MVVM

工具我们使用Jetpack组件中的 Lifecycle、ViewModel、LiveData,Room

  • ViewModel

ViewModel对象为音乐界面提供数据,并包含下载,播放音乐业务逻辑,以与View进行通信。例如,ViewModel 可以调用其他组件来加载数据,还可以转发用户请求来修改数据。ViewModel 不了解界面组件,因此不受配置更改(如在旋转设备时重新创建 Activity)的影响。

  • LiveData

LiveData是一种可观察的数据存储器。华为音乐中的其他组件可以使用此存储器监控对象的更改, LiveData 组件监听应用音乐界面Activity的生命周期状态,并清理逻辑以防止对象泄漏和过多的内存消耗。当音乐界面关闭,会释放所有的需要释放的内存,以达到节省内存,和防止内存泄露的目的

  • Room

Room 是一个对象映射库,可利用最少的样板代码实现本地数据持久性。在编译时,它会根据数据架构验证每个查询,这样损坏的 SQL 查询会导致编译时错误而不是运行时失败。Room 可以抽象化处理原始 SQL 表格和查询的一些底层实现细节。它还允许您观察对数据库数据(包括集合和连接查询)的更改,并使用 LiveData 对象公开这类更改。它甚至明确定义了解决一些常见线程问题(如访问主线程上的存储空间)的执行约束。

光这么看文字大家可能不太容易理解,也很难将Jetpack和MVVM应用到工作中去。

那么,我们到底该如何学习Jetpack和MVVM,搭建一个健壮的大型APP架构呢?

为了帮助大家更快更好的学习并理解Jetpack和MVVM,我特别分享一套系统的开发进阶资料,帮助大家在技术的道路上更进一步。

还有一份收录整理的Android学习PDF+架构视频+面试文档+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料

这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效的帮助大家掌握知识、理解原理,帮助大家在面试季取到一份不错的答卷。

当然,你也可以拿去查漏补缺,提升自身的竞争力。

如果你有需要的话,可以前往 Github 自行领取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值