“闪退”问题的治理

问题描述

“闪退”的定义

一般意义上,“闪退”是指 App 非正常退出。

闪退日志

mPaaS 客户端框架上报的闪退日志特指由程序严重错误产生的崩溃(crash)行为日志。

  • Android 闪退日志中的主要内容:

    • MonitorPoint_Crash:表示该条日志为程序崩溃行为日志。

    • Crashed thread call stack:记录了直接崩溃线程的程序调用栈。

    • 其他现场信息:包括问题发生的机型、问题现场页面、IP 和其他基本信息。

  • iOS 闪退日志的主要内容:

    • 崩溃客户端信息。

    • 崩溃日志文件。

“闪退”问题治理原则

“闪退”属于严重影响用户体验的一类问题,闪退问题可能有多种原因导致。在 mPaaS 框架下,可追踪的闪退类型问题指 Android 应用层的程序崩溃行为、 iOS 应用层面的程序崩溃行为。需要注意的是,原生层面的崩溃、OS 层面的强制关闭和其他意外情况等除外,这类问题不能被框架内的 crash handler 接管,因此框架层面无法感知和上报。

治理“闪退”问题的基本步骤

  1. 在内部测试、兼容性测试和灰度测试等早期阶段发现和甄别闪退问题。

  2. 版本发布后的线上闪退数据监控。

  3. 闪退日志的归类和集中分析,根据闪退数量及原因决定不同的治理策略。

  4. 对于高频问题,根据闪退日志和分析结果尝试复现和修复。

  5. 在下一轮的测试中要覆盖问题场景,并验证修复结果。

  6. 对于偶发、低频的闪退事件有一定的容忍度。

  7. 需要长期追踪闪退问题的发生率,包括针对不同类别闪退问题的受影响用户数、“闪退”次数的追踪。

闪退日志仅为崩溃问题的线程终态快照,并不能完整反应问题发生的全程。在问题分析中,仅根据闪退日志往往并不能直接指出崩溃事件的根本原因。