google breakpad

Android平台的崩溃捕获机制及实现

大城市里の小女人 提交于 2020-07-27 11:46:08
作者简介:贾志凯,Testin崩溃分析( http://apm.testin.cn/ )项目研发工程师,负责客户端SDK相关技术研发工作。5年移动互联网开发经验,曾任职于中科院、Symantec、Opera,对移动App的测试、分析有较深入的研究。 Android系统碎片化造成应用程序崩溃严重,在模拟器上运行良好的程序安装到某款手机上说不定就会出现崩溃的现象。而且,往往都是程序发布之后在用户端出现了崩溃现象。所以,如何及时捕获并收集Android平台的崩溃就显得愈发重要。目前,市面上已经有第三方SDK可以帮助开发者完成这一功能,本文将跟大家分享一下这些崩溃分析SDK的实现原理。 常见的Android崩溃有两类,一类是Java Exception异常,一类是Native Signal异常。我们将围绕这两类异常进行。对于很多基于Unity、Cocos平台的游戏,还会有C#、JavaScript、Lua等的异常,这里不做讨论。 Java代码的崩溃机制及实现 Android应用程序的开发是基于Java语言的,所以首先来分析第一类Android崩溃Java Exception。 Exception的分类及捕获 Java的异常可以分为两类:Checked Exception和UnChecked Exception。所有RuntimeException类及其子类的实例被称为Runt ime异常