OkHttp+Retrofit、RxJava偏友、React Native簡(jiǎn)單認(rèn)知

本文出自 “阿敏其人” 簡(jiǎn)書博客对供,轉(zhuǎn)載或引用請(qǐng)注明出處。

2015-2016年鹅髓,出現(xiàn)在一名Android開發(fā)者眼前的窿冯,下面這幾個(gè)詞肯定屬于高頻詞匯醋粟。

  • OkHttp: OkHttp是Square的一個(gè)開源網(wǎng)絡(luò)庫(kù)/http客戶端
  • Retrofit: Retrofit 是Square的一個(gè)封裝了OkHttp的便捷安全的網(wǎng)絡(luò)框架重归。
  • RxJava: 主要利用觀察者模式的隨著程序邏輯變得越來(lái)越復(fù)雜鼻吮,它依然能夠保持簡(jiǎn)潔專注于異步編程與控制可觀察數(shù)據(jù)(或者事件)流的API。
  • React Native: React Native是 Facebook 推出的開源項(xiàng)目违柏,基于 JavaScript 和 React 用于開發(fā)Android和ios的程序漱竖。

我們需要對(duì)他們有一個(gè)大概的認(rèn)知:

一畜伐、OkHttp 和 Retrofit

一.1玛界、簡(jiǎn)介

Okhttp簡(jiǎn)介

一句話總結(jié):OkHttp是Square的一個(gè)開源網(wǎng)絡(luò)庫(kù)/http客戶端

OKHttp是Square的一個(gè)開源網(wǎng)絡(luò)庫(kù)(也可以說(shuō)是一個(gè)http 客戶端)慎框,支持get請(qǐng)求和post請(qǐng)求等,支持基于Http的文件上傳和下載笨枯,支持加載圖片,支持下載文件透明的GZIP壓縮窥突,支持響應(yīng)緩存避免重復(fù)的網(wǎng)絡(luò)請(qǐng)求,支持使用連接池來(lái)降低響應(yīng)延遲問(wèn)題梧税。
OkHttp官網(wǎng)
OkHttp GitHub

.
.

Retrofit 簡(jiǎn)介

一句話總結(jié):Retrofit 是Square的一個(gè)封裝了OkHttp的便捷安全的網(wǎng)絡(luò)框架第队。

Retrofit 是 Square 公司開源項(xiàng)目刨秆,Retrofit 2.0 開始內(nèi)置 OkHttp。

Retrofit 官網(wǎng)
Retrofit GitHub

我們的應(yīng)用程序通過(guò) Retrofit 請(qǐng)求網(wǎng)絡(luò)尸执,實(shí)際上是使用 Retrofit 接口層封裝請(qǐng)求參數(shù)如失、Header送粱、Url 等信息,之后由 OkHttp 完成后續(xù)的請(qǐng)求操作脆丁,在服務(wù)端返回?cái)?shù)據(jù)之后槽卫,OkHttp 將原始的結(jié)果交給 Retrofit胰蝠,后者根據(jù)用戶的需求對(duì)結(jié)果進(jìn)行解析的過(guò)程姊氓。

.
.

一.2翔横、 retrofit和okhttp有什么區(qū)別?

沒(méi)有區(qū)別效览,不是同一類別事物。

明確兩點(diǎn):
第一點(diǎn):Okhttp與HttpClient, HttpUrlConnection一樣哆键,是對(duì)底層http協(xié)議做了封裝的一套客戶端籍嘹。弯院。
第二點(diǎn):像Volley听绳,Android-Async-Http和Retrofit都是對(duì) 協(xié)議客戶端 做了具體的請(qǐng)求椅挣,線程切換以及數(shù)據(jù)轉(zhuǎn)換網(wǎng)絡(luò)庫(kù)。但是Retrofit專門針對(duì)的是Okhttp峡竣。

.
.

二澎胡、RxJava

一句話總結(jié)(官方版本):在 Java VM 上使用可觀測(cè)的序列來(lái)組成異步的娩鹉、基于事件的程序的庫(kù)
一句話總結(jié)(大白話版本):主要利用觀察者模式的隨著程序邏輯變得越來(lái)越復(fù)雜弯予,它依然能夠保持簡(jiǎn)潔的 異步 庫(kù)个曙。

RxJava是 ReactiveX 在JVM上的一個(gè)實(shí)現(xiàn),ReactiveX使用Observable序列組合異步和基于事件的程序呼寸。更多關(guān)于ReactiveX的資料猴贰,可以查看 ReactiveX 介紹 頁(yè)面米绕。
Flipboard 的 Android 項(xiàng)目也在使用 RxJava

ReactiveX是Reactive Extensions的縮寫,一般簡(jiǎn)寫為Rx迈套,最初是LINQ的一個(gè)擴(kuò)展桑李,由微軟的架構(gòu)師Erik Meijer領(lǐng)導(dǎo)的團(tuán)隊(duì)開發(fā)贵白,在2012年11月開源戒洼,Rx是一個(gè)編程模型圈浇,目標(biāo)是提供一致的編程接口磷蜀,幫助開發(fā)者更方便的處理異步數(shù)據(jù)流褐隆,Rx庫(kù)支持.NET污它、JavaScript和C++,Rx近幾年越來(lái)越流行了庶弃,現(xiàn)在已經(jīng)支持幾乎全部的流行編程語(yǔ)言了衫贬,Rx的大部分語(yǔ)言庫(kù)由ReactiveX這個(gè)組織負(fù)責(zé)維護(hù),比較流行的有RxJava/RxJS/Rx.NET歇攻,社區(qū)網(wǎng)站是 reactivex.io固惯。

