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