• App稳定性优化及Crash率破解之道


    在开发过程中我们要对app的稳定性有个正确的认识,并且要知道从哪些维度对app稳定性进行有效的优化.这里我们主要是对Crash进行介绍.

    一.Crash 的相关指标主要包含以下几点:

    1. UV、PV Crash率  2.Java、Native Crash率 3.启动、重点流程Crash率 4.增量、存量Crash率

    Crash 业界定义方式:

    1.UV crash主要是针对用户使用量的统计;统计一段时间了所用用户使用过程中发生崩溃的占比      

    2.PV使用户是用频率的统计;统计一段时间之内所有用户的启动次数当中发生崩溃的占比               

    3.启动Crash率在启动阶段app还没有完全打开就发生崩溃的占比 启动Crash是Crash分类中最严重的一类 对于客户端Crash要有容灾策略

    UV Crash率=Crash UV/DAU

    UV方便评估用户影响范围,结合PV

    4.增量 存量Crash统计:

    对于增量Crash的定义 :新增的Crash;存量Crash:老版本存在的Crash

    对于Crash解决策略: 优先解决增量Crash 持续跟进存量Crash

    对于Crash 率的评价:一个app 的java nav崩溃率之和在千分之二以下是合格的Crash率万分位才算是优秀的标准.

    二.Crash 关键问题:

    1.通过复现crash现场:

    堆栈  设备  系统版本  进程  线程名  Logcat

    前后台 使用时长 App版本 小版本  渠道

    cpu架构 内存信息 线程数 资源包信息  行为日志

    2.APM监控平台聚合展示

    crash top机型  系统版本  分布版本 区域  

    crash 起始版本 上报趋势 是否更新 持续 量级 

    3.Ceash整体结构层次的划分:

       采集层:错误堆栈 设备信息 行为日志 其它信息 

       处理层:数据清洗 数据聚合 维度分类 趋势对比

       展示层:数据还原 维度信息 起始版本 其它信息

       报警层:环比 同比 邮件 IM 电话

    三.Crash治理方案(主要介绍容灾方案的建设):

      1.安全模式

        根据crash信息自动修复,多次启动失败重置app

        严重bug可阻塞性热修

        异常熔断:多次请求失败则主动拒绝

    2.容灾的方案流程:

       功能开关---统跳中心---动态修复---安全模式

  • 相关阅读:
    C++ —— IO流
    基于Rust语言,和WebAssembly技术,与JavaScript结合,的具体应用场景
    Audio signals 音频信号
    Revit中曲面墙的开洞方法及【一键开洞】操作
    styleSwin的各种bug
    LabVIEW Modbus通讯稳定性提升
    IEC60068-2-5太阳辐射模拟试验测试
    一文熟悉Latex论文排版
    pycharm如何优雅的添加gitignore以及查看不同文件状态对应的颜色
    Vulnhub: Masashi: 1靶机
  • 原文地址:https://blog.csdn.net/androidzsp/article/details/126671337