稳定性问题简述
Android 的稳定性是 Android 性能的一个重要指标,它也是 App 质量构建体系中最基本和最关键的一环;如果应用经常崩溃,或者关键功能不可用,那显然会对我们的留存产生重大影响
所以为了保障应用的稳定性,我们首先应该树立对稳定性的正确认识
从表现来看有:
- 死机重启
- 自动关机
- 无法开机
- 冻屏
- 黑屏
- 闪退
- 无响应
等等情况
这也就说明了稳定性问题比较杂,且很多是概率性问题,没有统一处理方式,需要针对具体的问题,具体分析
一般来说:必现的问题较易解决,针对当前代码添加各种调试 log ,一步步 debug 去定位,过程虽然可能慢点,但一般都会解决
针对偶发性的概率问题,则较为麻烦,依赖于大量的测试复现,然后统计 分析当前抓取到的 events 、system 等 log 中,找到复现的步骤,然后去定位;且针对与这种概率问题,最好能够拿到当时的现场,所以有时候需要将 tombstone 或者 ANR 、crash 转为 ANR 去处理
从技术层面来划分:
无外乎两大类:长时间无法执行完成(Timeout) 以及异常崩溃(crash). 主要分类如下所示:
- ANR
- Watchdog
- Crash、界面、流程异常
- Tombs