優雲mobile專家淺談:Android應用HTTP框架選型
我們知道,Android應用主要是通過客戶端-伺服器的方式進行資料互動,一般在APP開發時可能是一個介面對應一個顯示模組,這樣的設計會讓客戶端更新時很麻煩。為了解決這個問題,通常的做法是和服務端之間定義協議,設計顯示模式,進而達到實時更新UI介面的目的,增加或刪除顯示模組時不需要讓使用者手動更新apk,這種方法最常見的就是在做活動或者廣告的時候用到。以我們的優雲Mobile移動端為例,Android和iOS應當使用一個統一的介面定義我們的導航欄,針對每個導航欄下的子頁面資料對圖形進行規劃分類,UI需要給出前端有哪些展現形式。如圖所示:
1
2
有了顯示模式的設計,接下來就是實現了,對於客戶端來說,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一旦安裝到手機上,即可隨時隨地可檢視應用體驗資料。請進官網:https://www.uyun.cn
相關文章
- 淺談移動應用的技術選型
- 應用安全淺談
- 開發者架構選型:原生應用 or 混合框架?架構框架
- 7月6日雲棲精選夜讀:淺談應用效能測試PTS
- 淺談框架框架
- 淺談Android記憶體優化Android記憶體優化
- 淺談HTTP之URLHTTP
- 淺談HTTP快取HTTP快取
- 淺談HTTP協議HTTP協議
- 談談Android專案框架的前世今生Android框架
- 淺談電商養成類遊戲選型策略遊戲
- 淺談webscoket原理及其應用Web
- 單頁應用SEO淺談
- 淺談例外表的應用
- 淺談canvas在web開發中的應用與優化CanvasWeb優化
- 淺談CRM系統的選型和實施
- Java泛型應用淺析Java泛型
- “淺談” Flutter 應用落地心得Flutter
- 淺談混合應用的演進
- Django用來作為爬蟲框架淺談Django爬蟲框架
- 淺談Spring框架Spring框架
- 淺談電子簽名留言的應用優勢及場所
- 開發高效能的MongoDB應用:淺談MongoDB效能優化MongoDB優化
- 淺談常見的NoSQL技術方案和選型SQL
- 淺談企業ERP產品選型困惑(轉)
- 談談 23 種設計模式在 Android 專案中的應用設計模式Android
- 淺談java泛型Java泛型
- 華為雲資料庫首席專家談分散式資料應用挑戰和發展建議資料庫分散式
- 淺談企業開發APP應用常見的型別有哪些APP型別
- Android框架搭建1-架構選型Android框架架構
- JVM調優淺談JVM
- 淺談 TCP 優化TCP優化
- 淺談webpack優化Web優化
- 淺談程式優化優化
- 淺談Oracle調優Oracle
- 淺談聚合介面的應用場景
- 淺談桌面應用程式的開發
- [部落格搬家]淺談Vmware的應用