RxJava最核心的兩個(gè)東西是Observables(被觀察者,事件源)和Subscribers(觀察者)缴守。Observables發(fā)出一系列事件葬毫,Subscribers處理這些事件。這里的事件可以是任何你感興趣的東西(觸摸事件屡穗,web接口調(diào)用返回的數(shù)據(jù)贴捡。)一個(gè)Observable可以發(fā)出零個(gè)或者多個(gè)事件,知道結(jié)束或者出錯(cuò)村砂。每發(fā)出一個(gè)事件源祈,就會(huì)調(diào)用它的Subscriber的onNext方法,最后調(diào)用Subscriber.onNext()或者Subscriber.onError()結(jié)束锋拖。
Rxjava的看起來(lái)很想設(shè)計(jì)模式中的觀察者模式,但是有一點(diǎn)明顯不同,那就是如果一個(gè)Observerble沒(méi)有任何的的Subscriber,那么這個(gè)Observable是不會(huì)發(fā)出任何事件的颂跨。

Android 創(chuàng)造的AsyncTask和Handler尾序,其實(shí)都是為了讓異步代碼更加簡(jiǎn)潔弃揽。RxJava 的優(yōu)勢(shì)也是簡(jiǎn)潔痕慢,但它的簡(jiǎn)潔的與眾不同之處在于娜庇,隨著程序邏輯變得越來(lái)越復(fù)雜藕溅,它依然能夠保持簡(jiǎn)潔。

RxJava學(xué)習(xí)鏈接
.
.

三、React Native

一句話總結(jié):React Native是 Facebook 推出的開源項(xiàng)目,基于 JavaScript 和 React 用于開發(fā)Android和ios的程序。

Facebook 在 React.js Conf 2015 大會(huì)上推出了 React Native。React Native 的語(yǔ)言是基于 JavaScript扼鞋,這必然會(huì)使得代碼可以從服務(wù)器端動(dòng)態(tài)更新成為可能。當(dāng)然,代碼的安全性將更一步受到挑戰(zhàn)。

React Native 結(jié)合了 Web 應(yīng)用和 Native 應(yīng)用的優(yōu)勢(shì)谣殊,可以使用 JavaScript 來(lái)開發(fā) iOS 和 Android 原生應(yīng)用蛇捌。在 JavaScript 中用 React 抽象操作系統(tǒng)原生的 UI 組件,代替 DOM 元素來(lái)渲染等。
React Native 使你能夠使用基于 JavaScript 和 React 一致的開發(fā)體驗(yàn)在本地平臺(tái)上構(gòu)建世界一流的應(yīng)用程序體驗(yàn)。React Native 把重點(diǎn)放在所有開發(fā)人員關(guān)心的平臺(tái)的開發(fā)效率上——開發(fā)者只需學(xué)習(xí)一種語(yǔ)言就能輕易為任何平臺(tái)高效地編寫代碼维哈。Facebook 在多個(gè)應(yīng)用程序產(chǎn)品中使用了 React Native飘庄,并將繼續(xù)為 React Native 投資碾盐。

React Native官網(wǎng)

本篇完。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末励背,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖肋杖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡胧后,警方通過(guò)查閱死者的電腦和手機(jī)瘤旨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門修肠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吃靠,“玉大人裂逐,你說(shuō)我怎么就攤上這事庭敦〖跏茫” “怎么了正什?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)荣暮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)护赊,這世上最難降的妖魔是什么判耕? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任草丧,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己扁藕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布疚脐。 她就那樣靜靜地躺著亿柑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪棍弄。 梳的紋絲不亂的頭發(fā)上望薄,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音呼畸,去河邊找鬼痕支。 笑死,一個(gè)胖子當(dāng)著我的面吹牛役耕,可吹牛的內(nèi)容都是我干的采转。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瞬痘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼故慈!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起框全,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤察绷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后津辩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拆撼,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年喘沿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闸度。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚜印,死狀恐怖莺禁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情窄赋,我是刑警寧澤哟冬,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布楼熄,位于F島的核電站,受9級(jí)特大地震影響浩峡,放射性物質(zhì)發(fā)生泄漏可岂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一翰灾、第九天 我趴在偏房一處隱蔽的房頂上張望缕粹。 院中可真熱鬧,春花似錦预侯、人聲如沸致开。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至虹蒋,卻和暖如春糜芳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背魄衅。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工峭竣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晃虫。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓皆撩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親哲银。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扛吞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,085評(píng)論 25 707
  • 附上原文作者連接:作者:金誠(chéng) 一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網(wǎng)絡(luò)層荆责、UI層滥比、通信層或其他...
    這個(gè)美嘉不姓陳閱讀 2,260評(píng)論 1 35
  • 框架:提供一定能力的小段程序 http://www.cnblogs.com/jincheng-yangchaofa...
    姑娘請(qǐng)別為難小僧閱讀 7,224評(píng)論 0 132
  • 一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網(wǎng)絡(luò)層做院、UI層盲泛、通信層或其他單一功能的框架 混合開發(fā)框架:...
    偉子男閱讀 5,243評(píng)論 0 161
  • 磨心磨肝的病理結(jié)果出來(lái)了,等了一個(gè)星期键耕!一聲尖叫:沒(méi)事啦沒(méi)事啦寺滚! 所有的最壞打算都再一一歸位原處,繼續(xù)波瀾不驚的生...
    拉旺閱讀 228評(píng)論 0 0