告诉你 Jetpack+MVVM 组合开发的APP有多优秀!

2021-04-23 11:11:35 浏览数 (1)

前言

Jetpack 架构组件 及 标准化开发模式 的确立,意味着 Android 开发已步入成熟阶段。现在的Android岗招人的时候也非常看重应试者对 Jetpack 架构组件的理解程度

今天要带给大家的是 Jetpack MVVM 的魔法,教你用Jetpack结合MVVM开发出优秀的APP!

JetPack 让 Android 一飞冲天

为了可以进行模板式的开发,Google 在2018年推出了 Android Jetpack。现在 Google 的应用市场中,大部分 APP 已经开始使用 Android Jetpack。

▲ 2018年版本

Jetpack 的优势有很多:

  • UI和业务逻辑解耦。
  • 有效避免生命周期组件内存泄漏。
  • 提高模块可测试性。
  • 提高应用稳定性,有效降低以下异常发生概率。 Can not perform this action after onSaveInstanceState WindowManager$BadTokenException, is your activity running? OOM 、 NullPointerException ……

Android Jetpack 组件的集合可以帮助我们写大量重复的代码的任务,简化复杂的任务,让我们的 BUG 减少,以便让我们把更多的精力放在业务逻辑上,放在打造应用本身上。

这些好处让我们开发者更加轻松地开发出出色的 Android 应用!

Jetpack MVVM=?

Jetpack是一种新的架构方式,从工作到现在,我们经历过了MVC、MVP、MVVM、Clean等,每个项目由于项目特点和需求的不同,都会出现一套基于开发者所设计的架构模式,分层、组件化、模块化,每一种设计都是基于项目所在场景的,很难适合所有项目场景。

但是Jetpack,它的定义更像是一套工具或者说指导;是谷歌正式推出的一整套用来构建APP开发的组件。

而 MVVM 架构模式可以说是Google “钦定”的 Android 开发未来的第一架构。

从Model-View-ViewModel 这个名字来看,它由三个部分组成,其中视图模型(ViewModel)其实就是 PM 模式中的展示模型。

除了我们非常熟悉的 Model、View 和 ViewModel 这三个部分,在 MVVM 的实现中,还引入了隐式的一个 Binder 层,我们要完整的采用 MVVM 必须熟练的掌握 DataBinding 等基础组件。

大公司App的开发需要基于模块化、层次化、组件化、控件化的思路来设计架构,从而提高App的需求的应变能力和可靠性。Artifactory对模块化和组件化大有帮助;Jetpack可以有效减少Oom和奔溃;Mvvm则可以满足需求的变化。但是,这些知识你都会吗?

为了帮助早日进阶成为高级安卓工程师,我们特邀中国联通资深架构师Allen老师为大家带来《基于Artifactory的MVVM Jetpack项目实战训练营》系列直播课程,让大家从OOM和分页、错误处理等重复代码中解放出来,收获一段高效的成长!

Allen老师

中国联通资深架构师;全球首批Android开发者;10余年项目开发经验,独立开发应用被 360收购。

专精领域:Android架构,性能优化等技术领域。

报名福利

>>升值服务

  • 架构师三天时间带你从零开始手把手搭建APP框架
  • 课前资料预习预热 课后作业巩固 配套源码及工具,全方位助你消化吸收
  • 永久高质量学习社群,拥有你的小圈子,架构师实时答疑

>>资料领取

《全网最全Android架构师系统学习笔记》

网上学习 Android 的资料很多,但大都杂乱、零散、碎片化,如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

希望这份系统化的技术体系对大家有一个方向参考。

课程安排

4月23日:Mvvm项目Gradle优化和本地仓库搭建

  1. APP架构应该怎样搭建?
  2. MVx有哪些?区别是什么?
  3. Android工程Gradle的使用规范和本地仓库搭建;
  4. 模块化、层次化工程搭建;

4月24日:基于Jetpack的Mvvm高级架构逐步实现

  1. 初中级工程师是怎样实现架构?
  2. 架构师怎样实现控件化,怎样定义自定义的基类?
  3. Mvvm Model的功能是什么?缓存有哪些级别,怎样提取Model的基类?
  4. Mvvm ViewModel怎样和Jetpack结合,OOM问题在MVVM中怎样避免?

4月24日:App组件化和启动性能优化

  1. Fragment和Activity的错误处理页面有完美方案吗?基类又该怎样实现?
  2. App的白屏问题怎么解决?
  3. App启动速度性能优化;

0 人点赞