【Android架構進階〖04〗】MDevil 之 網路模組 Volley

來源:互聯網
上載者:User

標籤:volley

對於 Android 應用開發,基於網路請求的開源架構有不少,我喜歡用的就是 AsyncHttpClient,UniversalImageLoader。原想法是在架構中封裝一套通用的請求與返回介面,那麼以後項目底層不管用什麼架構進行網路請求,都不會修改業務層代碼,實現業務與準系統的分離,方便後期的最佳化,擴充。後來跟阿里的一位朋友聊到這塊,談到android端的網路請求,覺得一款牛逼的應用,尤其的是網路請求模組,應該有一套自己的東西,而不是用別人的,突然覺得很有道理,有必要選擇一套自己網路架構,方便以後做老大 :)

首先想到一些記憶體,省電,線程池等諸多關鍵因素,再集合當前的一些開源架構,發現 AsyncHttpClient 也是有bug 的,而且如果用 AsyncHttpClient,對於listview等網路請求,我還得引入諸如 UniversalImageLoader 來對圖片進行專門的處理,以前用過volley ,覺得很不錯,沒有深入研究,現在研究了下,發現也是有一些問題的,比如不能進行上傳下載大檔案,沒有進度等,不過 volley 對 android做了很多最佳化,不支援大檔案上傳下載也是有原因的,比如設定了掃描線程的優先順序,使之更省電,對 2.2 以上和以下版本的網路請求做了分別處理,2.2以下用了AndroidHttpClient,2.3以上使用了  HttpUrlConnection,具體原因見 http://blog.csdn.net/guolin_blog/article/details/12452307 。覺得 Android 系統是Google推出的,Volley 是Google工程師在 2013 I/O大會上推出的,最正統,遂決定研究 volley ,擴充 volley 。

看了兩天,發現 volley 在啟動時,緩衝了 主線程的 Handler,那麼以後無論在主線程 or 子線程執行 volley網路請求,返回執行 onResponse 時都是主線程在執行,這是特性之一,然後接著發現 volley 初始化時開啟了5個掃描線程,其中1個 緩衝掃描線程,4個非緩衝掃描線程,當添加一個請求時,先檢查緩衝是否已經有了,有則直接返回,否則再執行網路請求,這裡應該就是對多圖片請求的最佳化,volley 看翻譯意思是 “萬箭齊發”,寓意為載入圖片像萬箭齊射一樣快,後期有空看能不能再搞個 下載上傳進度 功能,那就完美了。


【Android架構進階〖04〗】MDevil 之 網路模組 Volley

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.