揭开移动 APM 的五大神秘面纱

众所周知,移动应用市场总带给人们惊喜,挣钱快、开发门槛低、用户参与感强是移动时代的最大特点。根据 GigaOm 等研究报道,2013年 eBay 3600万新用户中,有40%是移动端用户,总交易额达350亿美元——相比去年增长了88%。

然而,如何在移动端更好地吸引用户则是个非常棘手的问题。因为移动用户非常专注与应用互动,在一个小小的屏幕上触发强烈的交互。用户的指尖面临着多种选择,以至于他们完全无法容忍那些设计不良或效果很差的应用。传言 iTunes 的应用商店共计有120万个应用在线上。Android 用户也有大约130万个应用供选择。用户的忠诚度需要奋力争取,而不会白白得来。

虽然境况如此,但别灰心,也没有想象中那么糟。大多情况下用户都会给那些优秀的作品巨大的报偿,《愤怒的小鸟》只用了35天就掳获了5000万用户!它的总特许权价值,包括商品等在最鼎盛时期,已经暴增至数十亿美元。移动端是一个高速发展的市场。先行者的优势是巨大的,但首先你要选择适合的移动应用性能监控工具,比如 OneAPMMobile Insight

如今的市场确实有些混乱。在这篇文章中,作者希望消除一些关于移动应用的误区,以及如何正确地使用移动 APM 工具,APM 会针对你的用户体验,帮助你从交互和性能方面更好地赢得市场。

1:应用商店排名是残酷的现实

没有完全没有 Bug 的代码这回事,任何复杂的代码都会出现 Bug,你的应用也不例外。虽然用户能接受这一现实,但他们也在寻找那些经过深思熟虑的设计,有较少的性能或崩溃问题的成熟应用。其实,遇到问题时,用户也比较容易安抚,他们能通情达理地给开发者机会,去修复 Bug。Bug 本身不可怕,怕的是错过了最佳时机。

为了避免在残酷的应用评级中失利,你需要做出足够好的产品,但更重要的是展现你能重视用户反馈,并及时解决问题的姿态。你可以通过崩溃分析和网络请求分析来了解你的应用是如何运行的,理想的移动 APM 工具要能实时显示的崩溃和堆栈跟踪。为了最快速响应,移动 APM 工具应该基于共同的模式和独特性,将进程进行分类,同时在工作组层面和独立层面提供网络请求的延迟。要留意解决性能和崩溃问题时不应丢失解析信息。

2:后端服务是性能瓶颈的黑匣子,应果断放弃

作者一直在观察移动开发者和 IT 团队的动向,一些单纯使用移动 APM 工具的开发者,只能监测到应用调用网络请求的过程。任何超出这一过程的进程都像黑盒子一样无法捉摸,而这些进程往往是性能延迟和移动应用响应缓慢的罪魁祸首。由于缺乏更多信息,移动开发者很快便归罪于后端服务。另一方面,IT 运营团队已投资了传统的 APM 解决方案,却无法区分移动端对端的交易。他们往往很难分离出由服务引起的交易延迟,更不能有效地进行防御。

现代的端到端 APM 解决方案,能提供来自移动端到后端数据库甚至存储区的背景感知,从而彻底排除性能故障的可能性。如果整个基础架构可以像玻璃那样透明管理,那么翻译过程也不会存在信息丢失,从而让移动开发和 IT OPS 团队可以专注于提升用户体验,而不是互相推脱责任。

这也是我们一次次地从客户那里得到的最迫切的需求。

3:用户像谜一般捉摸不透

如果你没有真正了解用户,那么你永远无法打造最完美的用户体验。你需要了解用户在使用应用时在哪里花的时间最多;是不是搜索出想要的结果要花费他们很长的时间,换句话说,你没有有把最匹配的信息置顶便于查找;在付款过程中他们是否在某个页面下放弃付款;你是否需要进一步优化你的应用?

针对上面问题,现代的移动 APM 工具想必会给你带来惊喜,它们可以帮助你理解用户和他们的行为。你可以在计时器中输入任意两个点,测量任何数目的步骤组合所花费的时间。例如:你可以算出用户从第一次搜索到购买产品或服务的时长。这种计算既可以针对单个用户,也可以针对集体用户。当然,你也可以算出用户在你的 App 上花了多少时间,从而帮助你更好地洞察到目标用户是哪些,他们喜欢哪些交互。然后,你可以为这些常用模式,进一步优化应用体验。

4:应用必须适用于各种各样的设备类型、操作系统类型和网络运营商/类型

你需要具体的数据来理解你的用户行为。一个好的移动 APM 解决方案会基于你的核心受众,提供详细的故障分析。包括用户喜欢什么类型的设备;用什么样的操作系统(iOS 或 Android);他们大多时候使用什么网络等。一个好的 APM 解决方案会结合营收信息来帮你确定哪些人群是你的高端用户。

有了这些宝贵信息,你可以优先开发、测试和进行应用认证。甚至可以优化应用体验,为高端用户进一步测试性能瓶颈。最后帮助你与用户的需求保持一致。

5:无从得知应用性能对业务的影响

如今市场上大部分移动 APM 工具都太过以开发者为中心。他们提供崩溃分析和后端服务的延迟响应造成性能延迟,但没多大用处。通常,渠道是业务目标的推动者,业务目标可能是更好的客户参与度、额外的收入、生产力的提高或节约成本等。

好的工具需要在移动应用中提供详尽的背景。完整的背景资料,应该包括影响应用的业务指标,比如收入、成本、客户参与度等。以图表比照的方式展示应用性能的影响,可以很好地提高开发者对这块的重视。

通过以上分析,希望能重塑你对移动应用的理解,并且以更积极的眼光看待移动 APM 的作用。

