KKMonitor
入门

Android

将 KMonitor SDK 集成到您的 Android 应用中。

最低要求

名称版本
Android Gradle 插件8.0.2
最低 SDK21(Lollipop)
编译 SDK36

1. 获取凭证

在 Dashboard 的 应用 页面创建一个新应用并复制它的 API URLAPI Key。后续配置 Gradle 插件和初始化 SDK 时都需要使用这两个值。

2. 添加 Gradle 依赖项

// 在 settings.gradle.kts 的 dependencyResolutionManagement.repositories 中添加
maven {
    url = uri("http://hsing.wicp.net:20019/repository/maven-releases/")
    isAllowInsecureProtocol = true
}

// 在 Android application 模块的 app/build.gradle.kts 中添加
dependencies {
    implementation("com.km.compoments:measure-android:0.24.0")
}

3. 添加 Gradle 插件

该插件会在构建时 instrument 应用,并上报构建信息以及 APK/AAB 的大小元数据。插件不会上传 APK/AAB 文件本体或 Mapping 文件;请在 Dashboard 手动上传 ProGuard/R8 Mapping 文件,用于还原崩溃和 ANR 堆栈。

// 在 settings.gradle.kts 的 pluginManagement.repositories 中添加。
// pluginManagement 必须是第一个块,且位于 dependencyResolutionManagement 之前。
maven {
    url = uri("http://hsing.wicp.net:20019/repository/maven-releases/")
    isAllowInsecureProtocol = true
}

// 在 Android application 模块的现有 app/build.gradle.kts plugins 块中添加。
// 紧跟 id("com.android.application")(或其版本目录别名)之后添加。
id("sh.measure.android.gradle") version "0.16.0"

// 在 Android application 模块的 app/build.gradle.kts 中添加
measure {
    apiKey.set("YOUR_API_KEY")
    apiUrl.set("YOUR_API_URL")
}

Gradle 插件中的凭证仅用于上传构建信息和大小元数据;ProGuard/R8 Mapping 文件请在 Dashboard 手动上传。

4. 初始化 SDK

尽早初始化以捕获早期崩溃和准确的启动时间指标。

// In your Application.onCreate()
import sh.measure.android.Measure
import sh.measure.android.config.ClientInfo
import sh.measure.android.config.MeasureConfig

Measure.init(
    this,
    MeasureConfig(),
    ClientInfo(
        apiKey = "YOUR_API_KEY",
        apiUrl = "YOUR_API_URL",
    ),
)

5. 验证安装

Measure.init 之后添加一次测试崩溃,运行应用,并确认它出现在 Dashboard 中。

import android.os.Handler
import android.os.Looper

// In Application.onCreate(), after Measure.init().
// The 2-second delay gives the SDK time to flush the crash event.
// Remove this after the crash appears in your dashboard.
Handler(Looper.getMainLooper()).postDelayed({
    throw RuntimeException("Test crash from Measure")
}, 2000)

确认 Dashboard 中出现崩溃后,删除测试崩溃代码。