Retrofit2
一個用于 Android 和 Java 平臺的類型安全的網(wǎng)絡(luò)請求框架。Retrofit 通過將 API 抽象成 Java 接口而讓我們連接到 REST web 服務(wù)變得很輕松。
OKhttp3
一款高效的HTTP客戶端,支持連接同一地址的鏈接共享同一個socket,通過連接池來減小響應(yīng)延遲,還有透明的GZIP壓縮,請求緩存等優(yōu)勢
RxJava2
- ReactiveX 是一個專注于異步編程與控制可觀察數(shù)據(jù)(或者事件)流的API。它組合了觀察者模式,迭代器模式和函數(shù)式編程的優(yōu)秀思想。實時數(shù)據(jù)處理是一件普通的現(xiàn)象,有一個高效、干凈和可擴展的方式來處理這些情景是重要的。
- 使用 Observables 和 Operators 來熟練操作它們。ReactiveX 提供一個可組合又靈活的 API 來創(chuàng)建和處理數(shù)據(jù)流,同時簡化了異步編程帶來的一些擔(dān)憂。如:線程創(chuàng)建和并發(fā)問題。
- 簡單點來說:就是一個觀察者通過訂閱被觀察者,依據(jù)被觀察者的一些變化做出相應(yīng)的動作,觀察者可以改變被觀察者的生活狀態(tài)。
簡單介紹Retrofit、OKHttp和RxJava之間的關(guān)系:
Retrofit:Retrofit是Square公司開發(fā)的一款針對Android 網(wǎng)絡(luò)請求的框架(底層默認(rèn)是基于OkHttp 實現(xiàn))。
OkHttp:也是Square公司的一款開源的網(wǎng)絡(luò)請求庫。
RxJava :”a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一個在 Java VM 上使用可觀測的序列來組成異步的、基于事件的程序的庫)。RxJava使異步操作變得非常簡單。
各自職責(zé):
- Retrofit 負(fù)責(zé) 請求的數(shù)據(jù) 和 請求的結(jié)果,使用 接口的方式 呈現(xiàn)
- OkHttp 負(fù)責(zé)請求的過程
- RxJava 負(fù)責(zé)異步,各種線程之間的切換。