技术分享之崩溃处理流程以及触发时机

Crash 流程跟踪

前期准备

  • understand 源码查看软件
  • android 6.0 源码,基于art 虚拟机分析

UncaughtExceptionHandler

在Android开发中,常常会出现uncheched Exception 导致程序的crash; 我们可以使用Thread.UncaughtExceptionHandler来进行处理, 以便提供良好的用户体验,并对出错的信息进行收集,以便对程序进行改进,提高程序的健壮性.

起因

问题:

默认开启UncaughtExceptionHandler crash 异常是否对别的功能/或者第三方有影响…

结论:

UncaughtExceptionHandler 以最后一次注册的为准… 是覆盖替换逻辑/ 但是我们可以在设置的时候保存之前的handler, 逐层次的向下/向上层传递… 类似栈;这样可以确保按照注册的顺序倒序执行; 最终可以调用系统运行时第一次注册的,也就是系统默认处理的逻辑.

problem: 透过现象看本质.

  1. 系统设置默认处理崩溃的时机

  2. 应用crash之后如何触发执行UncaughtExceptionHandler.unchechedException

  3. UncaughtExceptionHandler.unchechedException 系统默认的处理方式


异常

Error: 运行时系统问题

RuntimeException: 开发问题

checked exception: 不是程序本身的错误,而是在应用环境中出现的外部错误

Throwable类结构

默认处理程序的设置以及崩溃的触发时机

CrashThreadProfile


系统设置默认崩溃处理程序以及触发崩溃后的引导流程

ThreadLife


崩溃后系统的默认处理流程

CrashDefault


more

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值