Android开发:移动端APM性能监控

摘要

本文作者将从自己的工作经历出发,从工程师择业的角度,与观众产生共鸣,从大公司到创业公司,需要转变的思路与做事情的方法,有原则性的东西,也有真实案例与身边的故事,还会穿插一些工程师的软技能。

注:本文由IT大咖说整理自沪江高级Android开发工程师徐宜生在 极光开发者沙龙 上的演讲,原题为《移动端APM性能监控》。(文字整理比较概括简单,嘉宾完整演讲视频)

嘉宾完整视频回顾及PPT:http://t.cn/RQuyi5B

什么是APM

我今天讲的题目是移动端APM性能监控。我们把APM系统定位为对应用的性能、可靠性进行线上的监控和预警的机制,通过APM系统来完善和统一整个流程,让我们去发现分析并解决新的问题,这是整个APM存在的意义。

APM系统的作用有哪些

一、监控线上APP的质量,对崩溃和异常数据进行分析,这是APM系统最大的作用。通过这些数据来了解APP线上用户在使用时是否存在问题。

二、通过数据的分析提前预警可能大范围爆发的问题。利用数据监控发现某一段时间部分异常的数据量有上升的趋势,提前对它问题进行预防。

三、通过后端优化负载,提升服务器性能,让APP性能得到提升。

APM系统在后端的实践

APM系统是前后端都非常复杂的一整套系统。这里主要讲后端上的实践。这里列举几个APM技术上实现的难点。

1、Native、Hybrid混合编程对数据采集的影响。最重要的问题是Android系统的碎片化。

2、如果通过后端SDK的方式去监测性能,对诉主来说性能是有一定的影响,同时APP介入APMSDK的拓展性、可制定性都是我们需要考虑的。

3、APM后端数据分析,前端负责采集性能数据,采集好之后把性能数据上报给服务器,在后端做可试化的分析,从数据里面找到潜在存在的问题,这是比较大的难点。

4、性能数据监测链路太长。APP本身有很多界面以及复杂的网络请求,从服务器里面分析数据返回数据再重现展示,在链路中每一步都可能发生新的问题。

5、不同的性能日志互通比较困难。在前端和后端都有自己的日志体系,但没有方案能将这些日志串联起来。

APM系统性能监控的几个维度

第一种 内存

它直接影响了整个APP的交互体验,主要是APP使用的流畅度。除了流畅度以外还会影响到APP的内存和ROM对APP后台状态的管理。内存主要通过四方面来判断:内存峰值、内存均值、内存抖动、内存泄露。

第二种 CPU

CPU也是APM监控的重点。CPU是整个安卓手机里面比较重要的资源体系,它会影响用户使用APP的发热和卡顿。

第三种 APP启动时间

启动时间有三个,分别是冷启动时间、热起动时间,页面渲染时间。

第四种 UI性能

是比较重要的一个部分,带给用户最直观的感受。一个APP如果特别卡的话,很可能会被用户弃用。UI性能的重要性主要表现在重绘的性能、滚动帧率还有ANR以及页面渲染时间。

第五种 耗电量

现在手机电量能否支撑一天是人们最基础的需求,APP不能特别耗电。耗电主要分为耗电量和发电量。如果在使用APP的时候明显有手机发热现象,这是非常不可取的。

第六种 网络性能

现在大部分APP都要联网。联网会不可避免地带来网络上的漏洞和问题,这就需要我们去监控。

第七种 用户的行为路径

就是一个用户在使用这个APP时做的操作。通过监测用户的使用路径可以了解用户都使用了哪些方面。

APM平台的性能监测

APM平台分为两种方式,一个是客户端的性能监测SDK,一个是PC端的性能监测,它们各有利弊。线上阶段可以通过客户端的性能监测SDK,利用APP做性能的监控。优点是不受设备限制,缺点是宿主APP代码有侵入,对性能有一定的影响。在内测方面会通过PC端的性能监测,主要借助APP的命令做性能的监控。它的有点是不影响性能,并可以测试竞品,做出对比。但是唯一的缺点就是它需要连接APP,限定了做测试的范围。

关于APM的进一步优化

1.与其他相结合。结合AI,结合现在比较火的人工智能的方式去分析数据的Pattem。借助AI找出数据之间的观点,帮助我们更高效地分析性能问题。

2.本地异常数据的监控算法。如果APM的SDK导致了整个APP的性能问题,我们需要有一些调度算法,更智能地去控制。

3.服务端指令控制。服务端指令控制是收集日志更精确的方法,通过服务端指令控制,利用服务端主动搜索信息或打开开关做监控,了解到更详细的性能信息来排查问题。

4.自动化测试平台对接。APM系统在内测方面会通过PC端的方式做性能监控,也利用APP方式做性能监控。

今天的分享就到这里,谢谢大家!

编者:IT大咖说,转载请标明版权和出处

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 141,821评论 18 609
  • 所谓『APM』,就是Application Performance Management的简称,我们利用这个系统来...
    Android_Cloud阅读 7,010评论 2 20
  • 不记得是什么时候开始一根一根地把柴火搬运到灶膛前帮忙生火,特别是冬天,那儿最暖和,而埋在柴灰里煨熟的地瓜是最诱...
    听花开花落阅读 372评论 0 1
  • 当你一次又一次走在人生的谷底以自卑者的心态去仰视一切即使有一天你成为被瞻仰的对象你也早已忘了那发自内心的喜是什么感觉
    12听你的阅读 41评论 0 0
  • 佛門對聯:20.待人處世 近代淨空法師指出:修學的基礎是三福,待人依六和,處世修六度,遵普賢願,歸心淨土,佛之教化...
    淡定之絕塵西歸阅读 626评论 0 1