Android Fabric工作原理

本文详细介绍了Android Fabric的工作原理,重点分析了Crashlytics如何处理异常,包括Fatal和Non-Fatal两种情况。在未添加异常处理时,Fabric通过CrashlyticsUncaughtExceptionHandler捕获并处理异常,而已添加异常处理的场景中,Fabric利用AOP的AfterThrowing增强异常处理。同时,文章提到了Fabric的日志收集机制,不是立即上报而是先写入文件。最后,讨论了Fabric与AOP结合使用可能导致重复上报的问题。
摘要由CSDN通过智能技术生成
Fabric简介

Fabric是国外流行的log收集与分析工具,图表数据非常直观,关于其配置详情请看官网。这里主要是分析,Fabric是如何做到上报log的。注意这里涉及的Fabric版本是1.3.10,注意虽然源码是一直在变化,但原理是万变不离其宗的。

工作原理
  1. Java异常处理流程可以简单总结成如下两种情况:
    (1) 未添加异常处理:throw exceptoon –> DefaultUncaughtExceptionHandler -> print log && exit program

    (2) 已添加异常处理:throw exceptoon –> execute catch block

  2. Fabric Crashlytics分类
    (1)Fatal:致命异常,其实就是用户没有进行处理的异常,这个就是未捕获的crash了,程序会自己崩溃
    (2)Non-Fatal:非致命异常,这个是用户主动调用Crashlytics.logException上报的异常,程序还能运行

  3. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值