帮你快速理解、总结文档立即下载

SDK 集成

最近更新时间:2026-10-30 21:23:35
本文档已由 AI 辅助审校
我的收藏
用户体验监控 Android SDK 支持 Gradle 依赖引入 Fat-AAR,并配合编译期插桩插件实现网络 / 启动的自动埋点。

前提条件

Android 5.0(API 21)及以上。
Android Studio 2022.3+、AGP 7.3.1+、Kotlin 1.7.20。
崩溃监控需要 NDK 21.4.7075529、CMake 3.10.2+。
使用 Compose 标签插桩时,tdem-behavior-compose 对 androidx.compose 与 androidx.navigation 为 compileOnly 依赖,需由项目自行对齐版本。

操作步骤

步骤1:添加仓库

插件与 SDK 均从 CNB 制品库获取,需在 settings.gradle 中同时配置依赖仓库与插件仓库。
// settings.gradle
pluginManagement {
repositories {
maven { url 'https://maven.cnb.cool/tencent-dem/release/-/packages/' }
google()
mavenCentral()
gradlePluginPortal()
}
}

dependencyResolutionManagement {
repositories {
maven { url 'https://maven.cnb.cool/tencent-dem/release/-/packages/' }
google()
mavenCentral()
}
}
若项目未使用 dependencyResolutionManagement(Gradle 6.x 或沿用 allprojects),可在项目级 build.gradle 中配置:
// 项目级 build.gradle
allprojects {
repositories {
maven { url 'https://maven.cnb.cool/tencent-dem/release/-/packages/' }
google()
mavenCentral()
}
}
注意: 制品库完整地址须包含 /-/packages/ 路径段,仅写 https://cnb.cool/tencent-dem/release 无法解析制品。

步骤2:添加依赖

dependencies {
implementation 'com.tencent.tdem:tdem:0.1.25'
}

步骤3:应用插桩插件(网络 / 启动 / Compose Navigation 插桩)

引入并启用 tdem-plugin 0.1.13 插件,支持以下两种写法,选择其一即可。
plugins {} DSL(推荐):
// 模块级 build.gradle
plugins {
id 'tdem-plugin' version '0.1.13'
}
buildscript classpath:
// 项目级 build.gradle
buildscript {
repositories {
maven { url 'https://maven.cnb.cool/tencent-dem/release/-/packages/' }
}
dependencies {
classpath 'com.tencent.tdemplugin:tdem-plugin:0.1.13'
}
}

// 模块级 build.gradle
apply plugin: 'tdem-plugin'
插桩开关(两种写法通用,下列为当前默认值):
tdem {
instrumentOkHttp = true // OkHttp3 自动监控
instrumentHUC = true // HttpURLConnection 自动监控
instrumentSSE = true // SSE 自动监控
instrumentLaunch = true // Application/Activity 启动埋点
instrumentComposeNavigation = false // Compose Navigation 页面流转,默认关闭
}
说明:
tdem {} 是 tdem-plugin 的插件配置块,在插件引入代码之后写入。该配置块不会立即执行,仅用于定义字节码插桩开关;在项目编译打包阶段,插件读取此处配置,根据各项开关对 Class 字节码执行插桩,自动采集对应的监控埋点数据。
其中 instrumentComposeNavigation 只负责 Compose Navigation 的页面流转插桩。开启前须先引入 com.tencent.tdem:tdem-behavior-compose(版本与 tdem 保持一致),否则插桩后的字节码在运行时找不到目标类,会抛出 NoClassDefFoundError。Compose 的组件标签能力由 步骤4 的 Kotlin 编译器插件提供,两者相互独立。

步骤4:Compose 标签插桩(可选)

Compose 场景下如需给 Composable 打业务标签,可引入 Compose 标签插桩。该能力由 Kotlin 编译器插件在编译期为 @Composable 函数自动注入标签,与 步骤3 的 tdem-plugin 字节码插桩相互独立,可按需单独启用。
// 模块级 build.gradle
plugins {
id 'com.tencent.tdem.kotlin.compiler.gradle' version '0.2.10'
}

dependencies {
// 运行时支持库,版本与 tdem 保持一致
implementation 'com.tencent.tdem:tdem-behavior-compose:0.1.25'
}
配置块 tdemKotlinCompiler 与插件引入代码写在同一个模块级 build.gradle 中,下列为当前默认值:
tdemKotlinCompiler {
excludeComposeModifiers = false // 为 true 时整块 Compose 标签注入都不生效
debug = false // 为 true 时在编译日志中打印注入明细
}
插件按 Kotlin 版本自动选择实现,支持 Kotlin 1.7.20及以上。自动注入的标签取值为所在函数名;非 @Composable 函数,以及 androidx、com.tencent.tdem 包下的函数不注入。excludeComposeModifiers = true 时插件直接跳过整个 Compose 标签扩展的注册,标签与 Modifier 都不注入,等价于关闭该能力。
注意: tdem-behavior-compose 是运行时支持库,只启用编译器插件、不引入该依赖时构建不会报错:编译期 IR 扩展找不到 tdemTag 会打印一条 WARNING 并跳过注入,运行期 SDK 通过反射探测该库,探测不到即跳过 Compose 能力。两处都只是日志提示,不影响构建产物。