Skip to main content

AGP 插件说明

Android Gradle Plugin 高版本说明及其使用方法


GrowingIO Sdk Gradle Plugin 4.0 具有以下的功能特性:

  • 适配 AGP 8.0 Instrumentation API;
  • 兼容 AGP4.2及其更早版本的 Transform API;
  • 在插件中可以配置集成Giokit;
开源信息

Github 项目地址为 GrowingIO Android SDK Plugin,欢迎 star, fork。

如何集成

这里只说明在 Android Gradle插件为7.0及以上版本时的集成方式,若是AGP7以下则按照 插件集成 集成即可。

添加 Maven 仓库

需要在 project 中的 settings.gradle 文件中添加Maven仓库

// 当AGP版本为7.0及以上添加
pluginManagement {
repositories {
// 添加gradle仓库
gradlePluginPortal()
//如果使用 SNAPSHOT 版本,则需要使用如下该仓库。
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
google()

}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
//如果使用 SNAPSHOT 版本,则需要使用如下该仓库。
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
mavenCentral()
google()
}
}

添加插件路径

需要在 project 下的 build.gradle 下添加 Growingio 插件

plugins {
id 'com.android.application' version '7.2.0' apply false

···
// 添加GrowingIO 无埋点 SDK 插件
id 'com.growingio.android.autotracker' version '4.3.0' apply false
}

使用插件

在 app 级别的 build.gradle 文件中添加 com.growingio.android.autotracker 插件

plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
// 使用 GrowingIO 无埋点 SDK 插件
id 'com.growingio.android.autotracker'
}
...

插件配置说明

为了满足插件在不同项目环境下能够正常使用,GrowingIO SDK 插件提供了以下配置。(非必需情况下可以不用添加)

Extension参数类型是否必填默认值说明版本
logEnabledBooleanfalse编译时是否输出log日志
skipDependencyCheckBooleanfalse编译时检测当前project是否配置SDK依赖(模块中依赖时配置为true)
includePackagesArray<String>null需要额外包含编译的包名
excludePackagesArray<String>null需要跳过编译的包名
giokitGiokitExtensionnull可以用来配置是否引入 Giokit

配置代码示例

plugins {
···
// 使用 GrowingIO 无埋点 SDK 插件
id 'com.growingio.android.autotracker'
}

growingAutotracker {
logEnabled false
includePackages "com.growingio.xxx1","com.growingio.xxx2"
excludePackages "com.cpacm.xxx1"
giokit {
//...
}
}


dependencies {
···
}

在Android项目编译中,若出现 'no growingio autotracker sdk dependency was found' 的编译问题,则需要检查SDK是否正确依赖。如果依赖正确或者已经在子模块中依赖则可以将插件的配置项 skipDependencyCheck 设置为true来避免该问题。

Giokit 配置

Extension参数类型是否必填默认值说明
enabledBooleanfalse是否添加 Giokit
trackerFinderEnabledBooleantrue查找App下调用App埋点接口的信息
trackerFinderDomainArray<String>默认为应用 ApplicationId查找的范围
trackerCalledMethodArray<String>默认为SDK相应接口要查找的类和方法,类名与方法名使用#连接
autoAttachEnabledBooleantrueGioKit 是否自动依附在Activity上,若设为false,需要自行调用api打开GioKit
releaseEnabledBooleanfalse请不要打开,否则会在 Release 打包中包含 GioKit 代码
autoInstallVersionString2.1.2自动依赖的GioKit版本号

现在SDK不用再额外引入 Giokit,只需要在插件中开启即可。示例如下:

growingAutotracker {
logEnabled true
giokit {
enabled false //开启则可引入 GioKit
trackerFinderEnabled true
trackerFinderDomain "com.xxxx.yourapplication"
trackerCalledMethod "com.growingio.android.tracker#trackCumtomEvent"
autoAttachEnabled true
releaseEnabled false
autoInstallVersion "2.1.2"
}
}