Skip to Content
快速开始Android SDK

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()

崩溃如何上报

  1. 崩溃(Kotlin 异常 / 原生信号 / OOM)发生时,SDK 把事件写 JSON 到 <app filesDir>/argus/crashes/
  2. 进程崩溃重启后,下次 Argus.init(...) 扫盘读取并入队上报。
  3. 在 Console /issues 看崩溃 issue。

示例工程的按钮分别触发:Kotlin RuntimeException、JNI SIGSEGV、连续分配触发 OutOfMemoryError

运行示例工程

cd examples/android-demo ./gradlew :app:installDebug adb shell am start -n com.example.argusdemo/.MainActivity

Android 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