Glide入門(mén)教程——15.整合網(wǎng)絡(luò)協(xié)議棧

Glide — 整合網(wǎng)絡(luò)協(xié)議棧

原文:Integrating Network Stacks
作者:Norman Peitek
翻譯:Dexter0218

在學(xué)習(xí)了許多加載和顯示圖片的方案后,我們要研究為Glide改變基礎(chǔ)網(wǎng)絡(luò)協(xié)議棧。這篇指導(dǎo)建立在你使用Gradle的前提上。

Glide 系列概覽

  1. 入門(mén)簡(jiǎn)介
  2. 高級(jí)加載
  3. 適配器(ListView, GridView)
  4. 占位圖& 淡入淡出動(dòng)畫(huà)
  5. 圖片大小 & 縮放
  6. 播放GIF & 視頻
  7. 緩存基礎(chǔ)
  8. 請(qǐng)求優(yōu)先級(jí)
  9. 縮略圖
  10. 回調(diào):定制view中使用SimpleTarget和ViewTarget
  11. 通知欄和桌面小控件的圖片加載
  12. 異常: 調(diào)試和報(bào)錯(cuò)處理
  13. 自定義變換
  14. 用animate()定制動(dòng)畫(huà)
  15. 整合網(wǎng)絡(luò)協(xié)議棧
  16. 用Modules定制Glide
  17. Glide Module 案例: 接受自簽名HTTPS證書(shū)
  18. Glide Module 案例: 自定義緩存
  19. Glide Module 案例: 通過(guò)加載自定義大小圖片優(yōu)化
  20. 動(dòng)態(tài)使用 Model Loaders
  21. 如何旋轉(zhuǎn)圖片
  22. 系列綜述

整合網(wǎng)絡(luò)協(xié)議棧

通過(guò)HTTP/HTTPS從網(wǎng)絡(luò)下載圖片,是顯示圖片的一個(gè)重要的環(huán)節(jié)。雖然標(biāo)準(zhǔn)的Android網(wǎng)絡(luò)包可以完成這些工作,但是仍然有很多開(kāi)發(fā)者為了改善android的網(wǎng)絡(luò)做了一些開(kāi)發(fā)。每個(gè)庫(kù)都有自己的優(yōu)點(diǎn)和缺點(diǎn)。最終取決于項(xiàng)目的實(shí)際需求和開(kāi)發(fā)者的個(gè)人愛(ài)好。

Glide的開(kāi)發(fā)者不強(qiáng)迫你使用他們推薦的網(wǎng)絡(luò)庫(kù)。所以,Glide是無(wú)關(guān)HTTP/S的。理論上,它能實(shí)現(xiàn)基本的網(wǎng)絡(luò)功能,在任何情況下工作。它需要一個(gè)Glide的ModelLoader的接口設(shè)置。為了讓這個(gè)更簡(jiǎn)單,Glide提供了兩個(gè)網(wǎng)絡(luò)庫(kù)的支持:OkHttpVolley。

OkHttp 2

我們假設(shè)你想要用OkHttp 2作為你的Glide網(wǎng)絡(luò)庫(kù)。可以手動(dòng)通過(guò)定義一個(gè)GlideModule來(lái)實(shí)現(xiàn)整合。如果你想要避免手動(dòng)整合,那就打開(kāi)你的build.gradle,然后添加下面的依賴(lài):

dependencies {  
    // your other dependencies
    // ...

    // Glide
    compile 'com.github.bumptech.glide:glide:3.7.0'

    // Glide's OkHttp2 Integration 
    compile 'com.github.bumptech.glide:okhttp-integration:1.4.0@aar'
    compile 'com.squareup.okhttp:okhttp:2.7.5'
}

Gradle會(huì)自動(dòng)合入必須的GlideModule到你的Android.Manifest中。Glide會(huì)識(shí)別manifest里的東西,并為所有的網(wǎng)絡(luò)連接使用OkHttp。

Volley

另一方面,如果你偏向于使用Volley,你必須把你的build.gradle依賴(lài)改成下面的:

dependencies {  
    // your other dependencies
    // ...

    // Glide
    compile 'com.github.bumptech.glide:glide:3.7.0'

    // Glide's Volley Integration 
    compile 'com.github.bumptech.glide:volley-integration:1.4.0@aar'
    compile 'com.mcxiaoke.volley:library:1.0.8'
}

這會(huì)添加Volley和集成庫(kù)(integration library)到你的項(xiàng)目中。集成庫(kù)添加GlideModule到你的Android.Manifest文件中。Glide會(huì)自動(dòng)識(shí)別,然后使用Volley作為網(wǎng)絡(luò)連接庫(kù)。沒(méi)有其他的配置要做了!

警號(hào):如果你同時(shí)定義了2個(gè)庫(kù)在你的build.gradle,兩個(gè)都會(huì)被添加。由于Glide不能按照任何特別的順序加載它們,不知道哪個(gè)庫(kù)實(shí)際上被調(diào)用,可能會(huì)導(dǎo)致不穩(wěn)定的結(jié)果。請(qǐng)確保你只添加了一個(gè)集成庫(kù)。

OkHttp 3

如果你想要使用最新的OkHttp 3作為網(wǎng)絡(luò)協(xié)議棧,通過(guò)提供的集成庫(kù)整個(gè)它:

ependencies {  
    // your other dependencies
    // ...

    // Glide
    compile 'com.github.bumptech.glide:glide:3.7.0'

    // Glide's OkHttp3 Integration 
    compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
}

其他網(wǎng)絡(luò)庫(kù)

如果你是其他網(wǎng)絡(luò)庫(kù)的粉絲,那么就不幸了。Glide并不支持除了Volley、OkHttp2和OkHttp3以外的庫(kù)。然而,你可以通過(guò)在Github上推送一個(gè)請(qǐng)求盡情集成你喜歡的庫(kù)到Glide里。Volley、OkHttp2和OkHttp3的集成可以給你一個(gè)指導(dǎo)方向。

總結(jié)

顯然,集成網(wǎng)絡(luò)庫(kù)非常簡(jiǎn)單,如果你正好使用Gradle作為你編譯系統(tǒng),并不需要進(jìn)一步定制。如果你不使用Gradle,可以看下這里。不久的將來(lái),我們將會(huì)介紹更高級(jí)的定制化GlideModule。敬請(qǐng)期待!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評(píng)論 25 708
  • 一、簡(jiǎn)介 在泰國(guó)舉行的谷歌開(kāi)發(fā)者論壇上,谷歌為我們介紹了一個(gè)名叫Glide的圖片加載庫(kù),作者是bumptech。這...
    天天大保建閱讀 7,786評(píng)論 2 28
  • 一.榜單介紹 排行榜包括四大類(lèi): 單一框架:僅提供路由、網(wǎng)絡(luò)層、UI層、通信層或其他單一功能的框架 混合開(kāi)發(fā)框架:...
    偉子男閱讀 5,378評(píng)論 0 161
  • 當(dāng)我真正踏上若爾蓋,望著碧藍(lán)天空下一望無(wú)垠的草原,心里知道在這里我絕不會(huì)遇到任何一匹狼,雖即使心底還有那微弱的期望...
    北海二十一閱讀 1,090評(píng)論 4 2
  • “最近咋樣?” “駭,反正挺忙的” “都忙些什么呀?” 忙著……生活… 曾經(jīng) 車(chē)馬很慢 生活的節(jié)奏 還算在自己手中...
    Hi_Buer閱讀 193評(píng)論 0 0

友情鏈接更多精彩內(nèi)容