• android中volley通信框架简介


    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的网络请求.........

  • 相关阅读:
    基于Java+Selenium的WebUI自动化测试框架(四)-----设置监听类
    基于Java+Selenium的WebUI自动化测试框架(三)------记录LOG
    基于Java+Selenium的WebUI自动化测试框架(二)-----页面操作接口
    基于Java+Selenium的WebUI自动化测试框架(一)---页面元素定位器
    疯狂java笔记(七)
    使用python实现栈和队列
    Android定位方式和测试方法
    Robotium原理初探
    Android内存进程管理机制
    疯狂java笔记(五)
  • 原文地址:https://www.cnblogs.com/summers/p/4387657.html
Copyright © 2020-2023  润新知