淺談Android應用HTTP框架選型

淺談Android應用HTTP框架選型

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

1

2.jpg

2

 淺談Android應用HTTP框架選型

3

淺談Android應用HTTP框架選型

有了顯示模式的設計,接下來就是實現了,對于客戶端來說,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文件,得到如下圖所示的內容,進行內存分析查看。

 淺談Android應用HTTP框架選型

 

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

優云Mobile一旦安裝到手機上,即可隨時隨地可查看應用體驗數據。

原創文章,作者:uyunops,如若轉載,請注明出處:http://www.www58058.com/18265

(0)
uyunopsuyunops
上一篇 2016-06-22
下一篇 2016-06-22

相關推薦

  • MySQL or MariaDB 簡介

    DBMS:數據庫管理系統 RDBMS:關系型數據庫管理系統    總之:他們都是一個數據管理程序;大多都是CS架構,都有專門的通信協議進行數據交換 關系模型:               表(行或者列):二維關系 設計范式:       &…

    Linux干貨 2017-01-12
  • grep及正則表達式相關練習

    grep及正則表達式相關練習 1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 ~]# cp -r /etc/skel/ /home/tuser1 ~]# chmod -R 700 /home/tuser1 ~]# ls -ld /home/tuser1 drwx&#821…

    Linux干貨 2016-10-11
  • CentOS7常用網絡管理命令總結

    一、CentOS7網絡接口命名策略(systemd)二、CentOS7的基礎網絡管理命令2.1 NetworkManager服務2.2 nmtui文本交互式工具2.3 nmcli命令行接口工具nmcli的語法說明NetworkManager整體狀態顯示顯示所有連接或僅活動的連接顯示所有設備的狀態顯示指定設備的所有連接屬性添加動態的以太網連接(DHCP)添加靜…

    Linux干貨 2016-06-09
  • 高級文件系統管理之邏輯卷管理

    一,概述 邏輯卷管理器(LVM)     LVM: Logical Volume Manager, Version:2          dm:device mapper (設備映射),將一個或多個底層塊設備組織成一個邏輯設備的模塊 &nb…

    Linux干貨 2016-09-10
  • LAPM(linux+httpd+php+mariadb)環境搭建

    前言     LAMP(linux+apache+mariadb+php)以下都以源碼安裝方式,環境為3臺虛擬機內存各4G、2核cpu,apache通過fastcgi連接php,數據庫用mariadb。       搭建環境:Centos6.4     服務器一 &nb…

    Linux干貨 2015-05-27
  • N26 第六周博客作業

    請詳細總結 vim 編輯器的使用并完成以下練習題 ## VIM 使用總結 首先 VIM 是 VI IMproved 的縮寫,是 vi 編輯器的增強型。它與 sed awk 并稱為文本處理三劍客。其主要作者 Bram Moolenaar 也是個非常有愛心的人,在 vim 的[官網](http://www.vim.org/) 和 在命令行中直接輸入 vim 的命…

    Linux干貨 2017-03-11

評論列表(1條)

  • stanley
    stanley 2016-06-22 15:38

    這圖很贊,是找的還是自己畫的?

欧美性久久久久