前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Android之xCrash介绍

Android之xCrash介绍

作者头像
李小白是一只喵
发布2021-12-06 17:52:18
发布2021-12-06 17:52:18
1K00
代码可运行
举报
文章被收录于专栏:算法微时光算法微时光
运行总次数:0
代码可运行

xCrash

xCrash是爱奇艺开源的在android平台上面捕获异常的开源库。

xCrash能为安卓 APP提供捕获Java崩溃异常,native崩溃异常和ANR异常。

xCrash 能在 App 进程崩溃或 ANR 时,在你指定的目录中生成一个 tombstone 文件(格式与安卓系统的 tombstone 文件类似)。

xCrash项目地址: github:https://github.com/iqiyi/xCrash gitee:https://gitee.com/caikelun/xCrash

架构

image.png

捕获native崩溃

image.png

捕获 ANR

image.png

使用

添加依赖:

代码语言:javascript
代码运行次数:0
复制
dependencies {
    implementation 'com.iqiyi.xcrash:xcrash-android-lib:2.4.6'
}

需要捕获native异常,或者android的api版本大于21。需要添加以下配置,用于捕获异常:

代码语言:javascript
代码运行次数:0
复制
android {
    defaultConfig {
        ndk {
            // 根据需要添加必要的ABI
            abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
    }
}

初始化xCrash:

代码语言:javascript
代码运行次数:0
复制
public class MyCustomApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        //  默认初始化
        XCrash.init(this);
    }
}

Tombstone 文件默认将被写入到 Context#getFilesDir() + “/tombstones” 目录。(通常在: /data/data/PACKAGE_NAME/files/tombstones)。

xCrash提供两个接口用于APP应用初始化xCrash:

代码语言:javascript
代码运行次数:0
复制
    public static int init(Context ctx) {
        return init(ctx, null);
    }

public static synchronized int init(Context ctx, InitParameters params){
    ...
}

接口都需要传入context用于xCrash获取APP应用进程的信息,不同的是接口1,不传入自定义配置,采用的是xCrash的默认配置,接口2可以根据APP应用的需要自定义配置。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/9/12 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • xCrash
  • 架构
    • 捕获native崩溃
    • 捕获 ANR
  • 使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档