9-2崩溃问题

1.常见的崩溃类型

  • ANR:主线程5秒内没响应
    app主线程发起一次网络请求,如果这个网络请求5秒内没有得到回应,系统就会检测到主线程5秒内没有得到应答,系统会弹出anr弹窗,提示应用无法响应,是否停止应用。
  • Force Close:未捕获的Android vm异常
    比如页面列表index计算错误,数组越界,导致应用崩溃。
  • Crash:native crash
    封装的底层库崩溃导致的

2.基本测试方法

2.1发布前

  • monkey测试+AppCrawler自动遍历
  • 结合各类场景用例

2.2发布后

  • 埋点 注册一个异常处理的逻辑
  • 介入外部sdk,如bugly

3.anr数据的收集:

手机的/data/anr/traces.txt文件记录了anr和各种各样的crash问题。
adb pull /data/anr/traces.txt
注意:如果应用安装了第三方的sdk,如bugly,traces.txt文件不会记录崩溃信息,此时需要去服务端查询崩溃信息。

4.一些发生崩溃的场景

4.1弱网下接口返回异常导致的崩溃

  • 弱网( 完全超时 2G 3G)
  • null返回
  • 字段类型变更

    1.接口返回null值或默认值,查看应用是否崩溃。接口的选择:模拟重要的服务,通过线上观测哪些服务经常出问题
    2.弱网下,只用关注原生页面的加载情况,H5页面不用关注,查看应用是否会发生崩溃。
    3.弱网下,页面返回前进后退,是否触发崩溃。
    4.更换接口字段类型,是否触发崩溃
    5.打开新页面,快速返回,异步处理问题。

4.2逻辑问题

打开新页面再快速返回、异步线程问题
横竖屏切换,前后台切换

示例:弱网下,进入一个页面然后返回。此时后台的进程依然在发起网络请求,当请求完成后,页面已经关闭。此时请求会针对一个空对象绘制页面,触发空指针异常
接口返回null值,应用是否能够处理,而不会触发崩溃。

猜你喜欢

转载自www.cnblogs.com/csj2018/p/9941648.html