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

Android开发:移动端APM性能监控_第1张图片

摘要

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

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

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

Android开发:移动端APM性能监控_第2张图片

什么是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,限定了做测试的范围。

Android开发:移动端APM性能监控_第3张图片

关于APM的进一步优化

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

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

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

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

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

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

你可能感兴趣的:(Android开发:移动端APM性能监控)