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
架构
捕获native崩溃
捕获 ANR
使用
添加依赖:
dependencies {
implementation 'com.iqiyi.xcrash:xcrash-android-lib:2.4.6'
}
需要捕获native异常,或者android的api版本大于21。需要添加以下配置,用于捕获异常:
android {
defaultConfig {
ndk {
// 根据需要添加必要的ABI
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
}
初始化xCrash:
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:
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应用的需要自定义配置。