您的位置:首页 > 移动开发 > Android开发

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

2016-08-24 17:04 288 查看

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: 不是程序本身的错误,而是在应用环境中出现的外部错误



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



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



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



more

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android Uncaught Crash