文档章节

移动APP性能——如何保证高质量

糖糖豆豆
 糖糖豆豆
发布于 2014/10/11 11:17
字数 1871
阅读 176
收藏 10

Klaus Enzenhofer在Web性能优化和用户体验管理方面有多年经验及专业知识。他在dynaTrace软件公司的卓越团队中心担任技术战略专家。身居这一职位,他推进了dynaTrace APP性能管理解决方案和Web性能优化工具——dynaTrace AJAX 版的开发。他通过在Tiscover有限公司开发和运行大规模的门户网站,积累了大量web和性能方面的经验。

?

  加速之必要
   不考虑技术,有一件事是肯定的——人们似乎总是希望可以更快。根据各种各样的研究,现在用户只愿意等待一个web应用程序加载三秒或更短的时间,超过的话,他们就会变得越来越不耐烦或者干脆换一个应用程序。这些高期待不断被压到移动web之上;现在还压到移动App上。就像Web,现今的移动移动app都有它们自己的性能问题并需要做出一些微调。最新研究表明,过去,在手机上获取app时,47%的移动用户主要是抱怨速度慢且反应迟钝。App在苹果的app商店上被谴责 “慢得可怕”。对于Facebook的 iPhone 应用程序,38,000条评论中有超过21,000的用户只给app一星的评价。用户多数表示app慢,死机,“一直在加载”。
   “移动app根据它们在app商店的排名而生存或死亡……排名不佳,用户采用率就降低” 佛里斯特研究公司的Margo Visitacion这么说道。这或许就是为什么80%的品牌iPhone,Android和Blackberry应用程序无法达到1,000的下载量的原因。拙劣的移动app性能直接影响用户获取和用户维系。那么该做些什么以保证你的移动app性能尽可能的强大呢?

  通过捕捉现实中移动app性能“获得真实信息”
   移动app性能首先,最重要的是:为了真正理解移动app性能,你必须衡量你的真正用户正在体验的性能。在数据中心的模拟机上进行测试可以有所帮助但是它基本和你的真实终端用户的真正体验无关。你的数据中心和你的终端用户间有许多影响性能的变量因素,包括云,第三方服务/集成,CDNs,移动浏览器和设备。衡量真实用户是在巨大的复杂物上精准评估性能并确定一个性能提升的基准线的唯一方法。衡量你的真实用户体验的性能可以让你就移动app(关键参数方面的,如你客户使用的所有的地域,设备和网络)性能做出报告。
   现在,移动app测试和使用SDKs监控以提交本地app可以让你快速轻松地鸟瞰你所有客户的移动app性能。 
   负载测试从终端用户角度看也很重要,尤其是在开始一个app前,综合测试网络可以让你在不同的条件下评估性能水平。

  理解拙劣性能的商业影响
   确定移动app性能问题以及它们对转化的影响很重要:比如,你会注意到移动app的响应时间增加与转化的减少息息相关。这样你就可以进行分类,基于一些考虑(如:我的哪些客户,多少客户受到影响了)按轻重缓急解决问题。如果一个地区的流量份额很高但有问题,而另一个地区的份额较少,那你就知道该优先解决哪个性能问题了。

  确保第三方集成有效
   就像web应用程序,许多移动app为了给终端用户提供更丰富更满意的体验吸收了大量第三方服务的内容。一个实例便是社交媒体集成,如Twitter就被集成到奥林匹克移动app中了。很不幸,如果你依赖第三方服务的话,你就会完全受限于他们的性能特点。在使用一个第三方集成的app前,你需要确保集成无缝顺利且可以提供你期待的性能。此外,你还要确保一直监控着第三方性能且你的app被设计得可以完好地降级以防第三方的问题。

  让你的移动APP快起来
   在这个飞速运转的移动app世界有一句格言比任何时候都真——快比慢好。你可以使用一些特定工具和技术让你的移动app变得更快,包括以下:
   ??优化缓存 – 让你的app数据完全脱离网络。对于内容多的app,设备上的缓存内容可以通过避免移动网络和你的内容基础设施上的过多障碍以提升性能。 
   ??将往返时间最小化 – 考虑使用一个可以提供无数能够加快你的app服务的CDN,包括减少网络延迟的边缘缓存,网络路由优化,内容预取,以及更多。 
   ??将有效荷载规模最小化 – 专注压缩,通过使用任意可用的压缩技术减少你的数据的规模。确保图像规模适合你最要的设备段。同样,确保你利用压缩。如果你有要花很长时间加载的内容,那么你可以一点一点儿的加载。你的app可以在加载时使用该内容而不是等整个加载完成后才使用它。零售app经常使用该技术。 
   ??优化你的本机代码 – 写得不好或全是bug的代码也会导致性能问题。在你的代码上运行软件或检查代码以找出潜在问题。 
   ??优化你的后端服务性能 – 如果对你的app进行了性能测试后你发现后端服务是性能削弱的罪魁祸首,那么你就不得不进行评估并决定该如何加快这些服务。

  总结
   智能手机用户当然也是“快比慢好”,他们期待他们的app可以飞快。几乎每隔一段时间,移动运营商和智能手机制造商都要宣布更快的网和设备,但不幸的是,移动app本身的速度却跟不上。
   最主要的原因是一组截然相反的目标使得实现飞速性能变得很困难。移动app开发者总希望提升速度的同时可以提供更丰富的体验。需要更多内容和特点能够快速地覆盖宽带,内存和计算机能力。 
   本文给出了一个简短的本地移动app的性能最佳实践的例子。性能调整的空间很大,但错误的空间同样也很大。因此,早点测试你的app,绝不要药听天由命。记住——快总比慢好。

