搜索
您的当前位置:首页正文

一口一口吃掉Volley(一)

来源:二三娱乐

瞧瞧Volley是何物

Volley简介

Google在2013年的I/O大会上(是的今年的IO大会很快就会发布android8.0了)正式发布了Volley,google官方称Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。
Volley名称的由来是:

a burst or emission of many things or a large amount at once.
突然或大量的东西或大量的一次。

别想歪了哦:smirk:,所以顾名思义,Volley特别适合数据量不大但是通信频繁的场景。

Volley的用武之地

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

Volley提供给我们的功能

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

Volley的优点

  • 非常适合进行数据量不大,但通信频繁的网络操作
  • 可直接在主线程调用服务端并处理返回结果(这一点可以很方便的更新UI)
  • 可以取消请求,容易扩展,面向接口编程
  • 网络请求线程NetworkDispatcher默认开启了4个和1个CacheDispatcher总共5个线程
  • 通过使用标准的HTTP缓存机制保持磁盘和内存响应的一致
  • 一定程度符合 Http 规范,包括返回 ResponseCode(2xx、3xx、4xx、5xx)的处理,请求头的处理,缓存机制的支持等。并支持重试及优先级定义
  • 默认 Android2.3 及以上基于 HttpURLConnection,2.3 以下基于 HttpClient 实现

Volley的缺点

  • 使用的是httpclient、HttpURLConnection
  • 6.0不支持httpclient了,如果想支持得添加org.apache.http.legacy.jar
  • 对大文件下载 Volley的表现非常糟糕
  • 只支持http请求
  • 图片加载性能一般
  • 最重要的一点就是现在已经过时了,已经有其他诸如okhttp等优秀开源框架可以代替

最后先给大家看一下最终程序的运行效果

Volley程序截图
Top