免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 13797 | 回复: 1
打印 上一主题 下一主题

[Android] 浅谈Android应用HTTP框架选型 [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-06-10 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-06-08 16:50 |只看该作者 |倒序浏览
本帖最后由 优云敏捷运维 于 2016-06-08 16:51 编辑



我们知道,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文件,利用Android sdk里面的hprof-conv命令将.hprof文件转化为MemoryAnalyzer可以识别的文件,再打开mat工具,打开.hprof文件,得到如下图所示的内容,进行内存分析查看。

最后介绍下apk文件打包,我们现在大部分是用Android studio进行开发,打包也是用gradle进行渠道分类打包,配置完混淆文件后,gradle中再配置不同的渠道,可以传递渠道号给服务端让服务端进行不同版本和不同渠道号的分析和控制。

值得期待的是,优云Mobile Andriod和iOS移动端即将发布,一旦安装到手机上,即可随时随地可查看应用体验数据,敬请期待哦。

秉承devops的理念,从监控、到应用体验,到自动化持续交付,优云软件一切为了您做的更好!
将IT运维化繁为简,优云官网:

论坛徽章:
0
2 [报告]
发表于 2017-02-18 19:13 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP