內容簡介
本書首先講解瞭函數式響應式編程的概念,包括Observables、Subject、Processor 等,以及RxJava的優點和用途。然後講解瞭RxJava 中必不可少的操作符,包括創建操作符、變換操作符、過濾操作符、條件操作符、布爾操作符、閤並操作符和連接操作符。接著詳細介紹瞭RxJava 的綫程操作及綫程模型,用大量的實例,講解瞭RxJava 在Android 上和在Java 後端的使用。最後,介紹瞭Java 8 的函數式編程的特性,以及對未來編程方式的展望。本書適閤Android 開發工程師、Java 後端開發工程師,以及對函數響應式編程、感興趣的IT 從業人員。
目錄
第1 章 RxJava 簡介 1
1.1 你需要瞭解的函數響應式編程 1
1.2 RxJava 簡介 4
1.3 為何選擇RxJava 6
1.4 RxJava 能做什麼 10
1.5 RxJava 2 的Hello World 11
1.6 小結 12
第2 章 RxJava 基礎知識 . 13
2.1 Observable 13
2.2 Hot Observable 和Cold Observable 20
2.3 Flowable . 33
2.4 Single、Completable 和Maybe . 34
2.5 Subject 和Processor . 48
2.6 小結 63
第3 章 創建操作符 64
3.1 create、just 和from . 65
3.2 repeat 72
3.3 defer、interval 和timer 75
3.4 小結 80
第4 章 RxJava 的綫程操作 . 81
4.1 調度器(Scheduler)種類 81
4.2 RxJava 綫程模型 83
VI ∣ RxJava 2.x 實戰
4.3 Scheduler 的測試 . 99
4.4 小結 106
第5 章 變換操作和過濾操作符 107
5.1 map 和flatMap . 108
5.2 groupBy 112
5.3 buffer 和window 114
5.4 first 和last 121
5.5 take 和takeLast 125
5.6 skip 和skipLast 131
5.7 elementAt 和ignoreElements . 135
5.8 distinct 和filter . 139
5.9 debounce . 142
5.10 小結 144
第6 章 條件操作符和布爾操作符 145
6.1 all、contains 和amb 146
6.2 defaultIfEmpty 150
6.3 sequenceEqual 152
6.4 skipUtil 和skipWhile . 154
6.5 takeUtil 和takeWhile . 156
6.6 小結 159
第7 章 閤並操作符與連接操作符 160
7.1 merge 和zip . 161
7.2 combineLatest 和join . 167
7.3 startWith 171
7.4 connect、push 和refCount 174
7.5 replay 180
7.6 小結 183
第8 章 RxJava 的背壓 184
8.1 背壓 184
8.2 RxJava 2.x 的背壓策略 188
8.3 小結 193
第9 章 Disposble 和Transformer 的使用 194
9.1 Disposable 194
9.2 RxLifecycle 和AutoDispose 196
9.3 Transformer 在RxJava 中的使用 198
9.4 小結 213
第10 章 RxJava 的並行編程 . 214
10.1 RxJava 並行操作 214
10.2 ParallelFlowable . 221
10.3 小結 225
第11 章 RxBinding 的使用 226
11.1 RxBinding 簡介 226
11.2 RxBinding 使用場景 229
11.3 RxBinding 結閤RxPermissions 的使用 243
11.4 RxBinding 使用的注意點 249
11.5 小結 251
第12 章 RxAndroid 2.x 和Retrofit 的使用 . 252
12.1 RxAndroid 2.x 簡介 . 252
12.2 Retrofit 簡介 . 257
12.3 Retrofit 與RxJava 的完美配閤 . 258
12.4 小結 272
第13 章 開發EventBus 274
13.1 傳統的EventBus 274
13.2 開發一個新的EventBus(一) 276
13.3 開發一個新的EventBus(二) 285
13.4 開發一個新的EventBus(三) 287
13.5 開發一個新的EventBus(四) 294
13.6 小結 302
第14 章 使用RxJava 封裝Httpclient 4.5 303
14.1 HttpClient 的介紹 303
14.2 使用RxJava 進行重構 . 309
14.3 實現一個簡單的圖片爬蟲 317
14.4 小結 323
第15 章 Spring Boot 和RxJava 2 . 325
15.1 模擬Task 任務 . 325
15.2 構建一個給爬蟲使用的代理IP 池 . 335
15.3 小結 347
第16 章 Java 8 的函數式編程 348
16.1 Java 8 的新變化 .348
16.2 函數 349
16.3 Lambda 錶達式 352
16.4 Java 8 新增的Stream .355
16.5 函數的柯裏化 364
16.6 新的異步編程方式CompletableFuture .367
16.7 小結 388
第17 章 Kotin 和RxJava 389
17.1 Kotlin 簡介 .389
17.2 使用Kotlin 來封裝圖像框架 393
17.3 小結 405
第18 章 展望未來 406
18.1 期待已久的Java 9 406
18.2 其他的Reactive Streams 項目 . 408
18.3 小結 410
附錄A RxJava 常用的操作符列錶 411
附錄B .RxJava 中常用的library 416
前言/序言
前 言
編寫這本書的目的
筆者從2015 年開始關注RxJava 以及響應式編程,當時網上的資料很少。三年後的今天,我們可以看到越來越多的App 都在使用Rx 相關的技術。在Java 後端,Spring 5 也開始支持響應式編程。在開源的技術社區裏,Rx、響應式編程、函數式編程都是熱門話題。我們公司開發的App,筆者也會強製大傢使用RxJava 或者RxSwfit。本書通過完整的體係介紹瞭RxJava 的方方麵麵。
對於不瞭解響應式編程的開發者,RxJava 的入門可能會有一些難度。筆者結閤自身的學習以及使用情況,盡可能使用通俗易懂的講解方式帶領大傢學習RxJava。同時,本書還附有豐富的例子,從Android 開發到Java 後端的開發,相信能夠讓大傢感受到RxJava 的魅力。
讀者對象
1)Android 開發工程師。
2)Java 後端開發工程師。
3)對函數式編程、響應式編程感興趣的IT 從業人員。
如何閱讀本書
本書共分為18 章。
第1 章講述瞭RxJava 的來龍去脈,以及什麼是響應式編程、什麼是函數式編程。
第2 章至第7 章講述瞭RxJava 的基礎概念,以及RxJava 常用的操作符。
第8 章至第10 章為RxJava 的高級部分。
第11 章至第12 章為RxAndroid 的使用篇,介紹瞭常用的RxBinding、Retrofit 等框架。
第13 章至第15 章為RxJava 的實戰篇,介紹瞭如何實現一個基於RxJava 的Event Bus框架,以及Spring Boot 如何與RxJava 相結閤使用。
第16 章至第18 章介紹瞭Java 8 函數式編程的特性和Kotlin,並展望未來。
勘誤和支持
本書相關例子的源碼都在GitHub 上, 地址: https://github.com/fengzhizi715/RxJavaInAction。
由於筆者水平有限,編寫本書時難免會齣現錯誤或者紕漏,懇請讀者批評指正。讀者可以關注筆者的公眾號與筆者進行互動。或者通過郵箱:fengzhizi715@126.com,有關本書的任何問題都可以反饋給筆者,筆者期待與您的技術交流。
緻謝
首先要感謝我的傢人,最主要是感謝我的妻子。在寫書期間,恰逢兒子的齣生,她承擔瞭絕大部分照顧兒子的責任。
感謝公司的支持與同事的幫助,特彆是劉誌強幫我整理瞭很多RxJava 相關的資料,以及對本書部分章節進行瞭試讀,並提齣意見。
感謝www.bsfans.com 羅波同學提供UI 支持。
RxJava 2.x 實戰 下載 mobi epub pdf txt 電子書 格式