Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >7. JetpackNote---基于Jetpack的学习笔记APP

7. JetpackNote---基于Jetpack的学习笔记APP

作者头像
Hankkin
发布于 2019-09-18 02:10:25
发布于 2019-09-18 02:10:25
1K0
举报
文章被收录于专栏:Android干货园Android干货园

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/lyhhj/article/details/100705874

JetpackNote 是一款基于谷歌官方组件Jetpack开发的笔记项目,项目中包含了对各大组件的源码分析、Demo使用:Navigation、Lifecycles、Paging、LiveData、ViewModel等… \n项目使用Kotlin语言进行编写,依赖库截止代码编写时为最新版本,的几篇源码分析我们分别对NavigationLifecyclesViewModelLiveData、进行了分析,也对JetPack有了更深入的了解。

如果你对Jetpack组件有了解或者想对源码有更深入的了解,请看我之前的几篇文章:

1. Jetpack源码解析—看完你就知道Navigation是什么了?

2. Jetpack源码解析—Navigation为什么切换Fragment会重绘?

3. Jetpack源码解析—用Lifecycles管理生命周期

4. Jetpack源码解析—LiveData的使用及工作原理

5. Jetpack源码解析—ViewModel基本使用及源码解析

6. Jetpack—Paging你知道怎样上拉加载吗?

下载链接:

1. 背景

在我的Jetpack_Note系列中,对每一篇的分析都有相对应的代码片段及使用,我把它做成了一个APP,目前功能还不完善,代码我也上传到了GitHub上,参考了官方的Demo以及目前网上的一些文章,有兴趣的小伙伴可以看一下,别忘了给个Star。

https://github.com/Hankkin/JetPack_Note

我们先看一下效果吧:

2. JetpackNote是什么?

JetpackNote 是一款基于谷歌官方组件Jetpack开发的笔记项目,项目中包含了对各大组件的源码分析、Demo使用:Navigation、Lifecycles、Paging、LiveData、ViewModel等…项目使用Kotlin语言进行编写,依赖库截止代码编写时为最新版本。

Jetpack是什么想必大家对它都已经有了基本的了解了,官方介绍以及官方文档:

https://developer.android.com/jetpack

Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。

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

3. 为什么写JetpackNote?

说的简单些:就是为了记录自己的一个学习过程…

我为什么要学习Jetpack呢?想尝试一种新的架构方式,从我开始工作到现在,经历过了最初的MVC、MVP[MVP-todo、The-MVP…]以及各式各样的MVP]、MVVMClean等,当然我并没有所有的架构都用到过,每个项目基于自己的项目特点以及需求的迭代都会出现一套基于开发者所设计的架构模式,分层、组件化、模块化,我相信每一种设计都是基于项目所在的场景的。即使谷歌官方推荐使用todo-mvp使用契约类…,但终究那不能适合所有项目场景。但是Jetpack,它是一套组件、工具和指导;是谷歌正式推出的一整套用来构建APP开发的组件。

在Android Developers官网上,Jetpack作为一个Tab和Kotlin、Android Studio等一样的地位也同样占据了一个模块,Jetpack里目前包含的内容,未来想必也是谷歌大力维护和扩展的东西,所以我打算对Jetpack深入学习一番,其实Google Play商店中很多APP都已经开始使用Android Jetpack了,国内目前也有一些公司在使用了,虽然我很少听到,但是就目前关于Jetpack的一个帖子上面的内容经常会有人提到。这只是我对Jetpack学习的一些个人看法和想法啊,觉得有必要的你可以研究一下,反正到最后没有亏吃,是吧…

4. JetpackNote包含哪些内容

4.1 Navigation

1. Jetpack源码解析—看完你就知道Navigation是什么了?

2. Jetpack源码解析—Navigation为什么切换Fragment会重绘?

4.2 Lifecycles

3. Jetpack源码解析—用Lifecycles管理生命周期

在Lifecycles模块,我通过一个悬浮窗模拟控制台输出,来监听定位权限的日志…

4.3 LiveData

