1. 程式人生 > >網路框架比較(二)

網路框架比較(二)

            自己重新整理了一份網路框架比較,對比了多個框架。目前使用的比較多的volley、okhttp、retrofit,從官網找了資料,

根據demo和總結,最終形成了表格。專案中volley部分機型、特定網路就會卡頓,特別慢。retrofit要定義介面,建議和rxjava一起使用,看是否習慣,是否容易上手。推薦使用okhttp,方便封裝呼叫。

安卓網路框架比較
說明:網路請求框架比較多,現階段使用比較多、不斷更新的框架推薦Volley,Okhttp,Retrofit。網路基礎工具HttpUrlConnection,android-async-http功能簡單,需要自己封裝;httpclient(安卓高版本已廢棄,不再使用),xUtils3(作用廣泛而不精,已停止維護),這幾個不推薦使用。
框架名稱 開發公司 官方說明 優點 缺點
volley Google 1.網路請求的自動排程。
2.多個併發網路連線。
3.具有標準HTTP快取一致性的透明磁碟和記憶體響應快取。
4.支援請求優先順序。
5.取消請求API。您可以取消單個請求,也可以設定要取消的請求塊或範圍。
6.容易定製,例如,重試和後退。
7.強排序,使正確地使用從網路非同步獲取的資料填充UI變得容易。
8.除錯和跟蹤工具。
1. 擴充套件性強,基於介面設計。
2. 一定程度上符合http規範。返回包ResponseCode 的處理,請求頭的處理,快取機制的支援。
3. 重試以及優先順序的定義。
4. 提供簡單的圖片載入工具。
5.jar包較小,減小包體積。
1.不適合大的下載或者流式傳輸操作
2.不支援okio機制,
3.不支援重連機制,部分情況下請求會很慢甚至卡頓。
okhttp Square 1.HTTP是現代應用程式網路的方式。有效地使用HTTP將使您的內容載入速度更快,並節省頻寬。
2.OkHttp是一個HTTP客戶端,預設情況下是高效的。
3.HTTP/2支援允許對同一主機的所有請求共享一個socket。
4.連線池減少了請求延遲(如果HTTP/2不可用)。
5.透明GZIP縮小了下載大小。
6.響應快取完全避免了網路對重複請求的訪問。
7.當網路出現問題時,OkHttp會堅持下來:它會從常見的連線問題中安靜地恢復。如果您的服務有多個IP地址,那麼如果第一次連線失敗,OkHttp將嘗試替換地址。
1.支援GZIP壓縮機制。
2.底層實現了OKIO機制,讀寫操作更高效。
3.支援統一主機所有請求共享socket
4.當網路出現問題,會在多個伺服器之間切換地址,優化網路載入速度。
1.是訊息回來需要切到主執行緒,主執行緒要自己去寫。
2.呼叫比較複雜,需要自己進行封裝。
3.快取失效:網路請求時一般都會獲取手機的一些硬體或網路資訊,比如使用的網路環境。同時為了資訊傳輸的安全性,可能還會對請求進行加密。在這些情況下OkHttp的快取系統就會失效了,導致使用者在無網路情況下不能訪問快取。

 
Retrofit Square Retrofit是對okhttp封裝的網路框架,Android和Java的型別安全HTTP客戶端。 1.可以配置不同HTTP client來實現網路請求,如okhttp、httpclient等;
2.請求的方法引數註解都可以定製;
3.支援同步、非同步和RxJava;
4.超級解耦;
5.可以配置不同的反序列化工具來解析資料,如json、xml等;

 
1.不能接觸序列化實體和響應資料;
2.執行的機制太嚴格;
3.使用轉換器比較低效;
4.只能支援簡單自定義引數型別;
5.大量使用註解,效率會降低。