### Volley框架:
google2013發布的android平臺上的網絡請求庫
使用場景:并發、效率、性能要求高的場景
- **特點**:
1. 網絡通信更快、更簡單,效率高、穩定性高
2. Get、Post網絡請求及網絡圖像的高效率異步請求
3. 對網絡請求進行排序、進行優先級處理
4. 有網絡請求的緩存
5. 多級別取消請求
6. 和Activity生命周期的聯動
- **缺點**:
不適合進行網絡數據的上傳和下載
為什么使用volley?
- 功能上:
1. 高效的Get、Post方式的數據請求交互
2. 網絡圖片加載和緩存、節省流量
- 其他:
3. google官方推出
4. 性能很穩定和強勁
- **Volley的網絡請求隊列建立和取消隊列請求**
建立請求隊列
取消某一個請求或者所有的請求隊列
- **Volley和Activity生命周期的聯動**
- 特點:
- 可以在Activity銷毀時候,同時關閉請求
- 關鍵點
- 設置Tag標簽,onStop()里執行取消請求
>[info] **注意**:Volley在API>=9時使用了HttpUrlConnection,去除了HttpClient,小于9時使用了HttpClient
- **google 官方的介紹**
具有以下優點:
● 網絡請求的自動調度。
● 多個并發的網絡連接。
● 透明的磁盤和內存響應緩存與標準的HTTP [緩存一致性](http://note.youdao.com/noteshare?id=f5077d62d2fb66fa584d83dbf052fa04&sub=389849BDF04C4D89A1D0C7ACC0E951C5)。
● 支持請求優先級。
● 取消請求API。您可以取消一個請求,也可以設置請求取消的塊或范圍。
● 緩解定制,例如,用于重試和退避。
● 強大的排序,可以很容易地用從網絡異步獲取的數據填充你的UI界面。
● 調試和跟蹤工具
Volley是不適合大型下載或流媒體業務,因為Volley在分析過程中在內存中保存所有響應。對于大的下載操作,可以考慮使用類似的替代[DownloadManager](https://developer.android.com/reference/android/app/DownloadManager.html?hl=zh-cn)。
Volley非常不適合大的文件流操作,例如上傳和下載。因為Volley會把所有的服務器端返回的數據在解析期間緩存進內存。大量的下載操作可以考慮用DownLoaderManager和異步加載來實現。
從官網clone代碼時,報錯鏈接超時,可以采用[這篇博客](http://note.youdao.com/noteshare?id=f5077d62d2fb66fa584d83dbf052fa04&sub=389849BDF04C4D89A1D0C7ACC0E951C5)的方法,(ps:我也用的是藍燈代理的vpn)。
clone成功后,采用google官網提供的方法,[創建一個android庫](http://note.youdao.com/noteshare?id=f5077d62d2fb66fa584d83dbf052fa04&sub=389849BDF04C4D89A1D0C7ACC0E951C5),創建成功后,將該庫添加到你的Demo中作為依賴庫即可。
* Volley和NoHttp的對比圖示
