浅谈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

相关推荐

  • Shell脚本编程—数组、字符串处理

    数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间     数组名:整个数组只有一个名字;     数组索引:编号从0开始;          [数组名索引]  &nbs…

    Linux干货 2016-08-30
  • 任务计划使用方法

    概述     任务计划其实就是针对未来的某一刻或者是某一周期内设置要执行的工作;     任务计划分为两种:         1、一次性任务:在指定的未来的某个时间点仅执行一次任务;  &n…

    Linux干货 2015-03-26
  • 深入理解php底层:php生命周期

    1、PHP的运行模式:     PHP两种运行模式是WEB模式、CLI模式。无论哪种模式,PHP工作原理都是一样的,作为一种SAPI运行。 1、当我们在终端敲入php这个命令的时候,它使用的是CLI。 它就像一个web服务器一样来支持php完成这个请求,请求完成后再重新把控制权交给终端。 2、当使用Apache或者别web服务器…

    系统运维 2015-05-28
  • FHS文件系统各目录功能

    前言:     文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。linux的哲学是一切皆文件,linux系统中的一切包括设备文件,我们都能在linux的倒置树状文件系统中找到相对应的文件。所以清楚的明白根目录下的每个子目录包含什么样的文件是很有必要的。我们将以Filesystem Hierarchy Standar…

    Linux干货 2016-10-17
  • 马哥教育网络班21期+第六周课程练习

    马哥教育网络班21期+第6周课程练习 [TOC] vim编辑器使用方法总结 vim编辑器: 简介: vi: visual interface,文本编辑器 vim: vi improved,vi的增强版 文本:ASCII,Unicode, 文本编辑器种类: 行编辑器:sed, 全屏编辑器:nano,vi vim:模式化的…

    Linux干货 2016-08-15
  • linux基础之lvm操作流程

    linux基础之lvm基本操作流程    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装L…

    2017-03-19

评论列表(1条)

  • stanley
    stanley 2016-06-22 15:38

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