为了账号安全,请及时绑定邮箱和手机立即绑定
慕课专栏

目录

索引目录

跟架构师学Jetpack

原价 ¥ 29.00

立即订阅
01 开篇词:走进 Jetpack 架构组件库
更新时间:2020-07-24 10:29:24
古之立大事者,不唯有超世之才,亦必有坚韧不拔之志。

——苏轼

你好,我是 LovelyChubby,欢迎来到这门《跟架构师学 JetPack》,正如专栏标题所言,我是一名移动端的架构师,从事 Android 开发行业已经有 7 年 +,目前主要负责客户端基础服务设计与开发相关工作,对 Android、跨平台、Jetpack 源码有较深的理解。

什么是 Jetpack

我想 Jetpack 对各位 Android 开发者来说,应该并不陌生。自从 Google 在 2018 年推出 Jetpack 之后,它就成为了 Android 未来发展的指向标。Google 也希望通过 Jetpack 统一开发者的开发规范,同时它也是众多优秀 Android 组件的集合。可以说,作为 Android 的开发者,如果你还没有退休的打算,Jetpack 就是你职业道路中的必学内容。

Jetpack 是 Google 为解决 Android 开发碎片化,打造成熟健康生态圈提出的战略规划,是 Google 对 Android 未来提出的发展方向,同时它也是众多优秀 Android 组件的集合。

注意:Jetpack 是众多组件库的统称,AndroidX 是这些组件的统一包名,这俩不要傻傻分不清哈。

图片描述

发展到今天,各个大厂以及 GitHub 都已经在拥抱并适配 Jetpack,甚至 Jetpack 已经成为了 Android 开发工程师面试必问的一项技术,可以称它为 Android 开发必学的技能。

Jetpack 的优势

上面为 Jetpack 鼓吹了这么多,那么 Jetpack 到底有什么好处能够吸引这么多大厂来使用呢?它的优势又在哪里?别着急,下面我们一起来看下 Jetpack 在开发中的好处:

  • Jetpack 拥有基于生命周期感知的能力,可以减少 NPE 崩溃、内存泄漏。为我们开发出健壮且流畅的程序提供强力保障;
  • Jetpack 可以消除大量重复样板式的代码,可以加速 Android 的开发进程。这些组件可搭配工作,也可单独使用,同时配合 Kotlin 语言特性能够显著提高工作效率。
  • 统一开发模式,抛弃传统的 MVC,MVP。

图片描述

专栏是如何设计的

在说到专栏是如何设计之前,我们先来看一张图:

图片描述

从上图中可以看到 Jetpack 一共有四部分组成,然而 UI、Behavior、Foundation 这三部分大多是对已有内容的收集整理,这四部分中最为核心的就是本专栏着重讲解的 Architecture 架构部分

Architecture 架构部分主要包含以上 8 个重要成员,本着面向实际开发的需要,所以专栏多以高频用法 + 实现原理 + 面试考点 + 进阶实战多个维度授课。让同学们充分掌握 Jetpack 的核心组件。

下面先对专栏的课时安排以及 Jetpack 核心组件进行初步的介绍让同学们对 Jetpack 组件库有个初步的印象,详细的我们会在每一节中再展开讨论。

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

  • 特性:它持有组件(如 Activity 或 Fragment)生命周期状态的信息,并且允许其他对象观察此状态。
  • 本篇主要讲解什么是 Lifecycle;如何使用 Lifecycle 观察宿主状态;Fragment 是如何实现 Lifecycle 的 ;Activity 是如何实现 Lifecycle 的;Lifecycle 是如何分发宿主状态的等内容。

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

  • 特性:支持共享资源、支持黏性事件的分发、不再需要手动处理生命周期、确保界面符合数据状态。
  • 不足:黏性事件不支持取消
  • 本篇主要介绍 什么是 LivaData;LiveData 核心方法,LiveData 事件分发实现原理等内容。

3. LiveData 进阶实战:本篇将着重讲解如何基于 LiveData 实现消息总线,并实现黏性事件可控,从而抛弃 EventBus。

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

  • 特性:1. 页面因配置变更导致的重启,此时数据不丢失。2. 可以实现跨页面 (跨 Activity) 的数据共享。
  • 本篇主要讲解什么是 ViewModel;ViewModel 的用法;ViewModel 复用实现原理等内容。

5. SavedState 架构组件原理解析

  • 特性:1 因内存不足,电量不足导致页面被回收时可以搭配 ViewModel 实现数据存储与恢复。
  • 本篇主要讲解什么是 SavedState;SavedState 的用法;SavedState 数据存储与恢复实现原理等内容。

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

  • 特性:使用简单(类似于 Retrofit 库),通过注解的方式实现相关功能。 编译时自动生成相关实现类
  • 本篇主要讲解主要介绍什么是 Room;Room 高频用法;Room 数据库创建实现原理;Room 与 LiveData 的巧妙结合,数据变更监听等内容。

7. 基于 Room 封装 APP 离线缓存框架:本篇主要讲解如何基于 Room 数据库实现离线缓存框架 HiStorage,可以用于缓存任意数据结构的数据。

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

  • 特性:支持数据与视图双向绑定、数据绑定空安全、减少模板代码、释放 Activity/Fragment 压力
  • 本篇主要讲解什么是 dataBinding;dataBinding 的优势;dataBinding 如何使用;与 ViewBinding 的区别等内容。

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

  • 巧妙融合 LiveData、提供多种数据源加载方式
  • 不足之处:不支持列表数据增删改。列表添加 HeaderView,FooterView 定位不准确。这点我们会着重讲解如何解决这些问题
  • 本篇主要讲解什么是 Paging;如何使用;Paging 工作原理;Paging 现存问题以及如何去解决等内容。

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

  • 特性:能够为 Activity,Fragment,Dialog,FloatWindow 提供统一的路由导航服务,可以传递参数,指定导航动画,还支持深度链接等主要能力。
  • 不足:十分依赖 xml 配置文件不利于组件化,模块化,千人千面场景开发
  • 本篇主要讲解什么是 Navigation ;Navigation 如何使用;Navigation 工作原理;Navigation 现存问题。

11. Navigation 组件进阶改造:本篇主要讲解基于 Navigation 手把手实现 APP 配置架构搭建。

12. WorkManager:新一代后台任务管理组件,功能十分强悍。service 能做的事情它都能做

  • 支持周期性任务调度、链式任务调度、丰富的任务约束条件、程序即便退出,依旧能保证任务的执行
  • 本篇主要讲解什么是 WorkManager;WorkManager 的优势;WorkManager 如何使用;WorkManager 架构工作原理等内容

13. 老项目适配 Androidx:本篇主要讲解老旧项目如何使用 jetpack 的能力,如何迁移,以及迁移过程存在的主要问题。

14. Jetpack 专栏总结:回顾全文。对本专栏做一个全面的总结与展望。

图片描述

经过一段时间对 Jetpack 的潜心研究与实战应用,我把 Jetpack 的众多组件的用法,原理和一些现存问题,以及如何进阶改造等系统的梳理总结出了这一套专栏,希望能帮助同学们在有限的时间内高效的掌握 Jetpacket 这一 Android 开发的大杀器。那么,接下来就让我们一起进入 Jetpack 的世界吧!

}
立即订阅 ¥ 29.00

你正在阅读课程试读内容,订阅后解锁课程全部内容

千学不如一看,千看不如一练

手机
阅读

扫一扫 手机阅读

跟架构师学Jetpack
立即订阅 ¥ 29.00

举报

0/150
提交
取消