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的網絡請求.........


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM