Fabric简介
Fabric是国外流行的log收集与分析工具,图表数据非常直观,关于其配置详情请看官网。这里主要是分析,Fabric是如何做到上报log的。注意这里涉及的Fabric版本是1.3.10,注意虽然源码是一直在变化,但原理是万变不离其宗的。
工作原理
Java异常处理流程可以简单总结成如下两种情况:
(1) 未添加异常处理:throw exceptoon –> DefaultUncaughtExceptionHandler -> print log && exit program(2) 已添加异常处理:throw exceptoon –> execute catch block
Fabric Crashlytics分类
(1)Fatal:致命异常,其实就是用户没有进行处理的异常,这个就是未捕获的crash了,程序会自己崩溃
(2)Non-Fatal:非致命异常,这个是用户主动调用Crashlytics.logException上报的异常,程序还能运行Crashlytics核心实现CrashlyticsCore,看看以下几个核心的实现方法:
boolean onPreExecute(Context context) { if(this.disabled) { return false; } else { this.apiKey = (new ApiKey()).getValue(context); if(this.apiKey == null) { return false; } else { Fabric.getLogger().i("CrashlyticsCore", "Initializing Crashlytics " + this.getVersio