RxJava2.x 部分源码解析这几天比较空闲所以准备也做一个仿知乎日报的APP,然后就想到几个比较好用的框架顺便也好好练练手,就准备用Retrofit+RxJava来实现基本网络请求和事件处理的框架。在使用的时候就顺便研究了源码,汲取下这些优秀的开源框架的设计模式和思想。这篇文章就主要记录一下在看RxJava2.x部分源码的过程。简单用法Observable.create(new Observa
Demo分析响应式编程的概念现在火的一塌糊涂,各种RxXXX库层出不穷,虽然这些库的实现语言各不相同,但是原理都是一样的。我的理解是这些库主要都包含三个东西:Observable, OnSubscribe, Subscriber。阅读本文的读者必须懂的这些概念,初学者建议看下RxJava专题 上的文章再来看本文。我们就从源码层级来分析一下这中间的事件流,线程切换是怎么个原理。这里交代下本文分析的R
1、引言 据说现在Android开发界rxjava很热,本人在年初找工作过程中也被问到过几次,奈何笔者开发经验有限,实在是没怎么接触过,就听说过名字,于是一次次面试不得不铩羽而归,最近,静下心来,笔者想学习一下rxjava,发现,这火热的技术用到的核心思想就是观察者设计模式,现在,愿与诸君一起分享我对观察者设计模式的一些浅陋的看法 2、定义 观察者设计模式是对象的行为模式,
# RxJava 实现原理面试 ## 前言 在 Android 开发中,我们经常会用到 RxJava 这个强大的库。它以响应式编程的方式简化了异步任务的处理,让代码更加清晰、简洁。在面试中,面试官可能会问你 RxJava 的实现原理,下面就来介绍一下 RxJava 的实现原理及相关代码示例。 ## RxJava 简介 RxJava 是一个基于观察者模式的异步编程库,它通过使用 Observ
原创 2024-01-17 11:43:33
1605阅读
# RxJava实现原理面试 在Android开发中,RxJava已经成为了非常流行的响应式编程库。然而,在面试中,面试官可能会要求你解释RxJava的实现原理。本文将介绍RxJava的基本概念和实现原理,并附带代码示例。 ## RxJava概述 RxJava是一种响应式编程库,使用观察者模式来实现异步和事件驱动的程序。它基于异步序列和操作符的概念,简化了异步编程和事件处理的复杂性。RxJa
原创 2023-11-24 04:48:49
207阅读
解释一下这一串命令(本文不做systrace命令的详解,这些东西都是死命令,百度即可): python 将要执行python脚本 systrace.py 脚本名称 -b 设置缓存区大小 -t 抓取5秒日志 -o mytrace.html 输出到这个文件内 wm WindowManager 日志内包含windowManager信息 gfx Graphics 日志中包含图形绘制的信息 input In
# RxJava线程切换原理面试 ## 引言 在处理异步任务时,我们经常需要在不同的线程间切换。在Android开发中,我们通常使用RxJava来处理异步操作。RxJava提供了丰富的线程切换操作符,例如`subscribeOn`和`observeOn`,用于指定任务的执行线程。 本文将介绍RxJava线程切换的原理,并使用代码示例来解释。 ## RxJava线程切换原理RxJava
原创 2023-09-07 20:32:05
233阅读
前言刚参加工作的时候接触到了项目中的Rxjava,当时一点基础没有,学习了好长时间才渐渐学会使用,但也只是皮毛,停留在表面。后来换工作了发现Rxjava对找工作的帮助还是挺大的,因为是流行框架,都可以讲给面试官听,体现出自己追求技术的精神。但实际上,学会Rxjava对技术的提升还是很有帮助的,所以我会为大家讲解Rxjava的相关知识,以及Rxjava 1 到Rxjava 2的变化,帮助大家能够学会
关于文章内容:大家好,今天我打算整理并总结关于JAVA,Android的相关方面的技能点,主要分为:1.java基础板块; 2.java高级板块(点我访问); 3.andoroid基础板块; 4.android高级板块. 如果大家认真掌握好,那么你就相当于有了两年以上的开发经验,拿到12k以上的薪水是没什么问题的,废话少说,现在开始我们的第一部分java基础面试点部分.1.基础部分一.面向对象的思
  利用时间片轮转的方式,CPU给每个任务都服务一定的时间,然后把当前任务的状态保存下来,在加载下一个任务后,继续服务下一个任务,这个过程叫做上下文切换。即对于单核CPU,CPU在一个时刻只能运行一个线程,当在运行一个线程的过程中转去运行另外一个线程,这个叫做线程上下文切换(对于进程也是类似)。  线程上下文切换过程中会记录程序计数器、CPU寄存器的状态等数据。  虽然多线程可以使得任务执行的效率
接着上一篇文章<<rxJava和rxAndroid源码解析系列二之observer订阅>>继续说一下线程切换。在上一篇的 <源代码片段15>中可以看出订阅事件以及扔到线程池中进行执行,也就是要订阅的东西已经切换线程了。上篇文章讲到 <源代码片段19>中的代码片段source.subscribe(parent);也就是执行这句话,根
转载 2024-10-26 21:13:11
14阅读
简单介绍Rxjava这个名字,其中java代表java语言,而Rx是什么意思呢?Rx是Reactive Extensions的简写,翻译过来就是,响应式拓展。所以Rxjava的名字的含义就是,对java语言的拓展,让其可以实现对数据的响应式编程。原理Rx是Reactive Extensions的缩写的简写,可以使用可观察数据流对编程接口进行异步编程,它结合了观察者模式,迭代器模式和函数式的精华。R
0.前言由于RxJava内部源码实现有点复杂,既然用拆轮子的方式来分析源码比较难啃,不如换种方式,以造轮子的方式,将源码中与性能、兼容性、扩展性有关的代码剔除,只留下核心代码,加上我个人的理解,带大家揭秘RxJava的实现原理(本文不涉及框架的使用介绍)。1.观察者Subsribler在RxJava里面是一个抽象类,它实现了Observer接口。2.被观察者Observable(被观察者)拥有很多
转载 2023-08-31 18:09:36
74阅读
RxJava概念RxJava是一个在Java VM上使用可观测的序列来组成异步的、基于事件的程序库。 RxJava的异步实现,是通过一种扩展的观察者模式来实现的。这也是基于“响应式编程”的概念。在RxJava的观察者模式中,如果没有观察者,被观察者不会发出事件的。RxJava相对于AsyncTask 和Handler,优势在于随着程序逻辑变得愈加复杂,依旧可以保持简洁。RxJava名词解释map
为什么要使用 RxJava轻量级框架 < 1M基于观察者模式,统一了异步任务的回调接口,方便链式调用和操作符扩展通过 Scheduler / Worker 可以方便的进行线程切换在观察者和被观察者之间可以通过操作符完成时间和空间的重组 通过操作符可以对事件进行空间重组,使得观察者的逻辑简单而直接,不需要关心数据从何而来,从而使观察者的逻辑较为稳定 startWith 操作符可
       上一篇介绍了Rxjava中观察者模式的基本实现原理,本篇主要介绍Rxjava链式操作实现的基本原理,即一个事件发出后,经过多次逻辑操作,最后到完成订阅的过程。        上篇中有一个事件原即被观察者observable和一个观察者observer,并完成订阅。而实际业务逻辑中一个事件原往往需要其他业务
转载 2023-08-26 11:57:45
96阅读
首先对rxjave简单的一个认知描述:响应式编程,观察者设计模式,实现异步操作的库.这个描述并不是很详细但是足够精简,接下来基于描述来分析Rxjava源码中是如何体现了这些特点。(主要为面试自我总结方便记忆)代码1:Observable .create(new ObservableOnSubscribe<String>() { @Override
转载 2023-05-27 15:51:34
573阅读
RxJava 源码解读 一直以来在网上看到关于RxJava的使用博客都称赞RxJava使用起来非常简洁,即使业务逻辑非常复杂,它依然能够保持简洁。于是在个人项目也添加了RxJava和RxAndroid.秉着知其然知其所以然的态度,跟着调用方法一探其源码, 首选是调用方法。这个方法是获取手机里面的所有音乐文件信息,并且返回给回调者,并且这里的subscribe是运行在子线程中,回调则在主线程再更新
转载 2023-05-23 16:19:11
133阅读
RxJava是对响应式扩展( Reactive Extensions,称之为 ReactiveX )规范的Java 实现,该规范还有其他语言实现:RxJS、Rx.Net、RxScala、RxSwift等等(也即,ReactiveX 定义了规范,其他语言实现规范即可,所以我们这里学习RxJava的架构和设计思维,只需研究ReactiveX 即可)。RxJava是一个通过使用可观察序列来组合异步操作(
转载 2023-09-05 09:21:10
50阅读
        最近看到RxJava技术,好奇就网上找了些关于RxJava的博文,但绝大部分文章都讲了其使用,可我对最基本的东西——概念还是一脸懵逼。        这些文章看后,大概我知道两个重点,一是类似于观察者模式,二是任务执行与通知可以设置不同的线程。具体这个框架源码怎么做的就不知道了。看源码太累了,很多有名的
转载 2023-08-31 16:27:52
65阅读
  • 1
  • 2
  • 3
  • 4
  • 5