Glide入門教程——15.整合網絡協議棧

Glide — 整合網絡協議棧

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

在學習了許多加載和顯示圖片的方案后,我們要研究為Glide改變基礎網絡協議棧。這篇指導建立在你使用Gradle的前提上。

Glide 系列概覽

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

整合網絡協議棧

通過HTTP/HTTPS從網絡下載圖片,是顯示圖片的一個重要的環節。雖然標準的Android網絡包可以完成這些工作,但是仍然有很多開發者為了改善android的網絡做了一些開發。每個庫都有自己的優點和缺點。最終取決于項目的實際需求和開發者的個人愛好。

Glide的開發者不強迫你使用他們推薦的網絡庫。所以,Glide是無關HTTP/S的。理論上,它能實現基本的網絡功能,在任何情況下工作。它需要一個Glide的ModelLoader的接口設置。為了讓這個更簡單,Glide提供了兩個網絡庫的支持:OkHttpVolley

OkHttp 2

我們假設你想要用OkHttp 2作為你的Glide網絡庫。可以手動通過定義一個GlideModule來實現整合。如果你想要避免手動整合,那就打開你的build.gradle,然后添加下面的依賴:

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會自動合入必須的GlideModule到你的Android.Manifest中。Glide會識別manifest里的東西,并為所有的網絡連接使用OkHttp。

Volley

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

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'
}

這會添加Volley和集成庫(integration library)到你的項目中。集成庫添加GlideModule到你的Android.Manifest文件中。Glide會自動識別,然后使用Volley作為網絡連接庫。沒有其他的配置要做了!

警號:如果你同時定義了2個庫在你的build.gradle,兩個都會被添加。由于Glide不能按照任何特別的順序加載它們,不知道哪個庫實際上被調用,可能會導致不穩定的結果。請確保你只添加了一個集成庫。

OkHttp 3

如果你想要使用最新的OkHttp 3作為網絡協議棧,通過提供的集成庫整個它:

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'
}

其他網絡庫

如果你是其他網絡庫的粉絲,那么就不幸了。Glide并不支持除了Volley、OkHttp2和OkHttp3以外的庫。然而,你可以通過在Github上推送一個請求盡情集成你喜歡的庫到Glide里。Volley、OkHttp2和OkHttp3的集成可以給你一個指導方向。

總結

顯然,集成網絡庫非常簡單,如果你正好使用Gradle作為你編譯系統,并不需要進一步定制。如果你不使用Gradle,可以看下這里。不久的將來,我們將會介紹更高級的定制化GlideModule。敬請期待!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

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