程序员Rx系列

OkHttp+Retrofit、RxJava、React Nat

2016-06-22  本文已影响2060人  阿敏其人

本文出自 “阿敏其人” 简书博客,转载或引用请注明出处。

2015-2016年,出现在一名Android开发者眼前的,下面这几个词肯定属于高频词汇。

我们需要对他们有一个大概的认知:

一、OkHttp 和 Retrofit

一.1、简介

Okhttp简介

一句话总结:OkHttp是Square的一个开源网络库/http客户端

OKHttp是Square的一个开源网络库(也可以说是一个http 客户端),支持get请求和post请求等,支持基于Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP压缩,支持响应缓存避免重复的网络请求,支持使用连接池来降低响应延迟问题。
OkHttp官网
OkHttp GitHub

.
.

Retrofit 简介

一句话总结:Retrofit 是Square的一个封装了OkHttp的便捷安全的网络框架。

Retrofit 是 Square 公司开源项目,Retrofit 2.0 开始内置 OkHttp。

Retrofit 官网
Retrofit GitHub

我们的应用程序通过 Retrofit 请求网络,实际上是使用 Retrofit 接口层封装请求参数、Header、Url 等信息,之后由 OkHttp 完成后续的请求操作,在服务端返回数据之后,OkHttp 将原始的结果交给 Retrofit,后者根据用户的需求对结果进行解析的过程。

.
.

一.2、 retrofit和okhttp有什么区别?

没有区别,不是同一类别事物。

明确两点:
第一点:Okhttp与HttpClient, HttpUrlConnection一样,是对底层http协议做了封装的一套客户端。。
第二点:像Volley,Android-Async-Http和Retrofit都是对 协议客户端 做了具体的请求,线程切换以及数据转换网络库。但是Retrofit专门针对的是Okhttp。

.
.

二、RxJava

一句话总结(官方版本):在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库
一句话总结(大白话版本):主要利用观察者模式的随着程序逻辑变得越来越复杂,它依然能够保持简洁的 异步 库。

RxJava是 ReactiveX 在JVM上的一个实现,ReactiveX使用Observable序列组合异步和基于事件的程序。更多关于ReactiveX的资料,可以查看 ReactiveX 介绍 页面。
Flipboard 的 Android 项目也在使用 RxJava

ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScript和C++,Rx近几年越来越流行了,现在已经支持几乎全部的流行编程语言了,Rx的大部分语言库由ReactiveX这个组织负责维护,比较流行的有RxJava/RxJS/Rx.NET,社区网站是 reactivex.io

RxJava最核心的两个东西是Observables(被观察者,事件源)和Subscribers(观察者)。Observables发出一系列事件,Subscribers处理这些事件。这里的事件可以是任何你感兴趣的东西(触摸事件,web接口调用返回的数据。)一个Observable可以发出零个或者多个事件,知道结束或者出错。每发出一个事件,就会调用它的Subscriber的onNext方法,最后调用Subscriber.onNext()或者Subscriber.onError()结束。
Rxjava的看起来很想设计模式中的观察者模式,但是有一点明显不同,那就是如果一个Observerble没有任何的的Subscriber,那么这个Observable是不会发出任何事件的。

Android 创造的AsyncTask和Handler,其实都是为了让异步代码更加简洁。RxJava 的优势也是简洁,但它的简洁的与众不同之处在于,随着程序逻辑变得越来越复杂,它依然能够保持简洁。

RxJava学习链接
.
.

三、React Native

一句话总结:React Native是 Facebook 推出的开源项目,基于 JavaScript 和 React 用于开发Android和ios的程序。

Facebook 在 React.js Conf 2015 大会上推出了 React Native。React Native 的语言是基于 JavaScript,这必然会使得代码可以从服务器端动态更新成为可能。当然,代码的安全性将更一步受到挑战。

React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。
React Native 使你能够使用基于 JavaScript 和 React 一致的开发体验在本地平台上构建世界一流的应用程序体验。React Native 把重点放在所有开发人员关心的平台的开发效率上——开发者只需学习一种语言就能轻易为任何平台高效地编写代码。Facebook 在多个应用程序产品中使用了 React Native,并将继续为 React Native 投资。

React Native官网

本篇完。

上一篇下一篇

猜你喜欢

热点阅读