近日, 以“质量无界 测绘未来”为主题的中国互联网测试开发大会Testing Summit China(简称 MTSC)在上海宝华万豪酒店成功举办,大会汇集了全国互联网行业的测试、研发工程师,以交流软件质量标准、保障体系和测试研发技术为目的,议题内容涵盖国内外前沿技术落地、业界工程最佳实践经验等。

会议上,友盟+高级产品专家、数据传承官陈新祥带来了“如何保证移动应用的稳定性”的主题分享。

01

移动应用的崩溃现状

移动应用的稳定性、性能与体验十分重要,直接影响着用户对产品本身的体验。根据友盟+《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%。

但不论所处行业是否相同,产品用户体量是否一致,保证产品稳定性都应以业务效果、业务数据为落脚点。想要有稳定的性能体验,就要将其加入到产品的研发阶段、测试阶段、灰度阶段以及全量阶段,并从中找到业务与应用性能稳定性的平衡点。

知之非艰,行之惟艰。选取合理的平衡点并非易事,在此过程中,项目团队既要保业务,又要保时间,对团队来说,这是极大的挑战。

02

移动应用的共性问题

要解决问题,首先要知道问题所在。当前移动应用面临着许多共性问题,例如Android市场的碎片化,以及崩溃问题的定位困难,类似的共性问题虽然具体,却难以轻易解决。

以U-APM曾经服务过的客户为例,其App被用户反馈页面加载缓慢,但这并不属于崩溃,原因也难以定位。除此之外,由内存泄漏等原因造成的崩溃问题,测试阶段并不能全面覆盖和发现,这对上线后的实时采集和问题复现有着极高要求,其中涉及多个技术难点,亟需高效便捷的应对解决。

首先是采集方面。一般来说,上线后的应用需要具备多种基础核心采集能力,以采集Android系统中Java层的崩溃与Native层崩溃,以及iOS系统中的Objective-C层或Swift层崩溃。除此之外,还需具备捕获ANR、自定义异常、卡顿等的能力。

要想全面捕获与采集种类繁多的问题并不容易,类似设备重启环境下的异常类型崩溃与设备兼容性所产生的崩溃问题,就难以被常规方式所采集。同时,对于用户使用Android APP 过程中出现的提示应用无响应的ANR问题,传统读取系统trace日志的方式,并不能将其全面捕获。

其次是聚类方面。要将不同类别错误、不同版本、新旧问题聚合到一起,中间还存在着重重困难。

另外,陈新祥发现在崩溃等问题修复中存在这样的问题:应用崩溃往往会重复性出现。老版本解决了的问题,却又在新版本出现,在反复修复重复问题后,发现过往崩溃异常原因与最终解法可沉淀继承比例,竟高达70%、80%。

上述情况的产生,主要源于团队内部的人员流动所导致的信息交换效率过低。某些研发人员面对问题时,很可能会以为该问题已被自己或他人解决,殊不知,问题依然存在。

在采集与聚类之外,还有测试方面的问题。

目前,大部分研发测试团队存在有产品快速适配特定设备的需求的同时,还会经常收到来自客户即时的App崩溃反馈,两者往往都需要调用真机参与测试。在移动应用端,真机测试是许多测试人员使用最多的场景。但传统真机测试流程相对繁琐,效率因此较低。

针对上述多种问题,友盟+整合了产研实践过程中应用性能问题的采集、监控、发现、流转、定位,以及测试环节,将其沉淀输出为“U-APM应用性能监控平台”,以解决产研团队在整个开发周期与线上运营阶段所面临的诸多痛点。

03

保障移动应用稳定性的强力工具

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更像是新时代的智能警察,为优质的用户体验保驾护航。

更多产品了解及免费使用请点击【阅读原文】

