前言
Rxjava
由于其基于事件流的鏈式調用、邏輯簡潔 & 使用簡單的特點,深受各大 Android
開發者的歡迎。
如果還不了解RxJava,請看文章:Android:這是一篇 清晰 & 易懂的Rxjava 入門教程
- 今天,carson今天將采用 圖文的方式 解析
Rxjava
的基本原理,希望大家會喜歡。
Carson帶你學RxJava系列文章,包括 原理、操作符、應用場景、背壓等等,請關注看文章:Android:這是一份全面 & 詳細的RxJava學習指南
目錄
1. 定義
-
RxJava
在GitHub
的介紹:
RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM
// 翻譯:RxJava 是一個在 Java VM 上使用可觀測的序列來組成異步的、基于事件的程序的庫
- 總結:
RxJava
是一個 基于事件流、實現異步操作的庫
2. 作用
實現異步操作
類似于
Android
中的AsyncTask
、Handler
作用
3. 特點
由于 RxJava
的使用方式是:基于事件流的鏈式調用,所以使得 RxJava
:
- 邏輯簡潔
- 實現優雅
- 使用簡單
更重要的是,隨著程序邏輯的復雜性提高,它依然能夠保持簡潔 & 優雅
4. 生活例子引入
我用一個生活例子引入 & 講解 Rxjava
原理: 顧客到飯店吃飯
5. 原理介紹
5.1 概述
Rxjava
原理 基于 一種擴展的觀察者模式,整個模式中有4個角色:
角色 | 作用 | 類比 |
---|---|---|
被觀察者(Observable) | 產生事件 | 顧客 |
觀察者(Observer) | 接收事件,并給出響應動作 | 廚房 |
訂閱(Subscribe) | 連接 被觀察者 & 觀察者 | 服務員 |
事件(Event) | 被觀察者 & 觀察者 溝通的載體 | 菜式 |
5.2 具體描述
請結合上述 顧客到飯店吃飯 的生活例子理解:
5.3 總結
RxJava
原理可總結為:
- 被觀察者
(Observable)
通過 訂閱(Subscribe)
按順序發送事件 給觀察者(Observer)
- 觀察者
(Observer)
按順序接收事件 & 作出對應的響應動作。具體如下圖:
至此,關于RxJava
原理講解完畢。
6. 總結
- 本文主要對
Rxjava
的原理進行圖文講解 - Carson帶你學RxJava系列文章:
入門
Carson帶你學Android:這是一篇清晰易懂的Rxjava入門教程
Carson帶你學Android:面向初學者的RxJava使用指南
Carson帶你學Android:RxJava2.0到底更新了什么?
原理
Carson帶你學Android:圖文解析RxJava原理
Carson帶你學Android:手把手帶你源碼分析RxJava
使用教程:操作符
Carson帶你學Android:RxJava操作符教程
Carson帶你學Android:RxJava創建操作符
Carson帶你學Android:RxJava功能性操作符
Carson帶你學Android:RxJava過濾操作符
Carson帶你學Android:RxJava組合/合并操作符
Carson帶你學Android:RxJava變換操作符
Carson帶你學Android:RxJava條件/布爾操作符
實戰
Carson帶你學Android:什么時候應該使用Rxjava?(開發場景匯總)
Carson帶你學Android:RxJava線程控制(含實例講解)
Carson帶你學Android:圖文詳解RxJava背壓策略
Carson帶你學Android:RxJava、Retrofit聯合使用匯總(含實例教程)
Carson帶你學Android:優雅實現網絡請求嵌套回調
Carson帶你學Android:網絡請求輪詢(有條件)
Carson帶你學Android:網絡請求輪詢(無條件)
Carson帶你學Android:網絡請求出錯重連(結合Retrofit)
Carson帶你學Android:合并數據源
Carson帶你學Android:聯想搜索優化
Carson帶你學Android:功能防抖
Carson帶你學Android:從磁盤/內存緩存中獲取緩存數據
Carson帶你學Android:聯合判斷
歡迎關注Carson_Ho的簡書
不定期分享關于安卓開發的干貨,追求短、平、快,但卻不缺深度。