優雲mobile專家淺談:Android應用HTTP框架選型

weixin_34291004發表於2016-10-09
3246233-b5d0e4480b1707b4.jpg

我們知道,Android應用主要是通過客戶端-伺服器的方式進行資料互動,一般在APP開發時可能是一個介面對應一個顯示模組,這樣的設計會讓客戶端更新時很麻煩。為了解決這個問題,通常的做法是和服務端之間定義協議,設計顯示模式,進而達到實時更新UI介面的目的,增加或刪除顯示模組時不需要讓使用者手動更新apk,這種方法最常見的就是在做活動或者廣告的時候用到。以我們的優雲Mobile移動端為例,Android和iOS應當使用一個統一的介面定義我們的導航欄,針對每個導航欄下的子頁面資料對圖形進行規劃分類,UI需要給出前端有哪些展現形式。如圖所示:

1

3246233-6d1cea8ac68c77eb.jpg

2

3246233-0696fa5eca329853.jpg

3246233-818bfd70f4434bec.jpg


有了顯示模式的設計,接下來就是實現了,對於客戶端來說,http通訊的框架選型是很重要的,目前Andriod Http通訊的框架常用的有以下四種:

·HttpClient:

源於Apache,更適合在Android2.2以下的版本使用,在Android6.0中已經被刪除。

·HttpUrlConnection

Android標準實現,支援GZIP壓縮,連線速度比HttpClient要快很多,推薦使用。

·Volley

2013年google釋出的第三方http開源框架,內部整合了HttpClient和HttpUrlConnection,內部有一個執行緒池,讓所有的http請求進行排序,在網路圖片載入中採用三級快取機制使網路圖片進行非同步載入,適合數量不大但通訊頻繁的地方使用。目前我們的優雲Mobile移動端使用的就是這個框架,但是這個框架的不足在於對服務端重定向或者異常的情況處理不夠。可以在原始碼基礎上新增服務端可能返回的錯誤處理。

·okHttp

2015年Google釋出的okHttp,功能十分強大,封裝了檔案的上傳下載功能,圖片的載入,處理了服務端各種可能的網路錯誤,但是檔案大小有311k,某些場景下使用可能會稍嫌臃腫。

接下來我們談談記憶體分析。再好的程式碼,我們也需要進行記憶體校驗,看看是否有記憶體溢位或者記憶體洩漏的情況,這裡利用google提供的Mat工具進行視覺化分析,確保我們的記憶體正常。首先在DDMS中選擇我們的應用,點選Dump按鈕,執行apk一段時間或者利用monkey進行自動化測試一段時間後,再次點選Dump,得到.hprof檔案,利用Androidsdk裡面的hprof-conv命令將.hprof檔案轉化為MemoryAnalyzer可以識別的檔案,再開啟mat工具,開啟.hprof檔案,得到如下圖所示的內容,進行記憶體分析檢視。

3246233-7429ce3bca1e6b03.jpg

最後介紹下apk檔案打包,我們現在大部分是用Android studio進行開發,打包也是用gradle進行渠道分類打包,配置完混淆檔案後,gradle中再配置不同的渠道,可以傳遞渠道號給服務端讓服務端進行不同版本和不同渠道號的分析和控制。

值得期待的是,優雲Mobile一旦安裝到手機上,即可隨時隨地可檢視應用體驗資料。請進官網:https://www.uyun.cn

相關文章