说明
神策 Android 埋点 SDK 插件从 v4.0.0-beta 版本起为适配 AGP 8.0+(Android Gradle Plugin )做了比较大的功能更新,其中包括:
- 适配 AGP 8.0+ 的 Instrumentation API,兼容 Transform API;
- 支持 Gradle Plugins DSL 集成方式;
- 优化插件配置,具体请参考插件配置一节。
Plugins DSL 集成方式
添加 Maven 仓库
在 settings.gradle 文件中添加 Maven 仓库:
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral() //Maven 仓库
//...
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral() //Maven 仓库
//...
}
}
...
声明插件路径
在 project/build.gradle 中添加神策插件的声明:
plugins {
id 'com.android.application' version '7.3.1' apply false //demo used
id 'com.android.library' version '7.3.1' apply false //demo used
id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
id 'org.jetbrains.kotlin.jvm' version '1.7.20' apply false
//...
//添加神策插件路径声明,4.0.0-beta 是插件版本号
id 'com.sensorsdata.analytics.android' version "4.0.0-beta" apply false
}
使用插件
在 app/build.gradle 中使用插件:
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
//...
//使用神策插件
id 'com.sensorsdata.analytics.android'
}
常用插件配置说明
插件 4.0.0+ 版本变动
为了简化插件配置以及适配 AGP 8.0+,从插件 4.0.0+ 版本开始删除了以下插件配置:
- disablePlugin
- disableMultiThreadBuild
- disableIncrementalBuild
- disableJar
- disableTrackPush
- disableCheckSDK
- autoHandleWebView
配置 | 删除原因和替代方式 |
---|---|
| 冗余的配置。可通过不使用插件替代。 |
| 无法适用在 AGP 8.0+ 中。 |
| 无法适用在 AGP 8.0+ 中。 |
| 无法适用在 AGP 8.0+ 中。 |
| 请使用 disableModules 替代。 |
| 请使用 disableModules 替代。 |
| 请使用 disableModules 替代。 |
注意
- 若项目中涉及到上述配置,可选择不升级到 4.0.0+ 插件。
- 若项目使用了 AGP 8.0+ 版本,则需要选择替代方式。
debug
默认值是 false。
表示是否开启 debug 模式。
如果开启 debug 模式,在编译期间会打印详细日志信息。
sensorsAnalytics {
debug = true
}
exclude
黑名单,可以通过 exclude 来指定不处理哪些 class、package。
配置示例:
sensorsAnalytics {
exclude = ['a.b.c', 'a.b.c.A']
}
不处理某个特定的类或包下面的所有类。
开启 UC 浏览器打通
用于 UC 浏览器内核的打通注解插码。
sensorsAnalytics {
addUCJavaScriptInterface = true
}
sensorsAnalytics.isHookOnMethodEnter
是否在方法进入时插入代码,默认值为 false。该配置仅适用于插件版本 3.1.9 及以上。
如需配置,在工程的 gradle.properties 中加入以下配置:
sensorsAnalytics.isHookOnMethodEnter = true
disableModules 禁用模块
用于指明禁用的模块,被禁用的模块不会进行插桩。该配置仅适用于插件版本 4.0.0 及以上,目前支持的配置有:
- AUTOTRACK
- PUSH
- WEB_VIEW
特别是使用模块化方式依赖神策 SDK 时,要特别注意添加禁用模块,例如:
sensorsAnalytics {
disableModules = ['PUSH']
}
上述配置表示不会对“推送”模块进行插桩。