天天看點

RxJava簡介及在androidstudio中引入RxAndroid

RX的簡介

  • RX = Observables + LINQ +Schedulers
    • LINQ 語言內建查詢 Language Integrated Query
    • Schedulers 定時任務
  • RX是一種程式設計模型,目的是提供統一的程式設計接口,友善開發者處理儀表資料流。
  • 目前為止RX已經支援幾乎所有的主流程式設計語言。 比較流行的有
    • RxJava
    • RxJS
    • Rx.NET

RX的優點

  • 函數式的程式設計風格:對可觀察資料流使用無副作用的輸入輸出函數,避免程式裡錯綜複雜的狀态
  • 簡化代碼: 可以通過操作符來簡化代碼 ,常用的操作符:
    • 過濾 filter
    • 選擇 select
    • 變換 transform
    • 結合 combine
    • 組合 compose
  • 異步錯誤處理機制:傳統的try/catch沒辦法一部處理計算,RX提供了合适的錯誤處理機制
  • 輕松使用并發:RX的Observables和Schedlers讓開發者徹底擺脫底層的線程同步和各種并發問題
  • 可以把Observable當作Iterable的推送方式的等價物, 使用Iterable,消費者從生産者那裡拉取資料,縣城阻塞直至資料準備好。使用Observable,在資料準備好時,生産者将資料推送給消費者,資料可以同步或者異步到達。

RXJava的核心

  • 觀察者
  • 被觀察者
  • 事件 event
  • 訂閱 subscriber
    • Observable 和Observer通過subscribe()方法來實作訂閱關系,進而Observable可以在需要的時候發出事件來通知Observer。
    • Observable和Subscriber可以做任何事情
      • Observable可以是一個資料庫查詢,Subscriber用來顯示查詢結果;
      • Observable可以是螢幕上的點選事件,Subscriber用來響應點選事件;
      • Observable可以是一個網絡請求,Subscriber用來顯示請求結果。
    • Observable和Subscriber是獨立于中間的變換過程的。
      • 在Observable和Subscriber中間可以增減任何數量的map。整個系統是高度可組合的,操作資料是一個很簡單的過程。

RXjava在android中的使用步驟

  • 1.在app目錄下的build.gradle中添加

    compile ‘io.reactivex:rxjava:1.1.5’

    compile ‘io.reactivex:rxandroid:1.2.0’

  • 2.在app目錄下的build.gradle android中添加

    compileOptions {

    sourceCompatibility JavaVersion.VERSION_1_8

    targetCompatibility JavaVersion.VERSION_1_8

    }

  • 3.在app目錄下的build.gradle中添加

    apply plugin: ‘me.tatarka.retrolambda’

  • 4.在工程的build.gradle中添加

    classpath ‘me.tatarka:gradle-retrolambda:3.2.5’

在androidstudio中使用aar檔案

  • 1.在app目錄下的build.gradle中添加

    repositories {

    flatDir {

    dirs ‘libs’

    }

    }

  • 2.在在app目錄下的build.gradle  dependencies中添加

    compile(name: ‘rxandroid-1.2.0’, ext: ‘aar’)

繼續閱讀