
Android Jetpack
文章平均质量分 88
Android Jetpack系列
_小马快跑_
代码说,欢迎点赞、关注。感谢!
展开
-
Jetpack Lifecycle 库新旧版本使用姿势对比
在之前的文章中详细介绍了Lifecycle的概念、用法及其实现原理。本文在原来的基础上,来对比新的使用姿势并尝试分析两者的不同。原创 2023-11-08 18:54:59 · 116 阅读 · 0 评论 -
Android Jetpack系列之MVI架构
在之前介绍MVVM的文章中,介绍了常用的架构及其对MVVM的封装使用,其中MVVMRepository提供数据,ViewModel中发送数据,UI层使用的LiveData订阅数据,当有数据变化时会主动通知UI层进行刷新。有兴趣的可以去看一下:1、Android Jetpack系列之MVVM使用及封装2、Android Jetpack系列之MVVM使用及封装(续)那么MVI又是什么呢?看了一些关于MVI的文章,大家都称MVI是(Model-View-Intent),其中Intent称为意图(注意这里的。原创 2022-10-03 22:06:29 · 3454 阅读 · 1 评论 -
Android 基于Kotlin Flow实现一个倒计时功能
Flow数据流可以按顺序发送多个值,一个倒计时功能刚好符合这种场景,本文就尝试使用Flow来实现一个倒计时功能。原创 2022-07-13 18:49:37 · 3985 阅读 · 0 评论 -
Android Jetpack系列之MVVM使用及封装(续)
文章目录写在前面LiveData的缺点存在的问题尝试解决新问题产生了进一步优化写在前面在前一篇 Android Jetpack系列之MVVM使用及封装 文章中,介绍了常用的MVC、MVP、MVVM架构及其对MVVM的封装使用,其中MVVM的主旨可以理解为数据驱动,UI层使用的LiveData订阅数据,Repository提供数据,ViewModel中发送数据。接下来继续讨论LiveData的局限性以及google推荐的UI层订阅数据方式。LiveData的缺点在学习LiveData时,我们知道通过L原创 2022-05-08 23:38:27 · 1886 阅读 · 0 评论 -
Android Jetpack系列之DataStore
文章目录DataStore介绍DataStore使用Preferences DataStoreProto DataStoreSharedPreferences缺点SharedPreferences迁移至DataStore总结参考DataStore介绍Jetpack DataStore 是一种数据存储解决方案,允许使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。DataStore 以异步、一致的事务方式存储数据,克服了 Sh原创 2021-11-17 15:54:28 · 3037 阅读 · 0 评论 -
Android Kotlin之Flow数据流
文章目录Flow介绍Flow使用举例运算符创建操作符中间操作符尾端操作符功能操作符StateFlowStateFlow vs LiveDataSharedFlow完整代码地址参考Flow介绍Flow是google官方提供的一套基于kotlin协程的响应式编程模型,它与RxJava的使用类似,但相比之下Flow使用起来更简单,另外Flow作用在协程内,可以与协程的生命周期绑定,当协程取消时,Flow也会被取消,避免了内存泄漏风险。我们知道 协程是轻量级的线程,本质上协程、线程都是服务于并发场景下,其中协原创 2021-10-11 20:31:01 · 15659 阅读 · 2 评论 -
Android Jetpack系列之MVVM使用及封装
文章目录Android开发架构MVCMVPMVVMUI驱动 vs 数据驱动MVVM的具体实现方案Jetpack MVVMMVVM封装总结参考Android开发架构如果开发过程中大家各自为战,没有统一规范,久而久之,项目代码会变得混乱且后续难以维护。当使用开发架构模式后,有很多的好处,如:统一开发规范,使得代码整洁、规范,后续易于维护及扩展提高开发效率(尤其在团队人员较多时)模块单一职责,使得模块专注自己内部(面向对象),模块间解耦总之,开发架构是前人总结出来的一套行之有效的开发模式,目的是达原创 2021-09-14 14:51:45 · 3380 阅读 · 2 评论 -
Android 基于Jetpack LiveData实现消息总线
文章目录消息总线EventBusRxBusLiveDataBus原理LiveData实现消息总线的优势LiveData实现消息总线存在的隐患LiveData默认是粘性消息LiveData.postValue可能会丢失消息解决方案支持粘性、非粘性消息支持子线程发送消息参考前面的文章 Android Jetpack系列之LiveData 介绍了LiveData的基本用法,本文来介绍一下LiveData的一个进阶用法 - 基于LiveData实现消息总线消息总线在Android开发中,跨页面传递数据(尤其是原创 2021-09-08 02:16:35 · 1438 阅读 · 0 评论 -
Android Jetpack系列文章
文章目录原创 2021-08-29 16:52:19 · 242 阅读 · 0 评论 -
Android Jetpack系列之ViewModel
文章目录ViewModel介绍ViewModel用法ViewModel与onSaveInstance(Bundle)对比源码解析ViewModel的存取ViewModelStore的存取参考ViewModel介绍ViewModel的定义:ViewModel旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel本质上是视图(View)与数据(Model)之间的桥梁,想想以前的MVC模式,视图和数据都会写在Activity/Fragment中,导致Activity/Fragment过重,后续难原创 2021-07-21 11:24:13 · 2074 阅读 · 0 评论 -
Android Jetpack系列之LiveData
文章目录LiveData介绍LiveData优点LiveData使用举例基础用法进阶用法Transformations.map()修改数据源Transformations.switchMap()切换数据源源码解析发送数据setValue/postValue注册观察者Observer并监听数据变化LiveData.observe()LiveData.observeForever()LiveData实现类MutableLiveData数据切换/修改 Transformations.map()/switchMap原创 2021-07-18 00:54:07 · 2262 阅读 · 3 评论 -
Android Jetpack系列之Lifecycle
文章目录Lifecycle介绍场景caseLifecycle使用Activity/Fragment中使用Lifecycle自定义LifecycleOwnerApplication中使用LifecycleService中使用Lifecycle源码解析Lifecycle.javaEvent生命周期事件分发&接收参考Lifecycle介绍Lifecycle可以让某一个类变成Activity、Fragment的生命周期观察者类,监听其生命周期的变化并可以做出响应。Lifecycle使得代码更有条理性、精原创 2021-07-04 23:03:50 · 3369 阅读 · 8 评论