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’)

你可能感兴趣的:(RxJava)