Android 应用崩溃捕获工具 xCrash [复制链接]

2019-9-9 11:21
hardwork 阅读:354 评论:0 赞:0
Tag:  Crash

xCrash

xCrash 能为安卓 APP 提供捕获 java 崩溃,native 崩溃和 ANR 的能力。不需要 root 权限或任何系统权限。

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

Android 应用崩溃捕获工具 xCrash

xCrash 已经在 爱奇艺 的很多安卓 APP(包括爱奇艺视频)中被使用了很多年。

特征

  • 支持 Android 4.0 - 10(API level 14 - 29)。
  • 支持 armeabi,armeabi-v7a,arm64-v8a,x86 和 x86_64。
  • 捕获 java 崩溃,native 崩溃和 ANR。
  • 获取详细的内存使用统计信息。
  • 通过正则表达式设置需要获取哪些线程的信息。
  • 不需要 root 权限或任何系统权限。

架构

捕获 native 崩溃

Android 应用崩溃捕获工具 xCrash

捕获 ANR

Android 应用崩溃捕获工具 xCrash

使用

1. 增加依赖。

dependencies {
implementation 'com.iqiyi.xcrash:xcrash-android-lib:2.4.0'
}

2. 指定一个或多个你需要的 ABI。

android {
defaultConfig {
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
}

3. 初始化 xCrash。

Java

public class MyCustomApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);

xcrash.XCrash.init(this);
}
}

Kotlin

class MyCustomApplication : Application() {
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
xcrash.XCrash.init(this)
}
}

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

在 src/java/xcrash/xcrash_sample 文件夹中,有一个更实际和复杂的示例 APP。

构建

如果你想编译 xCrash 的源码。请按以下步骤进行:

1. 下载 Android NDK r16b,设置 PATH 环境变量。

2. 编译和复制 native 库。

cd ./src/native/
./build.sh
./install.sh

3. 编译 AAR 库。

cd ./src/java/xcrash/
./gradlew :xcrash_lib:build

更多使用方法可以查看官方文档

开源地址:

https://github.com/iqiyi/xCrash

我来说两句
您需要登录后才可以评论 登录 | 立即注册
facelist
所有评论(0)
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )