package com.driver.igotrip.utils.crash
|
|
import android.app.ActivityManager
|
import java.util.UUID
|
|
/**
|
* 崩溃信息数据类
|
* 封装一次崩溃所需的全部上下文
|
*/
|
data class CrashInfo(
|
val id: String = UUID.randomUUID().toString(), // 崩溃唯一ID,便于去重
|
val timestamp: Long = System.currentTimeMillis(), // 崩溃发生时间
|
val threadName: String, // 发生崩溃的线程名
|
val exceptionType: String, // 异常类型(如 NullPointerException)
|
val exceptionMessage: String?, // 异常消息
|
val stackTrace: String, // 完整堆栈信息
|
val deviceInfo: DeviceInfo, // 设备信息
|
val appInfo: AppInfo, // 应用信息
|
val memoryInfo: ActivityManager.MemoryInfo? = null // 内存快照(可选)
|
) {
|
/**
|
* 设备信息子数据类
|
*/
|
data class DeviceInfo(
|
val manufacturer: String, // 厂商,如 "Xiaomi"
|
val model: String, // 型号,如 "Redmi K60"
|
val sdkVersion: Int, // Android SDK 版本
|
val osVersion: String // Android 系统版本
|
)
|
|
/**
|
* 应用信息子数据类
|
*/
|
data class AppInfo(
|
val packageName: String, // 应用包名
|
val versionName: String, // 版本名,如 "1.2.0"
|
val versionCode: Long // 版本号
|
)
|
}
|