美文网首页图片基础知识
Glide入门教程——15.整合网络协议栈

Glide入门教程——15.整合网络协议栈

作者: 签到钱就到 | 来源:发表于2016-05-16 19:47 被阅读1806次

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。敬请期待!

相关文章

  • Glide入门教程——15.整合网络协议栈

    Glide — 整合网络协议栈 原文:Integrating Network Stacks作者:Norman Pe...

  • 网络协议、端口和Socket

    1、网络协议分层 网络层次可划分为五层因特网协议栈和七层因特网协议栈。 1.1 五层因特网协议栈 因特网协议栈共有...

  • 协议栈的内部结构

    什么是协议栈? 如果说网卡是连接网络的硬件,那么协议栈就是连接网络的软件。 协议栈包括什么? 主要包括TCP,UD...

  • docker网络基础

    网络的命名空间 linux在网络栈中引入网络命名空间,从而支持网络协议栈的多个实例。这些独立的协议栈被隔离到不同的...

  • note_12.1_网络基础

    计算机网络: TCP/IP:协议栈(使用)ISO,OSI:协议栈(学习) MAC:Media Access Con...

  • 物联网人士必须了解的芯片--ESP8266

    ​ 串口WiFi模块:基于通用串行接口特性,符合IEEE802.11 协议栈网络标准,内置TCP/IP协议栈,而安...

  • 一文搞懂Docker的网络模式

    一 前言 根据上篇知识了解到,通过设置不同的网络空间来达到网络协议栈的完全隔离,对于不同空间的协议栈是完全隔离,每...

  • HTTP网络协议栈

    http网络协议栈分为五层 1、应用层(http) 2、传输层(TCP) 3、网络层(IP) 4、数据链路层(网络...

  • Glide入门教程——1.入门简介

    Glide入门教程 原文:Getting Started & Simple Loading作者:Norman Pe...

  • IP数据报格式

    前言 先回顾一下TCP/IP协议栈 网络层的协议有IP协议、ARP协议、ICMP协议和IGMP协议。其中IP协议是...

网友评论

本文标题:Glide入门教程——15.整合网络协议栈

本文链接:https://www.haomeiwen.com/subject/tpkmrttx.html