android Carsh监控,实现自己的异常报告

Crash(应用崩溃):是由于代码异常而导致 App 非正常退出,导致应用程序无法继续使用,所有工作都停止的现象。

在 Android 应用中发生的 Crash 有两种类型,Java 层的 Crash 和 Native 层 Crash。这两种Crash 的监控和获取堆栈信息有所不同。

我们这里只说java层的Crash监控

java层的Crash监控非常简单,因为java本身为我们提供了一个接口,这个接口在Thread 包下 UncaughtExceptionHandler这个接口用于处理未捕获异常导致线程终止(ps:catch了的是捕获不到的),当我们应用crash的时候就会走UncaughtExceptionHandler.uncaughtException,在该方法中我们可以获取到异常信息,然后通过Thread.setDefaultUncaughtExceptionHandler甚至默认的异常处理器,我们可以讲异常信息保存本地或者上传到服务器,方便我们定位问题。

没有多少东西,直接上码

public class CrashHandler implements Thread.UncaughtExceptionHandler {
   

    private static Context mContent;
    private static Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler;

    private CrashHandler() {
   

    }

    public static void init(Context applicationContext) {
   
        mContent = applicationContext;
        //获取默认的异常处理器
        defaultUncaughtExceptionHandler = Thread.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ANR(Application Not Responding)和Crash(崩溃)是Android应用程序中常见的问题,但它们有不同的表现和原因。 ANR是指当一个应用程序在主线程上执行了太长时间的任务或者发生了阻塞操作时,导致用户无法与应用进行交互,应用会出现“应用无响应”的提示。ANR通常是由以下情况引起的: 1. 主线程执行了耗时操作,如网络请求或数据库查询等。 2. 主线程被其他耗时的任务阻塞,如锁竞争或死锁等。 Crash是指应用程序在运行过程中发生了无法处理的异常,导致应用程序突然终止。Crash通常是由以下情况引起的: 1. 空指针引用或越界访问等编程错误。 2. 内存溢出或内存泄漏等资源问题。 3. 不受控制的异常或错误情况。 要区分ANR和Crash,可以根据以下特征进行判断: 1. ANR通常在应用程序仍然运行但无响应时发生,而Crash会导致应用程序直接终止。 2. ANR通常会显示一个对话框提示用户应用无响应,而Crash则可能会导致应用程序闪退或崩溃。 3. ANR通常是由主线程长时间阻塞或执行耗时操作引起,而Crash通常是由异常或错误引起。 在开发过程中,可以通过查看应用程序的日志、错误报告或使用调试工具来确定应用程序是否遇到了ANR或Crash。针对ANR问题,可以通过优化耗时操作或将其移至后台线程来解决。对于Crash问题,需要检查代码中的潜在错误,并进行修复和测试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值