Jetpack学习笔记
文章平均质量分 85
十里店守墓人c
冰冻三尺,水滴石穿,成长在于积累。
展开
-
Jetpack-Room框架使用与源码分析
目录一、简介1、Room是什么2、为什么要使用Room二、Room基本用法1、引入依赖2、Room的三大角色EntityDAODatabase3、调用数据库三、Room配合Jetpack全家桶使用四、Room源码分析一、简介1、Room是什么Room框架是Android Jetpack众多组件库的一员。Jetpack的出现统一了Android开发生态,各种三方库逐渐被官方组件所取代,Room逐渐取代竞品成为最主流的数据库ORM框架。Room是SQLite数据库的抽象,让用户能够在充分利用SQLite的原创 2021-11-25 14:55:30 · 2229 阅读 · 0 评论 -
Jetpack-ViewModel用法与源码分析
目录前言一、ViewModel使用1、定义ViewModel2、创建ViewModel二、源码分析1、创建流程ViewModelStoreViewModelProvider.NewInstanceFactory()get(MyViewModel::class.java)2、Activity重建3、ViewModel生命周期前言ViewModel组件的作用就是保证数据的稳定性。当我们在某Activity输入100个字段以后,发生横竖屏切换,Activity重建,此时数据会保存在ViewModel中,Act原创 2021-11-21 22:45:29 · 982 阅读 · 0 评论 -
Jetpack-DataBinding双向绑定基本使用与原理分析
使用场景在Android开发初期,基本都会使用MVC模式,但随着业务的增加,Activity会变得很臃肿,业务代码与界面显示全部耦合在一起,扩展性差,维护起来很不方便,于是MVP模式就应运而生了。MVP模式实现了V和M的解耦,分层清晰,把业务处理搬到P层,通过接口实现V层和P层之间通信。MVP模式也存在一些问题,随着项目的增大,接口类会越来越多,而且每一个小的改动,都需要通过接口来通信,有时候一个简单的功能,都需要写好几个接口,会造成接口爆炸。这时候MVVM模式就出现了。MVVM模式同样也是解耦,将业原创 2021-11-21 16:41:14 · 3643 阅读 · 1 评论 -
Jetpack-自定义LiveData解决数据粘性(倒灌),拿来就能用
背景我们在使用LiveData的时候,有时需要在两个页面监听同一个LiveData数据的变化,从第一个页面进入第二个页面时,第二个页面刚刚订阅,就会收到第一个页面最后一次数据的变化。一般地,在使用LiveData时,我们都会先订阅,后setValue,但如果我们先setValue,后订阅,会发现我们之前setValue的值也会回调onChange,这就是数据粘性。造成这种数据粘性的原因在我上一篇文章有分析,这里就不再赘述,我们大多数情况是不需要这种粘性数据的,下面我们就通过自定义LiveData来去除粘性原创 2021-11-17 13:50:24 · 897 阅读 · 0 评论 -
Jetpack-ViewBinding使用方法简介
ViewBinding是通过视图绑定,给每个xml文件生成一个类,通过这个类,我们可以直接获得控件对象,不需要再findViewById。与DataBinding相比,ViewBinding更加轻量,速度更快,再比较简单的项目开发时,用起来很方便。同时ViewBinding编译安全,不会像ButterKnife或者Kotlin Android Extensions一样,能够拿到其他xml文件中的控件id,这样容易带来一些粗心导致的错误。ViewBinding使用第一步 开启ViewBindingan原创 2021-11-15 23:11:22 · 1136 阅读 · 0 评论 -
Jetpack-LiveData用法与源码分析
LiveData用法与原理分析LiveData定义和作用LiveData用法LiveData源码分析新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入LiveData定义和作用LiveData是一种可观察的数据存储器类。原创 2021-11-14 19:37:18 · 940 阅读 · 0 评论 -
Jetpack-Lifecycle用法与源码分析
Lifecycle使用和源码分析Lifecycle作用和优势Lifecycle几种使用方法导入依赖基本用法使用DefaultLifecycleObserver用法再封装一层接口的用法(在P层直接使用生命周期方法)源码分析功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLo原创 2021-11-12 18:02:51 · 1459 阅读 · 0 评论