天天看點

優雲mobile專家實踐:Android應用HTTP架構選型

優雲mobile專家實踐:Android應用HTTP架構選型

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

優雲mobile專家實踐:Android應用HTTP架構選型

1

優雲mobile專家實踐:Android應用HTTP架構選型

2

優雲mobile專家實踐:Android應用HTTP架構選型

3

有了顯示模式的設計,接下來就是實作了,對于用戶端來說,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檔案,得到如下圖所示的内容,進行記憶體分析檢視。

優雲mobile專家實踐:Android應用HTTP架構選型

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

值得一提的是,優雲mobile一旦安裝到手機上,即可随時随地可檢視應用體驗資料。官網:https://uyun.cn

繼續閱讀