如何集成
GrowingIO Autotracker Android SDK具备自动采集基本的用户行为事件,比如访问和行为数据等。目前支持代码埋点、无埋点、可视化圈选等功能。
准备
目前所有的 GrowingIO Autotracker Android SDK 都已经发布至公开的仓库中,请在集成前添加代码库依赖的仓库地址至您的配置文件中。
- 集成 GrowingIO Autotracker Android SDK 时需要添加
mavenCentral()
仓库地址到您的 gradle 配置文件中。 - 集成无埋点功能时还需要添加额外的 Gradle 插件,集成插件需要添加
gradlePluginPortal()
仓库地址到gradle配置文件中,以便正确下载插件依赖。
- AGP7及以上
- 低版本Gradle
在 project 中的 settings.gradle
文件中添加代码仓库地址。
pluginManagement {
repositories {
// 添加 gradle plugin 依赖的仓库地址
gradlePluginPortal()
//如果使用 SNAPSHOT 版本,则需要使用如下该仓库。
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
// 添加 sdk 依赖的 maven 仓库地址
mavenCentral()
//如果使用 SNAPSHOT 版本,则需要使用如下该仓库。
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
}
}
在 project 中的 build.gradle
文件中添加代码仓库地址。
buildscript {
repositories {
// 添加 gradle plugin 依赖的仓库地址
gradlePluginPortal()
//如果使用 SNAPSHOT 版本,则需要使用如下该仓库。
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
}
}
allprojects {
repositories {
// 添加maven仓库
mavenCentral()
//如果使用 SNAPSHOT 版本,则需要使用如下该仓库。
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
}
}
安装
完成整个GrowingIO Android SDK 安装需要依赖 SDK代码 和 Gradle插件 两个步骤。
添加SDK代码依赖
在需要用到的应用级别下的 build.gradle
文件中添加代码依赖。
- BoM
- 依赖
apply plugin: 'com.android.application'
dependencies {
// Import the BoM for the GrowingIO platform
implementation platform('com.growingio.android:autotracker-bom:4.3.2')
//GrowingIO 无埋点 SDK
implementation 'com.growingio.android:autotracker'
}
apply plugin: 'com.android.application'
dependencies {
implementation 'com.growingio.android:autotracker:4.3.2'
}
最新版本请参考 Github Release
添加Gradle插件
Gradle 插件用于配合SDK中的无埋点功能,能够在不修改代码的情况下,自动帮助应用获取页面浏览,页面点击等埋点事件。若是只需要埋点功能则可以跳过该步骤。
- AGP7及以上
- 低版本Gradle
在 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'
// 使用 GrowingIO 无埋点 SDK 插件
id 'com.growingio.android.autotracker'
}
在 project 下的 build.gradle
中添加 GrowingIO 插件
buildscript {
repositories {
// 添加maven仓库
mavenCentral()
//如果使用 SNAPSHOT 版本,则需要使用如下该仓库。
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
}
dependencies {
//GrowingIO 无埋点 SDK plugin
classpath 'com.growingio.android:autotracker-gradle-plugin:4.3.0'
}
}
在 app 级别的 build.gradle
文件中引入 com.growingio.android.autotracker
插件
apply plugin: 'com.android.application'
//添加 GrowingIO 插件
apply plugin: 'com.growingio.android.autotracker'
插件最新发布版本为 Github Releases
关于插件的更多使用和配置请参考 无埋点SDK插件说明
配置 URL Scheme
URL Scheme 是 GrowingIO SDK 从外部唤醒应用时使用的唯一标识。把 URL Scheme 添加到您的项目,以便使用圈选, Mobile Debugger 及深度链接等功能时唤醒应用。 将应用的 URLScheme 和应用权限添加到您的 AndroidManifest.xml 中的启动 Activity 下。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.growingio.testdemo">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".YourApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".LauncherActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!--请添加这里的整个 intent-filter 区块,并确保其中只有一个 data 字段-->
<intent-filter>
<data android:scheme="growing.您的URL Scheme" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<!--请添加这里的整个 intent-filter 区块,并确保其中只有一个 data 字段-->
</activity>
</application>
</manifest>
SDK初始化配置
请将 SDK 的初始化代码放入 Application
的 onCreate
中。为使 App 合规,请参考合规步骤
- java
- kotlin
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Config GrowingIO
// YourAccountId eg: 0a1b4118dd954ec3bcc69da5138bdb96
// Your URLScheme eg: growing.xxxxxxxxxxx
// YourServerHost eg: https://api.growingio.com 需要填写完整的url地址
// YourDatasourceId eg: 11223344aabbcc
AutotrackConfiguration sConfiguration = new AutotrackConfiguration("Your AccountId", "Your URLScheme")
.setDataCollectionServerHost("Your ServerHost")
.setDataSourceId("Your DataSourceId")
.setDebugEnabled(BuildConfig.DEBUG)
.setAndroidIdEnabled(true)
.setRequireAppProcessesEnabled(true)
.setDataCollectionEnabled(true);
GrowingAutotracker.startWithConfiguration(this, sConfiguration);
}
}
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// Config GrowingIO
// YourAccountId eg:0a1b4118dd954ec3bcc69da5138bdb96
// Your URLScheme eg:growing.xxxxxxxxxxx
// YourServerHost eg:http://106.75.81.105:8080
// YourDatasourceId eg: 11223344aabbcc
val sConfiguration = AutotrackConfiguration("Your AccountId", "Your URLScheme")
.setDataCollectionServerHost("Your ServerHost")
.setDataSourceId("Your DataSourceId")
.setDebugEnabled(BuildConfig.DEBUG)
.setAndroidIdEnabled(true)
.setRequireAppProcessesEnabled(true)
.setDataCollectionEnabled(true)
GrowingAutotracker.startWithConfiguration(this, sConfiguration)
}
}
查看集成效果
运行应用,若 Logcat
中输出了
!!! Thank you very much for using GrowingIO. We will do our best to provide you with the best service. !!!
!!! GrowingIO Tracker version: 4.3.0 !!!
则说明SDK已经集成成功。
若在初始化中打开了Debug setDebugEnabled(true)
,则可以在 Logcat
中看到每个事件的log日志输出。
至此,就完成了无埋点 SDK 的集成。
另外,您可使用 GioKit 辅助插件 进行集成验证。
只开启埋点功能
只开启埋点功能的 SDK 只自动采集用户访问事件和APP关闭事件,其他事件均需要开发同学调用相应埋点 API 采集埋点事件。
- java
- kotlin
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Config GrowingIO
// YourAccountId eg: 0a1b4118dd954ec3bcc69da5138bdb96
// Your URLScheme eg: growing.xxxxxxxxxxx
// YourServerHost eg: https://api.growingio.com 需要填写完整的url地址
// YourDatasourceId eg: 11223344aabbcc
AutotrackConfiguration sConfiguration = new AutotrackConfiguration("Your AccountId", "Your URLScheme")
.setDataCollectionServerHost("Your ServerHost")
.setDataSourceId("Your DataSourceId")
.setDebugEnabled(BuildConfig.DEBUG)
.setAndroidIdEnabled(true)
.setRequireAppProcessesEnabled(true)
.setDataCollectionEnabled(true)
// 关闭无埋点功能
.setAutotrack(false);
GrowingAutotracker.startWithConfiguration(this, sConfiguration);
}
}
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// Config GrowingIO
// YourAccountId eg: 0a1b4118dd954ec3bcc69da5138bdb96
// Your URLScheme eg: growing.xxxxxxxxxxx
// YourServerHost eg: https://api.growingio.com 需要填写完整的url地址
// YourDatasourceId eg: 11223344aabbcc
val sConfiguration = TrackConfiguration("Your AccountId", "Your URLScheme")
.setDataCollectionServerHost("Your ServerHost")
.setDataSourceId("Your DataSourceId")
.setDebugEnabled(BuildConfig.DEBUG)
.setAndroidIdEnabled(true)
.setRequireAppProcessesEnabled(true)
.setDataCollectionEnabled(true)
// 关闭无埋点功能
.setAutotrack(false)
GrowingTracker.startWithConfiguration(this, sConfiguration)
}
}
只开启埋点功能只需要在SDK初始化关闭无埋点功能即可。
混淆
SDK中已经默认集成了混淆规则,R8 在编译项目时会自动应用其规则。
如果混淆后还出现问题,可以在您的 proguard-rules.pro 中加入如下代码:
-keep class com.growingio.** {
*;
}
-dontwarn com.growingio.**