版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/2014910152013.html

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

 

 

© 著作权归作者所有

共有 人打赏支持
糖糖豆豆
粉丝 6
博文 80
码字总数 116914
作品 0
普陀
原生App VS 移动Web App

原生App是专门针对某一类移动设备而生的,一般是通过网络商店或者卖场来获取并直接安装在设备里使用。 移动Web App一般是借助网络利用设备上的浏览器来运行,不需要下载安装。 比较: 原生A...

我只有这一个名字
2013/01/24
0
0
推进"五通一平":手淘技术"三大容器 五大方案"首次整体亮相 百川开放升级

在云栖大会上,马云提出五个“新”,新零售、新制造、新金融、新技术和新能源,称将对各行各业造成巨大的影响,成为决定未来成败的关键。而五个新的实现,也必须是各行各业共同推进,整个生态...

阿里百川
2016/10/15
8
0
OSC 第 131 期高手问答 -- 移动 APP 性能评测与优化

OSCHINA 本期高手问答(10 月 24 日 - 10 月 30 日) 我们请来了@hanahliao(廖海珍)为大家解答关于移动 APP 性能评测与优化方面的问题。 @hanahliao(廖海珍),南开大学计算机科学与技术专业...

局长
2016/10/24
2.9K
27
关于移动端动态化方案的再思考——Weex

在移动端日益兴起的今天,APP 本身的灵活性、迭代更新的周期、成本优化等动态性问题,成为很多移动应用的客观需求。而针对动态性,开发者们也探索出一些有力的解决方案:Hybrid 方案、结构化...

OSC源创君
07/09
0
0
360移动技术开放日 聚焦移动前沿技术(有福利)

在手机已经成为我们时刻离不开的生活必需品的今天,移动开发技术变得尤为重要。 本期360互联网技术训练营邀请360顶尖Android团队与快手的特邀嘉宾分别从APP性能监控、组件化,以及AR、特效方...

ZVAyIVqt0UFji
08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

自己手写一个 SpringMVC 框架

前端框架很多,但没有一个框架称霸,后端框架现在Spring已经完成大一统.所以学习Spring是Java程序员的必修课. Spring 框架对于 Java 后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,...

别打我会飞
2分钟前
0
0
01-《Apache Tomcat 9》之文件索引

《Apache Tomcat 9》是《看Apache官方文档学英语》的第一个专栏!让我们一起在看文档的过程中学英语,在学英语的过程中夯实技术! Documentation Index - 文件索引 Introduction - 介绍 This...

飞鱼说编程
3分钟前
0
0
最近

20181016最近在熟悉业务 关于money的 要涉及到流程中转同步 这个点感觉 业务大于技术 关于业务性的内容 还是要把自己及时清零的好 我们需要好好的梳理下业务内容 业务作为导向 技术提供解决方...

JAVA码猿
13分钟前
0
0
JDK1.8HashMap源码分析

HashMap和Hashtable的主要区别是: 1. Hashtable是线程安全,而HashMap则非线程安全,Hashtable的实现方法里面大部分都添加了synchronized关键字来确保线程同步,因此相对而言HashMap性能会高...

小小明童鞋
23分钟前
12
0
以Redis为例,详谈分布式系统缓存的细枝末节

前言: 在分布式Web程序设计中,解决高并发以及内部解耦的关键技术离不开缓存和队列,而缓存角色类似计算机硬件中CPU的各级缓存。如今的业务规模稍大的互联网项目,即使在最初beta版的开发上...

Java干货分享
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部