那些崩溃率低于万分之一的独角兽APP都作对了什么?相关推荐

  1. app的崩溃率标准,优秀,合格,轻微隐患,严重隐患

    iOS的崩溃率高于Android?来自听云的数据告诉你真相 移动互联网和智能手机的快速发展,让很多开发者加入到创业大潮中,不同类型的移动应用出现,为我们的生活增加了便利,带来了欢乐,也学到了更多的知识 ...

  2. 2016 移动应用质量大数据报告:游戏崩溃率远高于应用

    2016 年,在"互联网+"战略的推动下,移动互联网与越来越多传统行业的结合更加紧密,用户使用移动互联网的工作场景.生活场景.消费场景都在悄然发生着改变, 移动互联网产品在智能硬件 ...

  3. 解决安卓11崩溃率高的问题

    我们上线项目中,android11的崩溃率一度占到所有机型的67%. 连夜加班定位问题,发现android将默认的分区权限给关闭了,官方的解释是不推荐使用分区存储.但我们目前接入了广告等SDK,猜测会 ...

  4. [Android]如何做一个崩溃率少于千分之三噶应用app(7)-跨module交互

    以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章. [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表 我也建立了一个关于Android架构学习的群,里 ...

  5. [Android]如何做一个崩溃率少于千分之三噶应用app(15)-View分发module架构

    以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章. [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表 这个系列的有关架构的概念,适合有大概 三年以上A ...

  6. [Android]如何做一个崩溃率少于千分之三噶应用app(19)-重新认识AndroidManifest

    大家好,我系苍王. 以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章. [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表 我们最开始开发需要了解的除了 ...

  7. [Android]如何做一个崩溃率少于千分之三噶应用app(22)-组件化路由跳转

    大家好,我是苍王.以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章. [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表 大家应该有看完我的第十二编简书 ...

  8. [Android]如何做一个崩溃率少于千分之三噶应用app(17)-组件化SDK

    以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章. [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表 如果一开始关注我的同学,应该有看过这一篇技术[A ...

  9. [Android]如何做一个崩溃率少于千分之三噶应用app(9)-Small插件化

    以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章. [Android]如何做一个崩溃率少于千分之三噶应用app(1)-module工程架构 [Android]如何做一个崩溃 ...

最新文章

  1. C++/C++11中std::exception的使用
  2. 支持国内版Office 365的PowerShell模块现已发布
  3. cli3解决 ie11语法错误 vue_vue-admin-template基于vue2的极简后台管理系统
  4. LINUX:GRUB破解root密码【远程不可
  5. Set Up a Simple Knowledge Base
  6. 按下什么使物体复位_路医生说丨打哈欠、吃苹果把“下巴”弄脱臼了,自己能复位么?...
  7. netty源码解解析(4.0)-2 Chanel的接口设计
  8. 【数据库】数据库系统的结构(概念篇详解)
  9. python类有什么用_python 定制类 有什么用
  10. sqlserver中 事物 索引及视图
  11. 计算机视觉模型、学习和推理
  12. 保温杯哪种材质最好_哪种保温杯质量好?
  13. 用Python识别验证码
  14. FormData提交数据
  15. github随时同步代码_原来用IntelliJ IDEA操作GitHub这么方便啊
  16. javaweb实训第二天上午——jQuery笔记
  17. mybatis与Spring整合配置文件
  18. 异步任务利器Celery(一)介绍
  19. C/C++如何整行输入
  20. oracle赋权directory,ORACLE DIRECTORY目录管理步骤

热门文章

  1. 家庭教育的重要性,家庭教育是一切教育的基石
  2. IOS 插屏广告弹窗
  3. 游戏客户端性能(内存)【前篇】
  4. 自定义/修改微信二维码样式
  5. 图片的毛玻璃效果学习
  6. long 型应该加上 l或者L
  7. 苹果怎么换行打字_微信悄悄上线新功能!安卓苹果都有,很多人还不知道……...
  8. ping: unknown host www.baidu.com 解决办法
  9. java学习之SpringBoot2
  10. Python3实现斐波那契数列.md