Crash 流程跟踪
前期准备
- understand 源码查看软件
- android 6.0 源码,基于art 虚拟机分析
UncaughtExceptionHandler
在Android开发中,常常会出现uncheched Exception 导致程序的crash; 我们可以使用Thread.UncaughtExceptionHandler来进行处理, 以便提供良好的用户体验,并对出错的信息进行收集,以便对程序进行改进,提高程序的健壮性.
起因
问题:
默认开启UncaughtExceptionHandler crash 异常是否对别的功能/或者第三方有影响…
结论:
UncaughtExceptionHandler 以最后一次注册的为准… 是覆盖替换逻辑/ 但是我们可以在设置的时候保存之前的handler, 逐层次的向下/向上层传递… 类似栈;这样可以确保按照注册的顺序倒序执行; 最终可以调用系统运行时第一次注册的,也就是系统默认处理的逻辑.
problem: 透过现象看本质.
系统设置默认处理崩溃的时机
应用crash之后如何触发执行UncaughtExceptionHandler.unchechedException
UncaughtExceptionHandler.unchechedException 系统默认的处理方式
异常
Error: 运行时系统问题
RuntimeException: 开发问题
checked exception: 不是程序本身的错误,而是在应用环境中出现的外部错误