浅谈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.178linux.com/18265

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

相关推荐

  • CentOS 7网络属性配置

    传统命名:以太网eth[0,1,2,…], wlan[0,1,2,…] 可预测功能 udev支持多种不同的命名方案: Firmware, 拓扑结构 (1) 网卡命名机制 systemd对网络设备的命名方式: (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1; (b)…

    Linux干货 2015-05-28
  • 有关磁盘管理与文件系统

    硬盘物理结构      扇区  磁头  磁道   柱面   磁道数      扇区*一个磁道上的扇区个数*磁头数=柱面      柱面*磁道数=硬盘大小      一个扇区512字节   &…

    2017-08-19
  • samba

    Samba 简介:      Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。…

    系统运维 2016-11-01
  • Linux第一周学习心得

                           LINUX入门学习心得 Shell基本命令 ### shell可执行命令分类 ### 内部命令:由shell自带得,而且通过某命令形式提供 help 内部命令列表 enble cmd 启用内部命…

    Linux干货 2017-07-15
  • N25-第八周博客作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示;不在线的主使用红色显示; #!/bin/bash # ping探测主机在线状态 for i in `seq 254`;do if ping -c 1 172.16.0.$i &> /dev/null;th…

    Linux干货 2017-02-23

评论列表(1条)

  • stanley
    stanley 2016-06-22 15:38

    这图很赞,是找的还是自己画的?