为什么要使用 RxJava轻量级框架 < 1M基于观察者模式,统一了异步任务的回调接口,方便链式调用和操作符扩展通过 Scheduler / Worker 可以方便的进行线程切换在观察者和被观察者之间可以通过操作符完成时间和空间的重组
通过操作符可以对事件进行空间重组,使得观察者的逻辑简单而直接,不需要关心数据从何而来,从而使观察者的逻辑较为稳定
startWith 操作符可
转载
2023-08-16 09:59:03
35阅读
0.前言由于RxJava内部源码实现有点复杂,既然用拆轮子的方式来分析源码比较难啃,不如换种方式,以造轮子的方式,将源码中与性能、兼容性、扩展性有关的代码剔除,只留下核心代码,加上我个人的理解,带大家揭秘RxJava的实现原理(本文不涉及框架的使用介绍)。1.观察者Subsribler在RxJava里面是一个抽象类,它实现了Observer接口。2.被观察者Observable(被观察者)拥有很多
转载
2023-08-31 18:09:36
63阅读
上一篇介绍了Rxjava中观察者模式的基本实现原理,本篇主要介绍Rxjava链式操作实现的基本原理,即一个事件发出后,经过多次逻辑操作,最后到完成订阅的过程。 上篇中有一个事件原即被观察者observable和一个观察者observer,并完成订阅。而实际业务逻辑中一个事件原往往需要其他业务
转载
2023-08-26 11:57:45
88阅读
最近看到RxJava技术,好奇就网上找了些关于RxJava的博文,但绝大部分文章都讲了其使用,可我对最基本的东西——概念还是一脸懵逼。 这些文章看后,大概我知道两个重点,一是类似于观察者模式,二是任务执行与通知可以设置不同的线程。具体这个框架源码怎么做的就不知道了。看源码太累了,很多有名的
转载
2023-08-31 16:27:52
52阅读
RxJava 源码解读 一直以来在网上看到关于RxJava的使用博客都称赞RxJava使用起来非常简洁,即使业务逻辑非常复杂,它依然能够保持简洁。于是在个人项目也添加了RxJava和RxAndroid.秉着知其然知其所以然的态度,跟着调用方法一探其源码, 首选是调用方法。这个方法是获取手机里面的所有音乐文件信息,并且返回给回调者,并且这里的subscribe是运行在子线程中,回调则在主线程再更新
原创
2023-05-23 16:19:11
117阅读
RxJava是对响应式扩展( Reactive Extensions,称之为 ReactiveX )规范的Java 实现,该规范还有其他语言实现:RxJS、Rx.Net、RxScala、RxSwift等等(也即,ReactiveX 定义了规范,其他语言实现规范即可,所以我们这里学习RxJava的架构和设计思维,只需研究ReactiveX 即可)。RxJava是一个通过使用可观察序列来组合异步操作(
转载
2023-09-05 09:21:10
48阅读
# RxJava原理解析
## 1. 整体流程
首先,让我们通过一个表格展示整个RxJava的实现流程:
```mermaid
erDiagram
程序员 --> 编写观察者和被观察者类
编写观察者和被观察者类 --> 创建被观察者对象
创建被观察者对象 --> 创建观察者对象
创建观察者对象 --> 订阅观察者对象到被观察者对象
订阅观察者对象到被观
原创
2024-02-19 06:21:12
12阅读
本文主要从原理上去理解RxJava,不涉及复杂的操作符讲解。 先看个简单例子:Observable
.create(ObservableOnSubscribe<String> {
it.onNext("")
})//-------》 create返回的observable简称A
.subscribeOn(Schedulers.newThread())// ------
转载
2023-08-11 20:41:46
69阅读
# RxJava原理解析及示例代码
## 简介
RxJava是一个在Java虚拟机上实现的异步编程库,它使用观察者模式来处理事件流。RxJava的设计思想源于函数式编程和响应式编程,并提供了丰富的操作符来简化异步编程。
本文将介绍RxJava的基本原理,包括观察者模式、被观察者、订阅和事件流,同时提供一些示例代码来帮助读者更好地理解。
## 观察者模式
观察者模式是一种软件设计模式,用于
原创
2023-07-23 08:51:17
46阅读
前些日子在项目中引入了RXJAVA,也算是初步入门了RXJAVA的使用。使用起来感觉还是挺方便的,唯一需要注意的就是线程的切换以及调用的方法是否是在该线程应该使用的。如UI相关操作一定要在主线程中。一、什么是RXJAVARXJAVA是一个库,用来支持我们需求里需要异步操作的地方。它比起handler等异步操作的实现方式来说,显得更为简洁。把整个操作整合成一条流水线,从上游到下游都能够看的清。二、R
转载
2023-07-26 05:32:30
135阅读
以前写过 RxJava 源码分析,但是是直接对着源码分析流程,分析的也比较简单,这次从原理角度分析。 RxJava 是异步,网上介绍的都是订阅者模式,其实就是观察者模式的变种,我们先分析下 java 中自带的观察者接口 Observer 和被观察者 Observable。这两个类的代码比较简单,Observable 中有个集合,集合中存放的是 Observer,Observable 有个notif
转载
2024-02-28 09:19:57
16阅读
RxJava基础用法RxJava简介Rx(ReactiveX,响应式编程)是一种事件驱动的基于异步数据流的编程整个数据流就像一条河流,它可以被观测(监听),过滤,操控或者与其他数据流合并为一条新的数据流。而RxJava是.Net Rx在JVM上的实现。RxJava可以应用于大部分基于JVM的语言,如Scala,Groovy等。整个RxJava+RxAndroid的包大小为(1125kb
转载
2023-08-06 14:01:16
56阅读
RxJava是一个基于事件流的实现异步操作的框架(库),其作用是实现异步操作,类似于Android中的AsyncTask,那么为什么RxJava可以在众多异步操作的库中脱颖而出深受广大开发者喜爱呢?原因在于其逻辑简单、使用方便、条理清晰的特点,本文将由浅至深、由易到难一步一步带你理解和使用RxJava。本文目录如下: RxJava原理初探既然RxJava是为了异任务而引入的,那么我们首
转载
2023-08-04 12:37:26
98阅读
本章节继续讲解ANR的相关问题一.ANR原因分析1.系统导致ANR<1> CPU被抢占:比如,前台在操作游戏的app,可能会导致你的APP后台广播被抢占CPU,导致广播中相关代码执行超时导致ANR。<2> 系统服务无法及时响应:比如你的APP要获取系统联系人,系统的服务都是Binder机制,服务能力也是有限的,有可能系统服务长时间不响应导致ANR。<3>
转载
2023-08-14 22:40:18
206阅读
学而不思则罔,思而不学则殆 【RxJava】RxJava入门和原理分析引言RxJava接口介绍RxJava简单范例just操作符使用just操作符解析数据源+数据处理双向链表调用链 引言我相信很多人初学RxJava的时候一定被里面的各种接口和回调绕晕了,各种回调,各种订阅,我在哪儿,我又在哪儿,因为博主就是,最开始学习的时候被绕晕了。所以本篇文章就带领读者从一种熟悉的逻辑结构中来学习和了解RxJa
转载
2023-07-07 14:56:54
67阅读
目录 RxJava是什么?rxjava核心设计思想RxJava使用&原理分析基本使用基本使用源码分析线程切换线程切换源码分析RxJava变换总结:RxJava是什么?根据官方文档:RxJava是ReactiveX(Reactive Extensions)的Java VM实现:一个库,用于通过使用可观察序列来编写异步和基于事件的程序。rxjava核心设计思想要使用RxJava,您需
转载
2023-09-05 10:55:40
60阅读
1.前言Rxjava, 具有链式调用、使用简单&事件与结果松耦合的特点。Rxjava, 之所以深受欢迎它包含 非常多操作符,能通过 【链式形】 优雅整洁的代码几乎能实现所有的功能需求。本文特点:图多字少、逻辑简单。之前面试中被问了很多Rxjava的知识,今天献一份不一样诠释,希望大家喜欢。2.目录示意图3.简介示意图4.原理浅析Rxjava,扩展自观察者模式。4.1 生活例子通过手机叫外卖
转载
2023-11-08 20:45:01
38阅读
RxJava2.x 部分源码解析这几天比较空闲所以准备也做一个仿知乎日报的APP,然后就想到几个比较好用的框架顺便也好好练练手,就准备用Retrofit+RxJava来实现基本网络请求和事件处理的框架。在使用的时候就顺便研究了源码,汲取下这些优秀的开源框架的设计模式和思想。这篇文章就主要记录一下在看RxJava2.x部分源码的过程。简单用法Observable.create(new Observa
转载
2023-08-17 18:51:57
55阅读
不忘初心 砥砺前行, Tomorrow Is Another Day !本文概要:Observable的创建subscribe订阅过程发送事件线程切换过程1. Observable的创建对应源码//Observable.java
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.NONE)
public static <
RxJava"是什么,为什么,怎么办”是认识问题的逻辑思维过程,这篇文章也是这样来解释RxJava的RxJava是什么?RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Jav
转载
2024-02-19 10:07:56
33阅读