xCrash 能为安卓 app 提供捕获 java 崩溃,native 崩溃和 ANR 的能力。不需要 root 权限或任何系统权限。
xCrash 能在 app 进程崩溃或 ANR 时,在你指定的目录中生成一个 tombstone 文件(格式与安卓系统的 tombstone 文件类似)。
xCrash 已经在 爱奇艺 的不同平台(手机,平板,电视)的很多安卓 app(包括爱奇艺视频)中被使用了很多年。
- 支持 Android 4.0 - 10(API level 14 - 29)。
- 支持 armeabi,armeabi-v7a,arm64-v8a,x86 和 x86_64。
- 捕获 java 崩溃,native 崩溃和 ANR。
- 获取详细的进程、线程、内存、FD、网络统计信息。
- 通过正则表达式设置需要获取哪些线程的信息。
- 不需要 root 权限或任何系统权限。
- java 崩溃
- native 崩溃 (armeabi)
- native 崩溃 (armeabi-v7a)
- native 崩溃 (arm64-v8a)
- native 崩溃 (x86)
- native 崩溃 (x86_64)
- ANR (armeabi)
- ANR (armeabi-v7a)
- ANR (arm64-v8a)
- ANR (x86)
- ANR (x86_64)
dependencies {
implementation 'com.iqiyi.xcrash:xcrash-android-lib:2.4.8'
}
android {
defaultConfig {
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
}
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 环境变量。
sdk.dir=your/path/to/sdk
ndk.dir=your/path/to/ndk
cd ./src/java/xcrash/
./gradlew :xcrash_lib:build
如果你需要用 libxcrash.so 和 libxcrash_dumper.so 来构建自己的可执行文件, 请尝试使用 src/native/build_via_cmake.sh
# Windows: run the following cmds in cmd window.
setx /m ANDROID_SDK_ROOT "/path/to/sdk"
setx /m ANDROID_NDK_ROOT "/path/to/ndk"
# macOS & Linux: add the following two lines to ~/.bash_profile, and then source ~/.bash_profile or reopen the terminal
export ANDROID_SDK_ROOT="/path/to/sdk"
export ANDROID_NDK_ROOT="/path/to/ndk"
# 1. 修改 build_via_cmake.sh 中的 XCRASH_OUTPUT_DIRECTORY 为你想要的输出路径
# 2. 在任何路径调用 build_via_cmake.sh
- 查看 xcrash-sample。
- 在 GitHub issues 交流。
- 邮件: [email protected]
- QQ 群: 603635869。二维码:
请阅读 xCrash Contributing Guide。
xCrash 使用 MIT 许可证。
xCrash 的文档使用 Creative Commons 许可证。