我們知道,Android應用主要是通過客戶端-服務器的方式進行數據交互,一般在APP開發時可能是一個接口對應一個顯示模塊,這樣的設計會讓客戶端更新時很麻煩。為了解決這個問題,通常的做法是和服務端之間定義協議,設計顯示模式,進而達到實時更新UI界面的目的,增加或刪除顯示模塊時不需要讓用戶手動更新apk,這種方法最常見的就是在做活動或者廣告的時候用到。以我們的優云Mobile移動端為例,Android和iOS應當使用一個統一的接口定義我們的導航欄,針對每個導航欄下的子頁面數據對圖形進行規劃分類,UI需要給出前端有哪些展現形式。如圖所示:
1
2
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文件,得到如下圖所示的內容,進行內存分析查看。
最后介紹下apk文件打包,我們現在大部分是用Android studio進行開發,打包也是用gradle進行渠道分類打包,配置完混淆文件后,gradle中再配置不同的渠道,可以傳遞渠道號給服務端讓服務端進行不同版本和不同渠道號的分析和控制。
優云Mobile一旦安裝到手機上,即可隨時隨地可查看應用體驗數據。
原創文章,作者:uyunops,如若轉載,請注明出處:http://www.www58058.com/18265
這圖很贊,是找的還是自己畫的?