1. 什么是Volley?

在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,在2013年Google I/O 上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。

2. Volley引入的背景

    比如在以前从网上下载图片的步骤可能是这样的流程:

  • 在ListAdapter#getView()里开始图像的读取。
  • 通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源
  • 在AsyncTask#onPostExecute()里设置相应ImageView的属性。

再比如,屏幕旋转的时候,有时候会导致再次从网络取得数据。为了避免这种不必要的网络访问,我们可能需要自己写很多针对各种情况的处理,比如cache什么的。

再有,比如ListView的时候,我们滚动过快,可能导致有些网络请求返回的时候,早已经滚过了当时的位置,根本没必要显示在list里了,虽然我们可以通过ViewHolder来保持url等来实现防止两次取得,但是那些已经没有必须要的数据,还是会浪费系统的各种资源

3. 提供的功能

  • JSON,图像等的异步下载;
  • 网络请求的排序(scheduling)
  • 网络请求的优先级处理
  • 缓存
  • 多级别取消请求
  • 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)

Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。

下图所示的这些应用都是属于数据量不大,但网络通信频繁的,因此非常适合使用Volley。

下一篇继续介绍volley的网络请求.........

android中volley通信框架简介相关推荐

  1. 每天学习一个Android中的常用框架——0.目录

    文章目录 1.前言 2.环境 3.目录 3.1 持久化 3.1.1 Litepal 3.1.2 GreenDao 3.1.3 Realm 3.1.4 DBFlow 3.2 网络传输 3.2.1 OkH ...

  2. Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (下)

    上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [View ...

  3. android中使用tmf框架插件化开发的问题

    android中使用tmf框架插件化开发的问题 最近项目开发使用的是tmf框架,其中大多数都是通过源生和H5交互的方式来实现的,大体实现和别的三方框架是一样的,需要按照tmf的官方文档引入一些lib和 ...

  4. Android中socket通信简单实现

    Android中socket通信简单实现 socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP. 先上个图: 这里以一个APP作为服务器跟客户端为示例 ...

  5. Android中的hook框架:epic简介

    epic是Android中的一个开源的hook框架,目前最新版本是:0.11.2,项目地址:https://github.com/tiann/epic. epic框架的优点有: 1.可以hook普通方 ...

  6. 使用AIDL+动态代理+运行时注解+反射 反手撸一套Android跨进程通信框架

    IPC 前言 跨进程通信方式 跨进程通信框架 涉及到的技术 使用Request-Response思想 IPCRequest IPCResponse RemoteService 服务端 客户端 附带 项 ...

  7. Android 中的ORM框架

    在android 中,内置了sqlite数据库,java web 中,用惯了Hibernate ,想找找android中是否也有类似的orm框架,后来在开源中国看到了orman,这是一个很不错的框架. ...

  8. 教你打造 Android 中的 IOC 框架

    1.概述 首先我们来吹吹牛,什么叫IoC,控制反转(Inversion of Control,英文缩写为IoC),什么意思呢? 就是你一个类里面需要用到很多个成员变量,传统的写法,你要用这些成员变量, ...

  9. Android 数据库制作APP,在Android 中使用Anko框架制作一个完整的App,第二集

    作者:feintkotlin(Kotlin学习网) 说明:这次更新对一些小的细节进行了改进,并增加了SQLite的操作.该应用支持6.0及以上android系统 更新:当有网络时,将前5条数据保存到数 ...

最新文章

  1. 110道Python面试真题和面试简历资料(附链接)
  2. Java切面理解_Spring AOP面向切面编程:理解篇
  3. 企业管理软件的需求描述方法
  4. mysql mrr_cost_based_mysql mrr介绍
  5. 监视mysql 哪些指标_MySQL 监控指标
  6. 年会抽奖程序准备好了吗?没有的话,直接来取!
  7. .NET中如何通过文本框中按回车键进行的提交数据
  8. oracle中数据泵只导出索引,细致入微:如何使用数据泵导出表的部分列数据
  9. matlab207a,MATLAB教程R2012a课后习题答案
  10. [CareerCup][Google Interview] Find kth number in a BST
  11. bat命令 (参数传递)
  12. luogu P1908 逆序对
  13. 51单片机 wifi模块代码编写的历程 esp8266
  14. 宁波大学数学系好老师推荐
  15. mac谷歌浏览器默认无痕打开
  16. 惊 腾讯云、阿里云服务器无需备案配置域名访问方法
  17. 快速搭建 Node.js 开发环境以及加速 npm
  18. 神威太湖之光入门指南
  19. Java核心类库之(类加载器、反射机制、模块化)
  20. 【C++编程语言】严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3848 具有类型“const MyCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool

热门文章

  1. count时结果 hive_hive的count(distinct id)测试--慎用
  2. apache字体文件跨域_apache如何解决跨域资源访问
  3. DFT的准备(二)(对离散时间傅里叶变换DTFT采样)
  4. 学习压缩感知比较好的文章链接收藏
  5. css实现自适应背景图及背景图透明度处理
  6. thinkphp分页格式的完全自定义,直接输入数字go到输入数字页
  7. i+=1和i=i+1是否完全等价
  8. 雄关漫步真如铁 而今迈步从头越
  9. 一些实用的 jQuery 技巧
  10. OSPF:MTU不一致导致的邻接关系问题