原文地址:White-Paper-Top-5-Mobile-APM-Myths

本文系 OneAPM 工程师编译整理。OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读更多技术文章,请访问 OneAPM 官方博客

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-22 00:22:43

揭开移动 APM 的五大神秘面纱的相关文章

揭开Sass和Compass的神秘面纱

可能之前你像我一样,对Sass和Compass毫无所知,好一点儿的可能知道它们是用来作为CSS预处理的.那么,今天请跟我一起学习下Sass和Compass的一些基础知识,包括它们是什么.如何安装.为什么要使用.基础语法等一些基本知识.需要说明的是我也仅仅只是刚刚接触Sass和Compass,一些高级用法等将不再本文的讨论范围之内.接触一周以后发现Sass和Compass的用处非常大,也打算今后在项目中尝试引进并应用起来.希望读完以后,你跟我一样对Sass和Compass给你带来的东西非常开心,也

揭开.NET消息循环的神秘面纱(GetMessage()无法取得任何消息,就会进入Idle(空闲)状态,进入睡眠状态(而不是Busy Waiting)。当消息队列不再为空的时候,程序会自动醒过来)

揭开.NET消息循环的神秘面纱(-) http://hi.baidu.com/sakiwer/item/f17dc33274a04df2a9842866 曾经在Win32平台下奋战的程序员们想必记得,为了弄清楚“消息循环”的概念,度过多少不眠之夜.尽管如今在应用程序代码的编写过程中,我们已经不再需要它,但是深刻理解Windows平台内部的消息流转机制依然必要.. 在早年直接用Win32/Win16 API写程序的时代,消息循环是我们必须搞懂的第一个观念.现在,不管你用是Windows上面的哪一套

EF – 4.揭开Entity Framework数据更新的神秘面纱(2)

5.6.4 <DbSet与DbContext> 介绍DbSet与DbContext中的核心属性及重要方法. 5.6.5 <数据更新的奥秘> 这一讲极为重要,因为它揭示出了Entity Framework实现数据更新的内部机理,了解这些内容,对于用好Entity Framework非常重要. 5.6.6 <一对一关联概述> 5.6.7 <一对一关联CRUD演示> 在两讲视频中,首先介绍了数据库中一对一关联表的设计规范,接着通过实例介绍了如何合适Entity F

图文并茂|为你揭开微服务架构的“神秘面纱”!

看到最近"微服务架构"这个概念这么火,作为一个积极上进的程序猿,成小胖忍不住想要学习学习.而架构师老王(不是隔壁老王)最近刚好在做公司基础服务的微服务化研究和落地,对此深有研究. 于是成小胖马上屁颠屁颠的跑过去向老王请教:"王哥,我看微服务架构这么火,我也想学,您给我讲讲啥是微服务架构呗?" 老王笑了笑说:"要想知道什么是微服务架构,你得先知道什么系统架构设计." 成小胖的理想是成为一名架构师,平时积累了不少知识,因此对"系统架构设计&

ASP.NET 运行时详解 揭开请求过程神秘面纱

对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就一步步揭开请求管道神秘面纱. 上篇回顾 在介绍本篇内容之前,让我们先回顾下上一篇<ASP.NET运行时详解 集成模式和经典模式>的主要内容.在上一篇随笔中,我们提到ASP.NET运行时通过Application的InitInternal方法初始化运行管道.ASP.NET运行时提供了两种初始化管道模

【安全健行】(4):揭开shellcode的神秘面纱

2015/5/18 16:20:18 前面我们介绍了shellcode使用的基本策略,包括基本的shellcode.反向连接的shellcode以及查找套接字的shellcode.在宏观上了解了shellcode之后,今天我们来深入一步,看看shellcode到底是什么.也许大家和我一样,从接触安全领域就听说shellcode,也模糊地知道shellcode基本就是那个攻击载荷,但是shellcode到底长什么样,却一直遮遮掩掩,难睹真容.趁今天这个机会,我们一起来揭开shellcode的神秘面

揭开RecyclerView的神秘面纱(二):处理RecyclerView的点击事件

前言 上一篇文章揭开RecyclerView的神秘面纱(一):RecyclerView的基本使用中,主要讲述了RecyclerView的基本使用方法,不同的布局管理器而造成的多样化展示方式,展示了数据之后,一般都会与用户进行交互,因此我们需要处理用户的点击事件.在ListView和GridView提供了onItemClickListener这个监听器,然而我们查找RecyclerView的API却没有类似的监听器,因此我们需要自己手动处理它的点击事件. 以下提供两种方法来实现处理Recycler

Json系列之四 揭开JsonConfig的神秘面纱 java to json

//揭开JsonConfig的神秘面纱,for bean to json JsonConfig jsonConfig = new JsonConfig(); //忽略掉bean中含后某个注解的field,不转换成json,可以多次增加不同注解 //jsonConfig.addIgnoreFieldAnnotation(Person.class);//一定是注解的类,我这里没有例子,大家可以自己做 //同上 //jsonConfig.addIgnoreFieldAnnotation("person

iOS UIView动画实践(一):揭开Animation的神秘面纱

前言 在一个看脸的社会中,不论什么事物,长得好看总是能多吸引一些目光.App同样不例外,一款面相不错的App就算功能已经被轮子千百遍,依然会有人买账,理由就是看得顺眼,于是平面设计人员越来越被重视.白驹过隙,斗转星移,人们已然不满足于静态的美感,于是动态的用户体验应运而生,平面设计人员捉襟见肘,是我们程序员出马的时候了. 这篇文章是UIView Animation的第一篇,从极简的概念开始,为大家揭开Animation的神秘面纱.我们以一个登录界面为例.美丽的太阳,婀娜的云,还有几个小山包,中间