Glide 入门到精通之十四 ——集成网络栈
来源:互联网 发布:c 软件 编辑:程序博客网 时间:2024/04/30 00:33
http://mrfu.me/2016/02/28/Glide_Integrating_Networking_Stacks/
集成网络栈
通过 HTTP/HTTPS 从网络上下载图像并显示是非常重要的一块。虽然标准的 Android 网络包也能做这些工作,但在 Android 中开发了很多提升网络的模块。每个库有它自己的优势和劣势。最后,这其实需要项目的配合和开发人员自己的品位来决定的。
Glide 的开发者不强制设置网络库给你,所以 Glide 可以说和 HTTP/S 无关。理论上,它可以与任何的网络库实现,只要覆盖了基本的网络能力就行。用 Glide 集成一个网络不是完全无缝的。它需要一个 Glide 的 ModeLoader 的接口。为了让你更加易用,Glide 为2个网络库提供了实现:OkHttp 和 Volley。
OkHttp
假定你要集成 OkHttp 作为你给 Glide 的网络库。集成可以通过声明一个 GlideModule 手动实现。如果你想要避免手动实现,只需要打开你的 build.gradle 然后在你的依赖中添加下面这两行代码:
dependencies { // your other dependencies // ... // Glide compile 'com.github.bumptech.glide:glide:3.6.1' // Glide's OkHttp Integration compile 'com.github.bumptech.glide:okhttp-integration:1.3.1@aar' compile 'com.squareup.okhttp:okhttp:2.5.0'}
Gradle 会自动合并必要的 GlideModule 到你的 Android.Manifest。Glide 会认可在 manifest 中的存在,然后使用 OkHttp 做到所有的网络连接。
Volley
另一方面,如果你偏爱使用 Volley,你必须改变你的 build.gradle 依赖:
dependencies { // your other dependencies // ... // Glide compile 'com.github.bumptech.glide:glide:3.6.1' // Glide's Volley Integration compile 'com.github.bumptech.glide:volley-integration:1.3.1@aar' compile 'com.mcxiaoke.volley:library:1.0.8'}
这将添加 Volley 并集成该库到你的项目中。集成库添加到 GlideModule 到你的 Android.Manifest。Glide 会自动认出它,然后使用 Volley 作为网络库。并不要求做其他的配置!
警告:如果你把这两个库都在你的 build.gradle 中声明了,那这两个库都会被添加。因为 Glide 没有任何特殊的加载顺序,你将会有一个不稳定的状态,它并不明确使用哪个网络库,所以确保你只添加了一个集成库。
其他网络库
如果你是别的网络库的粉丝,你是不幸的。Glide 除了 Volley 和 OkHttp 外不会自动配置其他的库。然而你随时可以整合你喜欢的网络库,在 GitHub 上去开一个 pull request。为Volley 和 OkHttp 可能给你一个方向。
Summary
你可以看到,集成网络是相当容易,如果你刚好使用 Gradle 作为你的构建系统,这就不需要做额外的进一步配置。如果你不使用 Gradle,请看看这里。在不久的将来,我们会在 GlideModule 来进行进一步的定制。敬请期待!
- Glide 入门到精通之十四 ——集成网络栈
- Glide 入门到精通之十五 ——用 Glide Module 自定义 Glide
- Glide 入门到精通之二——图片加载
- Glide 入门到精通之六——缓存基础
- Glide 入门到精通之七——请求优先级
- Glide 入门到精通之八——缩略图
- Glide 入门到精通之十二 ——自定义转换
- Glide 入门到精通之六——缓存基础
- Glide 入门到精通之一——添加Glide
- Glide 入门到精通之一——添加Glide
- Glide 入门到精通之三——占位符和渐现动画
- Glide 入门到精通之四——图片缩放和调整大小
- Glide 入门到精通之五——显示Gif和 Video
- Glide 入门到精通之九——SimpleTarget 和 ViewTarget 用于自定义视图类
- Glide 入门到精通之十一 ——异常:调试和错误处理
- Glide 入门到精通之十三 ——用 animate() 自定义动画
- Glide 入门到精通之十六——Module 实例:接受自签名证书的 HTTPS
- Glide 入门到精通之十七——Module 实例:自定义缓存
- C语言指针
- java+selenium实现自动化打开页面
- 中国五金门控发展情况 (zz)
- 面试 ABAPer的一些感想
- 身高与体重
- Glide 入门到精通之十四 ——集成网络栈
- GOOGLE VR SDK开发VR游戏,VR播放器之一
- ML 逻辑回归 note
- CString-〉char*
- Spring的事务配置的五种方式
- Android书页翻页设计:android-flip
- Lua垃圾回收
- C++第2次实验二
- Error creating bean with name 'contentTypeAdminController': Injection of autowired dependencies fail