稳定性二:JE流程及处理方法
发布时间
阅读量:
阅读量
1. 异常抓取原理
- 所有上层应用均通过Zygote fork机制生成,具体可分为system_server进程与常规应用进程
- 然而并非所有异常均可提前预测,那些未被处理的异常将逐级向上传递,若线程未能捕获该异常,也将逐级向上传递,最终由虚拟机的默认异常处理机制进行处理
- 在进程初始化阶段会配置未捕获异常的处理器,此配置过程在RuntimeInit.commonInit()函数中完成,在zygoteInit过程中会调用Runntime.commonInit()
- 在Debug版本中,程序崩溃时会弹出提示框显示“xx程序停止运行”。而在正式用户版本中,各大厂商通常将其修改为直接关闭应用,并移除了弹窗提示功能
- Java中的Thread类包含一个名为UncaughtExceptionHandler的接口,其主要作用是在Thread因未捕获的异常而意外终止时,触发相应的处理程序以应对该异常
- Android系统同样采用了这一机制。当虚拟机检测到线程未能捕获的异常时,会通过thread的dispatchUncaughtException方法将该异常分发至当前线程进行处理
//frameworks/base/core/java/com/android/internal/os/RuntimeInit
全部评论 (0)
还没有任何评论哟~
