• Stars
    star
    211
  • Rank 186,867 (Top 4 %)
  • Language
    Kotlin
  • Created over 5 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

JetPack_Note

Jetpack note

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

下载链接:

More Repositories

1

Reading

🍑Reading是一款基于WanAndroid OpenApi开发的阅读类工具,如果你是一个热衷于Android开发者,那么这款软件能帮助你阅读精品Android文章。 同时Reading中还包含"英文单词"、"账号本子"、"天气"、"查单词"、"快递查询"等小工具。项目基于"Kotlin+MVP"架构开发,风格大概也许属于Material Desgin原质化风格,包含主题颜色切换、百变Logo、 等功能。在此感谢WanAndroid的OpenApi,以及其它开源项目的贡献。
Kotlin
409
star
2

TaoBaoDetailDemo

Android--仿淘宝商品详情(继续拖动查看详情)及标题栏渐变
Java
288
star
3

PageLayoutDemo

🥭一款简单的page切换 空布局、错误布局、加载布局,支持一键配置、定义,不需要xml编写
Kotlin
248
star
4

GradationTitleBar

仿QQ空间标题栏渐变
Java
173
star
5

TaoSchool

一款基于Material Desgin设计的APP
Java
152
star
6

SwipeRefreshDemo

自定义组合控件上拉+下拉+左滑删除置顶
Java
151
star
7

BaiduGoingRefreshLayout

仿百度外卖下拉刷新动画
Java
136
star
8

MyCartDemo

android自定义柱状图
Java
115
star
9

PageLayoutDemojava

Java
48
star
10

WeiXinSelectImgsDemo

高仿微信照片选择器
Java
45
star
11

WeiXinLookImgsDemo

高仿微信朋友发表图片说说
Java
38
star
12

WeixinGroupIconDemo

高仿微信群聊头像
Java
36
star
13

MvpDemo

init mvp okgo
Java
27
star
14

HBase

library
Java
20
star
15

SelectMutiImgDemo

选择图片上传(从相册选择、拍照)
Java
18
star
16

ListPopwidowDemo

the first commit
Java
17
star
17

GridViewDemo

GirdView点击效果和分割线
Java
13
star
18

TitleBarViewDemo

自定义TitleBarView通用标题栏
Java
9
star
19

MultiPurposeListView

仿QQ聊天左滑删除
Java
7
star
20

HLibraryDemo-master

基于Hankkin的library开发库
Java
4
star
21

AndroidJSDemo

JS调用Android原生控件的demo
Java
3
star
22

reading_flutter

🍉Reading Flutter 版本
Dart
2
star
23

KotlinNote

KotlinNote
2
star
24

Reading_AAC

Kotlin
1
star
25

ClearEditTextDemo

可清除的edittext
Java
1
star
26

HybridLib

HybridDemo
Kotlin
1
star
27

PagerSlidingTabStripDemo

仿今日头条页面滑动效果
Java
1
star
28

ITRound

Java
1
star