优云mobile专家实践:Android应用HTTP框架选型

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

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

值得一提的是,优云Mobile一旦安装到手机上,即可随时随地可查看应用体验数据。官网:https://uyun.cn

时间: 2024-09-12 00:10:14

优云mobile专家实践:Android应用HTTP框架选型的相关文章

优云CMDB专家实践谈:自动化运维的基石CMDB

CMDB是什么? 运维百花齐放繁荣景象的同时,也让碎片化问题产生:每个人都想整合运维平台,但是往往事与愿违. CMDB就像一个人的大脑核心,是一个信息协调库,其存储的资料是协调身体完成各种复杂运动的信息来源.  我心中的CMDB . 碎片整合 面向运维工具的碎片化场景,是盘活整个运维管理的数据核心 . 元数据库 提供运维活动的基础元数据,是唯一可信的运维配置数据服务 . 场景驱动 为运维联动提供数据驱动,可协调工具来完成各类自动化场景    ​自动扩容+自动监控 CMDB如何建设? 痛点现象与对

优云APM最佳实践: 诊断平安城市视频网性能问题

  5 分钟前 上传 下载附件 (166.88 KB) 前言: 平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战.如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,优云APM在发现问题,定位故障等方面,起了很大作用,帮助我们顺利的定位到了系统的故障所在. 平安城市是一个特大型.综合性非常强的管理系统,不仅需要满足治安管理.城市管理.交通管理.应急指挥等需求,而且还要兼顾灾难事故预警.安全生产监控等方面对图像监控的需求,

优云运维:漫谈redis在运维数据分析中的去重统计方式

今天,我和大家分享下redis在运维数据分析中的去重统计方式.为了避免混淆,本文中对于redis的数据结构做如下约定: SET:saddkey member ZSET:zaddkeyscoremember HYPERLOGLOG:pfaddkeyelement STRING:setbitkeyoffset value 名词约定: 维度:比如版本.操作系统类型.操作系统版本.运营商.设备型号.网络类型等 复合维度:由两个或多个维度交错产生的维度,比如某个版本下的某个设备型号. 去重统计在数据化运维

优云软件数据专家最佳实践:数据挖掘与运维分析

这份研究报告,作者是优云软件数据专家陈是维,在耗时1年时间制作的一份最佳实践,今天和大家分享下,关于<数据采矿和运维分析>,共同探讨~ 数据挖掘(Data Mining)是从大量数据中提取或"挖掘"知识. 广义数据挖掘:数据挖掘是从存放在数据库.数据仓库或其它信息库中的大量数据挖掘有趣知识的过程. 数据挖掘技术侧重:1)概率与数理统计 2)数据库技术 3)人工智能技术 4)机器学习. 1. 数据清理:消除噪音或不一致数据 2. 数据集成:多种数据源可以组合在一起 3. 数据

阿里云数据库专家玄惭:云数据库超大流量峰值保障最佳实践

大流量高并发互联网应用实践在线峰会官网:https://yq.aliyun.com/activity/112 峰会统一报名链接:http://yq.aliyun.com/webinar/join/49 议题名称:<云数据库超大流量峰值保障最佳实践> 议题简介:本次演讲收集整理了自RDS成立至今,在历次大流量峰值中如何保障活动中云数据库备战的最佳实践,包括之前的改造,压测和扩容:期间的监控,预案执行和应急处理:之后的收容和总结.力求全链路地帮助客户安全稳定地渡过超大流量峰值,让在你备战过程中少走

优云automation实践技巧:简单4步完成自动化构建与发布

前言:本文介绍了优云是如何将运维自动化产品应用到日常工作实践中,并通过内部用户的大量使用来不断改进产品的用户体验. 各位看官,这不是一个揭发单身有为青年因同事们天天秀恩爱而受到一万点暴击伤害的故事.这里指的狗粮,不是真正的"狗粮"--当然,也不是你们认为的狗粮. 事实上,现在很多涉足产品开发的互联网公司,都会提到"吃狗粮"这一概念(出自"Eating yourown dog food -- 吃你自家的狗粮"),它的意思是公司内部员工使用自己生产的

优云运维专家浅谈运维平台选型,提速DevOps运维

现如今DevOps已经深入人心,在这个大量数据中心建设加速的时代,运维部门都在高度强调自动化,而自动化的关键即DevOps.但是,大家在推进DevOps的过程中却发现其前途坎坷. 一种方案是建设自己的开发队伍从头开始,做CMDB.做监控.做自动化.做流程.做服务目录.做大屏展现,这种造轮子方法需要强大持续的研发投入,成本极高: 第二种方案则是寻找开源产品改造,以适合自己,如CMDBBuild.Zabbix.JBPM等,但是开源社区的产品,技术风格迥异,成熟度低,技术团队的素质要求高.踩的坑很多,

优云实践:持续交付的Mesos与Docker导入篇

变革这个词在当今的数字化时代司空见惯,IT技术每过一段时间就会有一起革新,从WEB2.0.虚拟化.云计算.大数据.微架构.DevOps再到今天的容器Docker与Mesos. Docker的出现方便了应用的测试.部署.与升级,其将各种应用程序和它们所依赖的运行环境打包成标准的Container/Image,进而发布到不同的平台上运行.Docker的轻量级.快速部署.迁移方便的特性促进了DevOps的落地,借用容器,开发人员可以很方便的融入到产品的交付流程当中. Mesos是软件定义数据中心的最佳

优云实践:巧用Salt,实现CMDB配置自动发现

随着互联网+新形势的发展,越来越多的企业步入双态(稳敏双态)IT时代,信息化环境越来越复杂,既有IOE三层架构,也有VCE.Openstack等云虚拟化架构和互联网化的分布式大数据架构.所以,企业急需建立一套合适的配置管理库(CMDB),像人类"大脑"一样统一存储从基础架构到业务应用各层面的配置信息,以便协调"身体"(运维系统)各部分完成复杂的运维工作. CMDB如此重要,但又是运维中最难建设好的部分,就连很多IT运维界大佬都感叹CMDB是运维人的最痛点,他们总结C