本文大部分内容转载自鸿洋公众号【hongyangAndroid】,且已获许可。
RxJava 1.x
对于RxJava 1.x 的学习资料,不用说当然是推荐【扔物线】的这篇超有名的神级文章:给 Android 开发者的 RxJava 详解
RxJava 2.x
以下转载自鸿洋大神公众号文章
贴几个必要的地址,以及wiki:
https://github.com/ReactiveX/RxJava
https://github.com/ReactiveX/RxAndroid
https://github.com/JakeWharton/RxBinding
https://github.com/JakeWharton/RxRelay
https://github.com/ReactiveX/RxJava/wiki/Additional-Reading
可以在看完下面的入门资料后,细细的看下官方的相关文章。
0基础到上手
这个非常推荐简书作者Season_zlc的“水管”系列,相信很多人都看过,看完你就知道为什么叫“水管”系列了~~
给初学者的RxJava2.0教程(一)
http://www.jianshu.com/p/464fa025229e给初学者的RxJava2.0教程(二)
http://www.jianshu.com/p/8818b98c44e2给初学者的RxJava2.0教程(三)
http://www.jianshu.com/p/128e662906af给初学者的RxJava2.0教程(四)
http://www.jianshu.com/p/bb58571cdb64给初学者的RxJava2.0教程(五)
http://www.jianshu.com/p/0f2d6c2387c9给初学者的RxJava2.0教程(六)
http://www.jianshu.com/p/e4c6d7989356给初学者的RxJava2.0教程(七)
http://www.jianshu.com/p/9b1304435564给初学者的RxJava2.0教程(八)
http://www.jianshu.com/p/a75ecf461e02给初学者的RxJava2.0教程(九)
http://www.jianshu.com/p/36e0f7f43a51
接下来还有简书作者南尘2251的RxJava2系列。
这可能是最好的RxJava 2.x 入门教程(一)
http://www.jianshu.com/p/a93c79e9f689这可能是最好的RxJava 2.x 入门教程(二)
http://www.jianshu.com/p/b39afa92807e这可能是最好的RxJava 2.x 入门教程(三)
http://www.jianshu.com/p/e9c79eacc8e3这可能是最好的RxJava 2.x 入门教程(四)
http://www.jianshu.com/p/c08bfc58f4b6这可能是最好的RxJava 2.x 入门教程(五)
http://www.jianshu.com/p/81fac37430dd这可能是最好的 RxJava 2.x 入门教程(完结版)
http://www.jianshu.com/p/0cd258eecf60GitHub 代码同步更新:
https://github.com/nanchen2251/RxJava2Examples
基本上看完就已经对RxJava2有一定的了解了,接下来就是异常强大的操作符的学习了~
操作符与实战
优快云作者余志强的RxJava2操作符系列:
RxJava create操作符的用法和源码分析
http://blog.youkuaiyun.com/johnny901114/article/details/51524470RxJava map操作符用法详解
http://blog.youkuaiyun.com/johnny901114/article/details/51531348RxJava flatMap操作符用法详解
http://blog.youkuaiyun.com/johnny901114/article/details/51532776RxJava concatMap操作符用法详解
http://blog.youkuaiyun.com/johnny901114/article/details/51533282RxJava onErrorResumeNext操作符实现app与服务器间token机制
http://blog.youkuaiyun.com/johnny901114/article/details/51533586RxJava retryWhen操作符实现错误重试机制
http://blog.youkuaiyun.com/johnny901114/article/details/51539708RxJava 使用debounce操作符优化app搜索功能
http://blog.youkuaiyun.com/johnny901114/article/details/51555203RxJava concat操作处理多数据源
http://blog.youkuaiyun.com/johnny901114/article/details/51568562RxJava zip操作符在Android中的实际使用场景
http://blog.youkuaiyun.com/johnny901114/article/details/51614927RxJava switchIfEmpty操作符实现Android检查本地缓存逻辑判断
http://blog.youkuaiyun.com/johnny901114/article/details/52585912RxJava defer操作符实现代码支持链式调用
http://blog.youkuaiyun.com/johnny901114/article/details/52597643combineLatest操作符的高级使用
http://blog.youkuaiyun.com/johnny901114/article/details/61191723
还有个非常给力的开源项目,“Learn RxJava By Samples”:
https://github.com/amitshekhariitbhu/RxJava2-Android-Samples
包含非常多的Sample,你也可以在它的README上获得更多信息~
该篇是对该项目的记录,方便速查:
- RxJava 知识梳理(2) - RxJava2 操作符实践
http://www.jianshu.com/p/2ddd9bb8b1d7
该作者最近也在写一些实战类的文章:
RxJava2 实战知识梳理(1) - 后台执行耗时操作,实时通知 UI 更新
http://www.jianshu.com/p/c935d0860186RxJava2 实战知识梳理(2) - 计算一段时间内数据的平均值
http://www.jianshu.com/p/5dd01b14c02aRxJava2 实战知识梳理(3) - 优化搜索联想功能
http://www.jianshu.com/p/7995497baff5RxJava2 实战知识梳理(4) - 结合 Retrofit 请求新闻资讯
http://www.jianshu.com/p/74f46ae1fabbRxJava2 实战知识梳理(5) - 简单及进阶的轮询操作
http://www.jianshu.com/p/fa1828d70192RxJava2 实战知识梳理(6) - 基于错误类型的重试请求
http://www.jianshu.com/p/d135f19e045cRxJava2 实战知识梳理(7) - 基于 combineLatest 实现的输入表单验证
http://www.jianshu.com/p/25682d620320RxJava2 实战知识梳理(8) - 使用 publish + merge 优化先加载缓存,再读取网络数据的请求过程
http://www.jianshu.com/p/dfc11118b70b
开源项目
优秀的项目很多 ,推荐2个~~太多了也看不完~
就看天气
就看天气——是一款遵循 Material Design 风格的只看天气的APP。
- 卡片展现(当前天气情况,未来几小时天气情况,生活建议,一周七天概况)
- 缓存数据,减少网络请求,保证离线查看
- 内置两套图标(设置里更改)
https://github.com/xcc3641/SeeWeather
极客日报
极客日报,一款纯粹的阅读App,基于Material Design + MVP + RxJava2 + Retrofit + Dagger2 + Realm + Glide
出于学习的目的做了这款Material Design风格的简洁的阅读应用,基本涵盖了当前Android端开发最常用的主流框架,阅读内容主要面向程序员/极客,目前包括:
知乎日报、微信精选、干货集中营、稀土掘金、V2EX
https://github.com/codeestX/GeekNews
源码解析
推荐下张旭童的博客~相信关注本公众号的很多都看过旭童的文章~
RxJava2 源码解析(一)
http://blog.youkuaiyun.com/zxt0601/article/details/61614799RxJava2 源码解析(二)
http://blog.youkuaiyun.com/zxt0601/article/details/61637439
最后,我一定能学好RxJava的~!