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少,工资高。我之前也发过几个图片解析源码的博客,欢迎大家观看评论!
很多人想学习RxJava,但是总不知道如何下手,所以我之前总结了一篇RxJava的用法。这次我举了一个例子,结合源码,深入剖析了一下,RxJava运行的机制。有爱者自取啦,如果觉得我画的图不错的话,可以留个言鼓励一下,多谢!
首先我很先来看看我剖析例子的
可以看见我以一列Integer作为事件源,然后在create()中的OnSubscribe中循环发送事件item。
然后我调用了map(),里面的逻辑是将Integer转换成String。
然后我调用了filter(),里面的逻辑是只输出含有“1”的String。
最后我输出了所有产生的String。
如果大家对于RxJava的基本 用法有什么不清楚的地方,可以去看我上一篇分享的关于RxJava入门的博客。
然后我们就要进行源码剖析了,不过我们先来看看图中需要注意到地方。
如图大家要记清楚这几个线代表的含义,这样才能看得懂后面图中的分析。
然后要总结一句就是:RxJava的一切操作符都是基于lift()函数,所以了解了lift()函数,可以说你就已经入门了RxJava
废话不多说上图
代码的解析文字都在图中,起点是左上角的红字"开始"。大家可以从这里一步步深入。
推荐的阅读方式:以粉红色的线为主干推进,绿色的分支为辅助。如果哪个源码不懂,就看黑色线所连接的代码解释。看到回调之后,即红色的线的时候,需要异常注意。最后的结束是在右下角。
注意事项: 1 代码的运行不是按照顺序来的,所以有些剖析的代码片段我没有写全,而是在调用的时候写全。
2 有些比较长的源码,我精简了只剩必须的逻辑,所以在读者自己进入源码的时候,可能会发现不一样
如果你把上面的解析仔仔细细的看了一遍,我相信你已经对RxJava已经有了比较深入的了解。
不过要玩玩全全了解的话你还需要多看几遍,并且自己也进去看看。
接下来是最后一餐:简略的示意图,相信看完上面的解析,看这个还是很简单的
最后,祝大家bug少,工资高。我之前也发过几个图片解析源码的博客,欢迎大家观看评论!
相关文章推荐
- 安卓开发之java基础笔记8常用API
- struts2的form等表单布局问题,去掉其自动生成的<table><tr><td>标签
- Eclipse快捷键大全
- 安卓开发之java基础笔记7内部类与设计模式
- Spring MVC:原理与使用
- [转]彻底理解java aio,bio.nio 同步 异步 阻塞 非阻塞 同步阻塞 同步非阻塞 异步阻塞 异步非阻塞
- java线程池详解一
- HDU 1250 Hat's Fibonacci (Java大数,类似Fib数,有个坑!!)
- 集合中关于iterator遍历顺序的理解
- 对this的理解又提升了一个阶段
- Java注解学习-入门
- java内存模型与线程
- eclipse查看.class文件
- Java并发-Fork/Join框架
- java多线程
- spring 另开线程时的注入问题
- eclipse调试多线程
- java中NIO总结
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- java 抽象类与接口的区别 整理