如何借用第三方 APM 工具, 为移动应用保驾护航
作者:友盟+U-APM 项目组
移动应用的稳定性、性能与体验十分重要,直接影响着用户对产品本身的体验。根据友盟+《2021 年 Q1 移动应用性能体验报告》显示,目前移动应用整体崩溃率为 0.29%,其中 Android 端崩溃率为 0.32%, iOS 端崩溃率为 0.10%。当某款应用 iOS 的崩溃率超过 0.8%、Android 崩溃率超过 0.4%时,活跃用户将呈现明显的下降态势。
页面加载速度也会对客户满意度带来影响。页面响应时长每增加一秒,用户满意度就将降低 16%,而如果页面响应时长超过 3 秒,部分用户甚至会直接退出。
基于上述数据,对目前市面上的 App 而言,其崩溃率需低于 0.10%,方能达到优秀标准。
不同的行业基于产品形态、技术架构不同,其应用崩溃率也存在差异。以游戏行业为例,其行业性质特殊,加之游戏产品本身也较为复杂,所以崩溃率远远高于其他行业。而新闻、影音、阅读等应用则相对崩溃率较低。此外,不同日活量级的 App,应用崩溃率也参差不齐。日均活跃用户数量超 500 万的常用 App,崩溃率大多低于 0.1%;而日均活跃用户数量较低的 C 端 App,基于各方面的原因,稳定性表现则相对较差,某些 App 崩溃率甚至高达 3%、4%。
但不论所处行业是否相同,产品用户体量是否一致,保证产品稳定性都应以业务效果、业务数据为落脚点。想要有稳定的性能体验,就要将其加入到产品的研发阶段、测试阶段、灰度阶段以及全量阶段,并从中找到业务与应用性能稳定性的平衡点。
知之非艰,行之惟艰。选取合理的平衡点并非易事,在此过程中,项目团队既要保业务,又要保时间,对团队来说,这是极大的挑战。
移动应用的共性问题
要解决问题,首先要知道问题所在。当前移动应用面临着许多共性问题,例如 Android 市场的碎片化,以及崩溃问题的定位困难,类似的共性问题虽然具体,却难以轻易解决。
以友盟+ U-APM 曾经服务过的客户为例,其 App 被用户反馈页面加载缓慢,但这并不属于崩溃,原因也难以定位。除此之外,由内存泄漏等原因造成的崩溃问题,测试阶段并不能全面覆盖和发现,这对上线后的实时采集和问题复现有着极高要求,其中涉及多个技术难点,亟需高效便捷的应对解决。
首先是采集方面。一般来说,上线后的应用需要具备多种基础核心采集能力,以采集 Android 系统中 Java 层的崩溃与 Native 层崩溃,以及 iOS 系统中的 Objective-C 层或 Swift 层崩溃。除此之外,还需具备捕获 ANR、自定义异常、卡顿等的能力。
要想全面捕获与采集种类繁多的问题并不容易,类似设备重启环境下的异常类型崩溃与设备兼容性所产生的崩溃问题,就难以被常规方式所采集。同时,对于用户使用 Android APP 过程中出现的提示应用无响应的 ANR 问题,传统读取系统 trace 日志的方式,并不能将其全面捕获。
其次是聚类方面。要将不同类别错误、不同版本、新旧问题聚合到一起,中间还存在着重重困难。
另外,在崩溃等问题修复中存在这样的问题:应用崩溃往往会重复性出现。老版本解决了的问题,却又在新版本出现,在反复修复重复问题后,发现过往崩溃异常原因与最终解法可沉淀继承比例,竟高达 70%、80%。
上述情况的产生,主要源于团队内部的人员流动所导致的信息交换效率过低。某些研发人员面对问题时,很可能会以为该问题已被自己或他人解决,殊不知,问题依然存在。
在采集与聚类之外,还有测试方面的问题。
目前,大部分研发测试团队存在有产品快速适配特定设备的需求的同时,还会经常收到来自客户即时的 App 崩溃反馈,两者往往都需要调用真机参与测试。在移动应用端,真机测试是许多测试人员使用最多的场景。但传统真机测试流程相对繁琐,效率因此较低。
针对上述多种问题,友盟+整合了产研实践过程中应用性能问题的采集、监控、发现、流转、定位,以及测试环节,将其沉淀输出为“U-APM 应用性能监控平台”,以解决产研团队在整个开发周期与线上运营阶段所面临的诸多痛点。
U-APM:保障移动应用稳定性的强力工具
U-APM 作为免费的一站式应用性能监控平台,集 App 稳定性监控、性能监控和云真机测试平台为一体,很大程度上能解决移动应用的共性问题。
以采集为例,U-APM 能够捕获包括产品信息、设备层与环境层的运行状态等信息,从而快速地分析出导致 App 崩溃的主要原因。针对 ANR,U-APM 通过监控整个系统信号,抓取事件并生成相应的日志信息之后,再吐还给信号,从而显著提高了系统 ANR 的捕获率,以快速定位错误根源。
而针对问题聚类和智能诊断,U-APM 则是参考了阿里集团内部的聚合算法和过往经验,将所发现问题的沉淀原因、曾经的解法等相关信息汇聚为方案交由研发人员的思路,将错误摘要相同的错误日志所聚合并展示其详细信息,以帮助产研团队快速定位问题、解决问题。
另外,面向测试环节,U-APM 云真机在提供 ADB 调试、WEB 远程调试、扫码、抓包等常规测试功能之外,更是提供了海量 Android 、iOS 真机,以满足测试人员发版前测试、复现问题等真机测试需求。与此同时,真机如果在线上发生崩溃问题,U-APM 会自动采集崩溃信息,提供详尽的崩溃报告协助开发、测试人员筛查,从而帮助他们找到测试阶段产生的崩溃原因,节约大量购机成本的同时,还显著提升了效率,真正实现监控测试全流程深度打通。
基于保证业务的出发点,从始至终都应围绕谈论效率,这种对效率的执着,也反映在了 U-APM 的内部流转机制上面。内部流转基本分为两层:
第一层是从问题识别到监控流程的通知到位。除钉钉外,U-APM 还支持邮箱、企业微信、飞书等多种触达方式。
第二层则是以集成内部项目软件或 API 的方式,将具体的崩溃问题直接流转给相应的技术同学进行排查
值得一提的是,U-APM 同时对阿里内部和外部开放,自 U-APM 平台落地以来,阿里内部的诸多产品都在使用。基于 U-APM 出色的产品力,其支持的 App 整体崩溃率水准均可低于 0.10%这一优秀标准,在研发效能上也有提升 3 倍(300%)效果。
自去年 U-APM 对所有开发者免费开放后,为开发者带来 10%-40%的效率提升。目前,U-APM 已对外服务超 2 万款应用,以及应用背后的上万家客户。
埃利德·尤德考斯基(Eliezer Yudkowsky)曾说过:“任何能带来优于人类智能的东西,(其形式可能为人工智能,人脑-计算机交互界面,基于神经科学的人类智能提升),都会在改变世界的竞赛中占据领先地位。再没有什么能与此相提并论。”而在数智化突飞猛进的当下,U-APM 更像是新时代的智能警察,为优质的用户体验保驾护航。
点击体验:友盟+U-APM:https://www.umeng.com/apm?&utm_source=w_infoq_pc_0728
评论