您的位置:首页 > 编程语言 > Java开发

RxJava源代码剖析

2016-05-15 23:46 323 查看
转载请注明出处:何时夕的博客

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

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


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

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

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

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

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

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


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

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

废话不多说上图



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

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

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

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

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

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

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


最后,祝大家bug少,工资高。我之前也发过几个图片解析源码的博客,欢迎大家观看评论!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: