RxJava源代码剖析

转载请注明出处:何时夕的博客

很多人想学习RxJava,但是总不知道如何下手,所以我之前总结了一篇RxJava的用法。这次我举了一个例子,结合源码,深入剖析了一下,RxJava运行的机制。有爱者自取啦,如果觉得我画的图不错的话,可以留言鼓励一下,多谢!

首先我很先来看看我剖析例子的

可以看见我以一列Integer作为事件源,然后在create()中的OnSubscribe中循环发送事件item。

然后我调用了map(),里面的逻辑是将Integer转换成String。

然后我调用了filter(),里面的逻辑是只输出含有“1”的String。

最后我输出了所有产生的String。

如果大家对于RxJava的基本 用法有什么不清楚的地方,可以去看我上一篇分享的关于RxJava入门的博客。

然后我们就要进行源码剖析了,不过我们先来看看图中需要注意到地方。

如图大家要记清楚这几个线代表的含义,这样才能看得懂后面图中的分析。

然后要总结一句就是:RxJava的一切操作符都是基于lift()函数,所以了解了lift()函数,可以说你就已经入门了RxJava

废话不多说上图

代码的解析文字都在图中,起点是左上角的红字"开始"。大家可以从这里一步步深入。

推荐的阅读方式:以粉红色的线为主干推进,绿色的分支为辅助。如果哪个源码不懂,就看黑色线所连接的代码解释。看到回调之后,即红色的线的时候,需要异常注意。最后的结束是在右下角。

注意事项: 1 代码的运行不是按照顺序来的,所以有些剖析的代码片段我没有写全,而是在调用的时候写全。

                  2 有些比较长的源码,我精简了只剩必须的逻辑,所以在读者自己进入源码的时候,可能会发现不一样



如果你把上面的解析仔仔细细的看了一遍,我相信你已经对RxJava已经有了比较深入的了解。

不过要玩玩全全了解的话你还需要多看几遍,并且自己也进去看看。

接下来是最后一餐:简略的示意图,相信看完上面的解析,看这个还是很简单的

最后,祝大家bug少,工资高。我之前也发过几个图片解析源码的博客,欢迎大家观看评论!

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值