日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 常用的网络框架

發布時間:2023/12/29 Android 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 常用的网络框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


一、Android 常用的網絡框架

本文轉載自兩點水的博客

大多數應用程序基本都需要連接網絡,發送一些數據給服務端,或者從服務端獲取一些數據。通常在 Android 中進行網絡連接一般使用 Scoket 和HTTP,HTTP 請求方式比 Scoket 多得多。HTTP 請求一般采用原生的 HttpClient 和 HttpUrlConnection 的兩種網絡訪問方式。可是在 android 5.0 的時候 Google 就不推薦使用 HttpClient 了,到了 Android 6.0 (api 23) SDK,不再提供 org.apache.http.* (只保留幾個類), 因此,設置 android SDK 的編譯版本為23時,且使用了 httpClient 相關類的庫項目:如 android-async-http 等等,會出現有一些類找不到的錯誤。

列舉目前常用的網絡框架,當然呢,每種網絡框架都會有其優點和缺點的,主要是根據我們自身的項目進行選擇:

1.volley

Volley 的中文翻譯為“齊射、并發”,是在 2013 年的 Google 大會上發布的一款 Android 平臺網絡通信庫,具有網絡請求的處理、小圖片的異步加載和緩存等功能,能夠幫助 Android APP 更方便地執行網絡操作,而且更快速高效。

在 Google IO 的演講上,其配圖是一幅發射火弓箭的圖,有點類似流星。這表示,Volley 特別適合數據量不大但是通信頻繁的場景。見下圖:

優點:
(1)自動調度網絡請求;
(2)高并發網絡連接;
(3)通過標準的 HTTP cache coherence(高速緩存一致性)緩存磁盤和內存透明的響應;
(4)支持指定請求的優先級( 請求隊列的優先級排序);
(5) 提供多樣的取消機制:網絡請求 cancel 機制,我們可以取消單個請求,或者指定取消請求隊列中的一個區域;
(6)框架容易被定制,例如,定制重試或者回退功能;
(7)包含了調試與追蹤工具;
(8)默認 Android2.3 及以上基于 HttpURLConnection,2.3 以下使用基于 HttpClient
(9)提供簡便的圖片加載工具(其實圖片的加載才是我們最為看重的功能)

缺點:
(1)不能下載文件:這也是它最致命的地方

官網或相關地址:
Volley 的 github 地址:https://github.com/mcxiaoke/android-volley;
Google I/O 2013 – Volley: Easy, Fast Networking for Android:https://www.youtube.com/watch?v=yhv8l9F44qo&feature=player_embedded
簡單的使用:http://www.dengzhr.com/others/mobile/android/762

2.Android-async-http

Android-async-http 是一個強大的網絡請求庫,這個網絡請求庫是基于 Apache HttpClient 庫之上的一個異步網絡請求處理庫,網絡處理均基于 Android 的非 UI 線程,通過回調方法處理請求結果。
android-async-http 是一個強大的第三方開源網絡請求庫。可惜的是 Android 6.0 (api 23) SDK,不再提供 org.apache.http.* (只保留幾個類)。

優點:
(1) 在匿名回調中處理請求結果
(2) 在 UI 線程外進行 http 請求
(3) 文件斷點上傳
(4) 智能重試
(5) 默認 gzip 壓縮
(6) 支持解析成 Json 格式
(7) 可將 Cookies 持久化到 SharedPreference

官網或相關地址:
Android-async-http 的 github 地址:https://github.com/loopj/android-async-http
官網教程:http://loopj.com/android-async-http/


接下來我們來看下我們國人封裝的兩個框架 Afinal 框架和 xUtils ,這兩個框架的功能非常的豐富,甚至提供了數據庫的封裝,這很符合我們國人開發的App,都是把一大堆的功能都集進去,那這么強大的網絡框架是不是真的那么強大呢?通常我們都會這樣想:功能越豐富的開源框架,那么它在單一的功能上,比如就網絡框架這一部分,是不是就沒有其他專一網絡的框架好呢?

注:這個框架的作者已經停止更新了,因此現在就不推薦使用了


3.Afinal框架

Afinal 是一個 android 的 sqlite orm 和 ioc 框架。同時封裝了android中的http框架,使其更加簡單易用;使用 finalBitmap,無需考慮 bitmap 在 android 中加載的時候 oom 的問題和快速滑動的時候圖片加載位置錯位等問題。

Afinal的宗旨是簡潔,快速。約定大于配置的方式。盡量一行代碼完成所有事情。

