Android SDK(Kotlin)快速开始
Android 端 SDK。v0 覆盖日志 + 崩溃 + breadcrumb + identify,最低 Android 7(minSdk 24), Gradle Kotlin DSL 接入。崩溃捕获含 Thread UncaughtExceptionHandler + sigaction 原生信号 + defer-to-next-launch 三层保险;并支持端到端 Trace 注入(Trace v1.5)。
对应 SDK:sdks/android ·
示例工程:examples/android-demo ·
设计:docs/07-design/sdk-android.md
添加依赖
SDK 通过 AAR 发布(计划 Maven Central)。在 app/build.gradle.kts 加依赖,并应用官方
consumer-rules.pro(SDK 已内置,类不被混淆)。本地开发可用 :sdks:android 模块直连。
初始化(Application.onCreate)
import android.app.Application
import com.argusplatform.sdk.Argus
import com.argusplatform.sdk.ArgusConfig
import com.argusplatform.sdk.LogLevel
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
Argus.init(this, ArgusConfig.Builder(
"argus://demo-public:demo-secret@localhost:4318/demo"
).build())
}
}记得在 AndroidManifest.xml 的 <application android:name=".MyApp"> 注册。
上报
// 日志(level 缺省 LogLevel.INFO;attributes 可选)
Argus.log("Payment failed", LogLevel.ERROR, mapOf("module" to "payment"))
// 用户
Argus.identify("user-123")
// 立即 flush 当前队列
Argus.flush()崩溃如何上报
- 崩溃(Kotlin 异常 / 原生信号 / OOM)发生时,SDK 把事件写 JSON 到
<app filesDir>/argus/crashes/。 - 进程崩溃重启后,下次
Argus.init(...)扫盘读取并入队上报。 - 在 Console
/issues看崩溃 issue。
示例工程的按钮分别触发:Kotlin RuntimeException、JNI SIGSEGV、连续分配触发 OutOfMemoryError。
运行示例工程
cd examples/android-demo
./gradlew :app:installDebug
adb shell am start -n com.example.argusdemo/.MainActivityAndroid emulator 默认 DSN host 用 10.0.2.2:4318(emulator 对 host 的 alias),装好直接跑通;
真机需把 DSN host 改成 mac 局域网 IP。
端到端 Trace
Android SDK 支持给出站请求注入 W3C traceparent,与后端 SDK 串成一条 trace(Trace v1.5,三端
parity 已收官)。详见 端到端 Trace 指南。
v0 范围与推迟项
- 已实现:log / crash(三层保险)/ breadcrumb / identify / OOM 检测 / Trace 注入。
- 推迟到 v1+:APM / OkHttp Interceptor / libunwind / 16KB pages / Maven Central / 客户端 symbolicate。
详见 ADR-0028 。