Android 使用 Volley 傳輸網(wǎng)絡(luò)數(shù)據(jù)

2018-08-02 17:44 更新

編寫:kesenhoo - 原文:http://developer.android.com/training/volley/index.html

Volley 是一個(gè) HTTP 庫,它能夠幫助 Android app 更方便地執(zhí)行網(wǎng)絡(luò)操作,最重要的是,它更快速高效。我們可以通過開源的 AOSP 倉庫獲取到 Volley 。

YOU SHOULD ALSO SEE

使用 Volley 來編寫一個(gè) app,請(qǐng)參考2013 Google I/O schedule app。另外需要特別關(guān)注下面2個(gè)部分:

VIDEO - Volley: Easy,Fast Networking for Android


Volley 有如下的優(yōu)點(diǎn):

  • 自動(dòng)調(diào)度網(wǎng)絡(luò)請(qǐng)求。
  • 高并發(fā)網(wǎng)絡(luò)連接。
  • 通過標(biāo)準(zhǔn)的 HTTP cache coherence(高速緩存一致性)緩存磁盤和內(nèi)存透明的響應(yīng)。
  • 支持指定請(qǐng)求的優(yōu)先級(jí)。
  • 撤銷請(qǐng)求 API。我們可以取消單個(gè)請(qǐng)求,或者指定取消請(qǐng)求隊(duì)列中的一個(gè)區(qū)域。
  • 框架容易被定制,例如,定制重試或者回退功能。
  • 強(qiáng)大的指令(Strong ordering)可以使得異步加載網(wǎng)絡(luò)數(shù)據(jù)并正確地顯示到 UI 的操作更加簡(jiǎn)單。
  • 包含了調(diào)試與追蹤工具。

Volley 擅長(zhǎng)執(zhí)行用來顯示 UI 的 RPC 類型操作,例如獲取搜索結(jié)果的數(shù)據(jù)。它輕松的整合了任何協(xié)議,并輸出操作結(jié)果的數(shù)據(jù),可以是原始的字符串,也可以是圖片,或者是 JSON。通過提供內(nèi)置的我們可能使用到的功能,Volley 可以使得我們免去重復(fù)編寫樣板代碼,使我們可以把關(guān)注點(diǎn)放在 app 的功能邏輯上。

Volley 不適合用來下載大的數(shù)據(jù)文件。因?yàn)?Volley 會(huì)保持在解析的過程中所有的響應(yīng)。對(duì)于下載大量的數(shù)據(jù)操作,請(qǐng)考慮使用 DownloadManager

Volley 框架的核心代碼是托管在 AOSP 倉庫的 frameworks/volley 中,相關(guān)的工具放在 toolbox 下。把 Volley 添加到項(xiàng)目中最簡(jiǎn)便的方法是 Clone 倉庫,然后把它設(shè)置為一個(gè) library project:

  1. 通過下面的命令來Clone倉庫:

     git clone https://android.googlesource.com/platform/frameworks/volley
    
  2. 以一個(gè) Android library project 的方式導(dǎo)入下載的源代碼到你的項(xiàng)目中。(如果你使用 Eclipse,請(qǐng)參考 Managing Projects from Eclipse with ADT,或者編譯成一個(gè) .jar 文件。

Lessons

發(fā)送一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)請(qǐng)求(Sending a Simple Request)

學(xué)習(xí)如何通過 Volley 默認(rèn)的行為發(fā)送一個(gè)簡(jiǎn)單的請(qǐng)求,以及如何取消一個(gè)請(qǐng)求。

建立一個(gè)請(qǐng)求隊(duì)列(Setting Up a RequestQueue)

學(xué)習(xí)如何建立一個(gè)請(qǐng)求隊(duì)列(RequestQueue),以及如何實(shí)現(xiàn)一個(gè)單例模式來創(chuàng)建一個(gè)請(qǐng)求隊(duì)列,使 RequestQueue 能夠持續(xù)保持在我們 app 的生命周期中。

生成一個(gè)標(biāo)準(zhǔn)的請(qǐng)求(Making a Standard Request)

學(xué)習(xí)如何使用 Volley 的 out-of-the-box(可直接使用、無需配置)請(qǐng)求類型(原始字符串、圖片和 JSON)來發(fā)送一個(gè)請(qǐng)求。

實(shí)現(xiàn)自定義的請(qǐng)求(Implementing a Custom Request)

學(xué)習(xí)如何實(shí)現(xiàn)一個(gè)自定義的請(qǐng)求。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)