Afinal主要是分四個模塊:
(1) 數據庫模塊:android 中的 orm 框架,使用了線程池對 sqlite 進行操作。
(2) 注解模塊:android 中的 ioc 框架,完全注解方式就可以進行UI綁定和事件綁定。無需 findViewById 和 setClickListener 等。其實它后面是使用反射來進行初始化的。
(3) 網絡模塊:通過 httpclient 進行封裝 http 數據請求,支持 ajax方式加載,支持下載、上傳文件功能。
(4) 圖片緩存模塊:通過 FinalBitmap,imageview 加載 bitmap 的時候無需考慮 bitmap 加載過程中出現的 oom 和 android 容器快速滑動時候出現的圖片錯位等現象。

官網或相關地址:
Afinal框架 的 github 地址:https://github.com/yangfuhai/afinal

注:這個框架的作者已經停止更新了,因此現在就不推薦使用了

4.xUtils

xUtils跟Afinal是同類型的框架, 現在作者已經兩三年前就沒有進行更新了。

官網的簡介:
xUtils3 api 變化較多, 已轉至 https://github.com/wyouflf/xUtils3
xUtils 2.x 對 Android 6.0兼容不是很好, 請盡快升級至 xUtils3.
xUtils 包含了很多實用的android工具。
xUtils 支持大文件上傳,更全面的http請求協議支持(10種謂詞),擁有更加靈活的 ORM,更多的事件注解支持且不受混淆影響…
xUitls 最低兼容android 2.2 (api level 8)

官網或相關地址:
Afinal框架 的 github 地址:https://github.com/wyouflf/xUtils

注:這個框架的作者已經停止更新了,因此現在就不推薦使用了


上面網絡框架其實就個人而已,就不推薦使用了,要不就是功能太過豐富,如果在主流的 app 中使用,對后期的維護, 代價就很大了。比如你發現你框架中不適合使用某個功能,需要替換這部分的框架,你就會發現,你整個項目都不出現這個框架的影子,對于后期維護的成本實在是太大了!

后面的幾個網路框架(okhttp , retrofit)是目前較好的網絡框架,在公司也發現,很多項目都是使用這幾個網絡框架的。這兩個網絡開源框架都是 square 公司提供的,在開源界中,有兩家公司提供的網絡框架是非常豐富的,一個是 square 和 Facebook ,真心感謝這兩個公司。


5.OKHttp

OkHttp 是一個相對成熟的解決方案,據說 Android4.4 的源碼中可以看到 HttpURLConnection 已經替換成 OkHttp 實現了。在 Android 6.0 中底層的源碼已經使用了 OKHttp ,這個是可以確定的。

OkHttp 處理了很多網絡疑難雜癥:會從很多常用的連接問題中自動恢復。如果您的服務器配置了多個IP地址,當第一個 IP 連接失敗的時候,OkHttp 會自動嘗試下一個 IP。OkHttp 還處理了代理服務器問題和 SSL握手失敗問題。

使用 OkHttp 無需重寫您程序中的網絡代碼。OkHttp 實現了幾乎和Java.NET.HttpURLConnection 一樣的API。如果你用了 Apache HttpClient,則 OkHttp 也提供了一個對應的 okhttp-apache 模塊。

官網或相關地址:
OKHttp 的 github 地址:https://github.com/square/okhttp

5.retrofit

其實 retrofit 是根據 OKHttp 封裝的框架,它的底層網絡請求就是使用OKHttp的,這個框架的作者也是非常有名的,就是 Jake Wharton 。簡直就是我的偶像啊!

優點:
(1)支持 okhttp
(2)注解處理,簡化代碼
(3)支持上傳和下載文件
(4)支持自己更換解析方式
(5)支持多種http請求庫

官網或相關地址:
OKHttp 的 github 地址:https://github.com/square/retrofit


二、選擇開源框架的見解

1.學習的成本:對該框架學習的時間長短,文檔是否齊全的考慮
2.流行的程度:該開源框架是否流行,github 上 start 的個數,都是我們考量的標準
3.是否還在維護:如果該框架沒人維護了,隨著技術的不斷更新,都會出現大大小小的問題的
4.代碼的體積: 體積當然不能太大了
5.代碼的設計: 整體框架的設計


轉載自:http://www.jianshu.com/users/8ec863a03f4f/latest_articles

總結

以上是生活随笔為你收集整理的Android 常用的网络框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。