在LiveData模块,通过生命周期观察LiveData的值,并将它打印在控制台中,点击 开始观察数据 按钮,通过演示生命周期函数,返回桌面或者进入后台,查看LiveData对象的值。 Map转换则演示通过转换存储在LiveData对象中的值,并向下传递转换后的数据。在此Demo中通过点击Map按钮增加UserId,驱动LiveDataViewModel中的userBean来改变,最后展示在TextView中

4. Jetpack源码解析—LiveData的使用及工作原理

4.4 ViewModel

在ViewModel模块,屏幕中央为一个计时器,通过使用ViewModel存储计时器的值,将屏幕方向发生改变后,数据仍然存在不会销毁。 通过点击 查看Fragment共享Demo 可以查看两个Fragment共享了同一个ViewModel中的SeekBar的值。

5. Jetpack源码解析—ViewModel基本使用及源码解析

4.5 Paging

6. Jetpack—Paging你知道怎样上拉加载吗?

其他还有Room、WorkManager也基本有用到,但是还没有详细进行分析…这就是关于JetpackNote的整体内容,如果不当地方还请指正…

5. 结尾

Github https://github.com/Hankkin/JetPack_Note

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年09月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
是时候更新手里的武器了—Jetpack架构组件简析
最近两年,MVVM的呼声越来越高,说实话,在经历了MVP的臃肿,MVP的繁琐,我有点怕了。但是这次Google官方带来的一系列为MVVM架构设计的武器—Jetpack,真的让我惊喜到了。
码上积木
2020/09/27
3K0
5. Jetpack源码解析---ViewModel基本使用及源码解析
2. Jetpack源码解析—Navigation为什么切换Fragment会重绘?
Hankkin
2019/08/14
8550
4. Jetpack源码解析—LiveData的使用及工作原理
2. Jetpack源码解析—Navigation为什么切换Fragment会重绘?
Hankkin
2019/07/10
1.1K0
Android Jetpack架构组件(一)与AndroidX
自2008年9月22日谷歌发布Android 1.0版本到前不久Android 12版本到发布,Android已经陪伴我们走过了12个年头。可以说,经过12年的打磨和沉淀,Android的技术体系已经非常的成熟了。比如说,一开始时框架很少,也没有什么规范,所有的代码都是要自己写,但是现在,我们很少会关系这种基础代码,因为一些框架和工具的出现正在帮助开发者完成这方面的工作。
xiangzhihong
2020/12/21
2.1K0
360度无死角,Android Jetpack面试技巧大揭秘
在Android开发领域,掌握Jetpack是一位专业Android开发者必备的技能。本文将围绕Android Jetpack展开,深度解析面试中可能涉及到的高级疑难问题,我将分享一些关于Android Jetpack的面试技巧,帮助你更好地准备面试。
Rouse
2024/01/23
3160
360度无死角,Android Jetpack面试技巧大揭秘
6. Jetpack---Paging你知道怎样上拉加载吗?
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
Hankkin
2019/08/29
1.8K0
6. Jetpack---Paging你知道怎样上拉加载吗?
改造 Android 官方架构组件 ViewModel
原文地址: http://www.jianshu.com/p/963a9d146da7
用户2965681
2018/09/13
7760
Android:手把手带你了解实用的Android Jetpack
提供了最基础的底层功能,如向后兼容性、测试、开发语言Kotlin支持等。包含的组件库:
Carson.Ho
2020/02/18
1.2K0
Android Jetpack - Lifecycles
Lifecycles 简介 Lifecycles 即生命周期,属于 Jetpack 架构组件之一的 Lifecycles 组件是可以为其它组件提供生命周期感知能力的一个组件,而具备了生命周期感知能力的组件就叫生命周期感知组件,注意加粗部分多读两遍,我看网上很多文章直接把 Lifecycles 组件叫生命周期感知组件那么什么是生命周期感知能力呢?我们知道四大基础组件有生命周期,能感知这些生命周期的组件就具备了生命周期感知能力,所以我认为以前我们使用的 MVP 模式中的 Presenter 如果它通过接口等方式
SkyRiN
2019/08/08
1.4K0
引入Jetpack架构后,你的App会发生哪些变化?
关于Activity/Fragment其最重要的概念就是生命周期管理,我们开发者需要在不同生命周期回调中做不同事情。比如onCreate做一些初始化操作,onResume做一些恢复操作等等等等,以上这些操作都比较单一直接去写也没有多大问题。
Rouse
2021/05/28
1K0
引入Jetpack架构后,你的App会发生哪些变化?
Android 面试题:为什么 Activity 都重建了 ViewModel 还存在?—— Jetpack 系列(3)
ViewModel 是 Jetpack 组件中较常用的组件之一,也是实现 MVVM 模式或 MVI 模式的标准组件之一。在这篇文章里,我将与你讨论 ViewModel 实用和面试常见的知识点。如果能帮上忙请务必点赞加关注,这对我非常重要。
用户9995743
2022/09/26
1.3K0
Android 面试题:为什么 Activity 都重建了 ViewModel 还存在?—— Jetpack 系列(3)
Android Jetpack系列——Android Jetpack介绍
早在2008年,Google 推出了Android ,但那个时候 Android 刚刚问世,经过这将近11年的发展和不断优化,Android 可以说逐渐变得成熟,方便和应用越来越广。 随着 Android 手机的市场保有量越来越多,APP的研发朝着愈发的简单化,易上手的方向发展。而 Google 也是站在这一个角度出发,如何快速得让一个研发人员开发出一款APP,也可以快速的添加新的开发人员。 现在在 Google 应用市场当中,大部分 APP 已经开始使用 Android Jetpack。通过 Android Jetpack 可以让我们的 BUG 减少,让我们把更多的精力放在打造应用本身。 为了这种模板式的开发,Google 在2018年推出了 Android Jetpack。接下来,我将会通过一系列的文章来介绍Android Jetpack,旨在希望了解、学习、应用Android Jetpack的小伙伴一个参考资料。
Demo_Yang
2019/05/15
1.8K0
LiveData 还有学习的必要吗?—— Jetpack 系列(2)
LiveData 是基于 Lifecycle 框架实现的生命周期感知型数据容器,能够让数据观察者更加安全地应对宿主(Activity / Fragment 等)生命周期变化,核心概括为 2 点:
用户9995743
2022/09/26
3.6K0
LiveData 还有学习的必要吗?—— Jetpack 系列(2)
学习|Android中JetPack中的几个组件简单使用
Android JetPack是一整套的库,工具和指南。可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。
Vaccae
2020/03/31
1.7K0
学习|Android中JetPack中的几个组件简单使用
livedatabus详解,阿里是如何用他来做淘宝架构的?
Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作 Android Jetpack,它包含的组件如下图所示:
Android技术干货分享
2019/05/15
1.2K0
livedatabus详解,阿里是如何用他来做淘宝架构的?
使用Lifecycle-Aware组件优化项目
Android Architecture Components 是一组库,可帮助您设计健壮、可测试和可维护的应用程序。包含以下几个组件模块:
陈宇明
2020/12/16
9350
2. Android_Jetpack组件---Lifecycles源码解析
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/91440191
Hankkin
2019/06/15
7800
Android技术栈(四)Android Jetpack MVVM 完全实践
本文包含Android中MVVM体系中的很多部分,主要对ViewModel+DataBinding+RxJava+LiveData+Lifecycle等笔者所使用的技术体系进行解析.
Android技术干货分享
2019/04/18
4K0
Android技术栈(四)Android Jetpack MVVM 完全实践
Google 推荐在 MVVM 架构中使用 Kotlin Flow
链接:https://juejin.im/post/6854573211930066951
陈宇明
2020/12/16
4.6K0
Google 推荐在 MVVM 架构中使用 Kotlin Flow
“终于懂了“系列:Jetpack AAC完整解析(四)MVVM - Android架构探索!
前面三篇介绍了Jetpack 架构组件中 最重要 的部分:生命周期组件-Lifecycle、感知生命周期的数据组件-LiveData、视图模型组件-ViewModel。 这篇,就来探索下目前android开发中 最优秀、讨论最多的架构模式—— MVVM 。
胡飞洋
2021/02/19
2.1K0
“终于懂了“系列:Jetpack AAC完整解析(四)MVVM - Android架构探索!
推荐阅读
相关推荐
是时候更新手里的武器了—Jetpack架构组件简析
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文