上一篇叽奥,我們整理了Android圖像加載方面的幾個(gè)開源組件特性比較,本次分享網(wǎng)絡(luò)請(qǐng)求框架方面的常用開源組件痛侍,可直接看圖朝氓。
文字版:
1、Volley
1.1 Google發(fā)布的一個(gè)網(wǎng)絡(luò)請(qǐng)求框架主届,專門為移動(dòng)設(shè)備定制赵哲,小而美
1.2 技術(shù)特性
1.2.1 將具體的請(qǐng)求做了封裝,默認(rèn)使用HttpUrlConnection
1.2.2 默認(rèn)支持ImageLoader君丁,支持簡(jiǎn)單的圖片加載功能
1.2.3 支持取消正在進(jìn)行的網(wǎng)絡(luò)事務(wù)請(qǐng)求
1.2.3.1 取消某個(gè)請(qǐng)求
1.2.3.2 取消請(qǐng)求隊(duì)列
1.2.4 默認(rèn)支持緩存管理
1.2.5 支持網(wǎng)絡(luò)請(qǐng)求排序和優(yōu)先級(jí)管理
1.2.6 使用場(chǎng)景:不適合大數(shù)據(jù)量的網(wǎng)絡(luò)操作(比如下載視頻枫夺、音頻)
1.2.7 使用場(chǎng)景:適合輕量級(jí)網(wǎng)絡(luò)交互,網(wǎng)絡(luò)請(qǐng)求頻繁绘闷,傳輸數(shù)據(jù)量小
1.3 易用性:使用方便
1.4 技術(shù)支持
1.4.1 資料較多
1.4.2 已經(jīng)停止維護(hù)
2橡庞、Retrofit
2.1 Square發(fā)布的基于OkHttp的一套R(shí)EST風(fēng)格的網(wǎng)絡(luò)請(qǐng)求框架的封裝庫(kù)
2.2 技術(shù)特性
2.2.1 高度解耦
2.2.1.1 通過注解來配置請(qǐng)求參數(shù)
2.2.1.1.1 方法注解
2.2.1.1.2 參數(shù)注解
2.2.1.2 通過工廠模式來生成請(qǐng)求適配器CallAdapter
2.2.1.3 可以使不同的CallAdapter
2.2.1.3.1 RxJava
2.2.1.3.2 Guava
2.2.1.3.3 Java8
2.2.1.4 可以使用不同的Converter
2.2.1.4.1 json
2.2.1.4.2 xml
2.2.1.4.3 protobuff
2.2.2 支持取消正在進(jìn)行的網(wǎng)絡(luò)事務(wù)請(qǐng)求(Call)
2.2.3 默認(rèn)使用Okhttp作為網(wǎng)絡(luò)請(qǐng)求客戶端
2.2.4 支持配置攔截器,可實(shí)現(xiàn)日志擴(kuò)展印蔗、加密解密等功能(默認(rèn)Error)
2.2.5 不自帶緩存扒最,可以使用Okhttp的緩存或者通過攔截器實(shí)現(xiàn)緩存管理
2.2.6 不支持網(wǎng)絡(luò)請(qǐng)求的優(yōu)先級(jí)管理功能
2.2.7 使用場(chǎng)景:適合大數(shù)據(jù)量的網(wǎng)絡(luò)操作,例如音視頻的上傳下載
2.3 易用性:使用方便华嘹,門檻高于Volley
2.4 技術(shù)支持
2.4.1 使用廣泛吧趣、資料豐富
2.4.2 作者仍在維護(hù)
3、拓展:關(guān)于REST
REST是使用較為廣泛的分布式節(jié)點(diǎn)間同步通信的一種實(shí)現(xiàn)/軟件架構(gòu)風(fēng)格耙厚,從語(yǔ)義層面將響應(yīng)結(jié)果定義為資源强挫,使用HTTP的標(biāo)準(zhǔn)動(dòng)詞映射為對(duì)資源的操作。REST架構(gòu)風(fēng)格還可以應(yīng)用于異步通信過程中薛躬,例如后臺(tái)系統(tǒng)俯渤。
其核心有四個(gè)關(guān)鍵部分:
資源,指某類信息實(shí)體的抽象泛豪,每個(gè)資源對(duì)于一個(gè)特定的Uri作為標(biāo)識(shí)
表述
狀態(tài)轉(zhuǎn)移
統(tǒng)一接口(GET/POST/PUT/DELETE)
REST架構(gòu)風(fēng)格的優(yōu)點(diǎn):與語(yǔ)言無關(guān)稠诲、與平臺(tái)無關(guān),有利于服務(wù)/應(yīng)用的水平伸縮和橫向擴(kuò)展诡曙。
------------------------
歡迎關(guān)注星禾筆記臀叙,可獲取更多內(nèi)容,不限于技術(shù)价卤。