1.  关闭插件

SDK 插件正确配置后,默认插件启用,在编译时会注入埋点相关代码。如果要关闭,在工程 gradle.properties 中配置:

// 禁用插件
sensorsAnalytics.disablePlugin = true
GROOVY
  1. sensorsAnalytics.disablePlugin 默认值是 false。如设置为 true ,将禁用插件,从而影响全埋点的点击事件以及 Fragment 的浏览事件。
  2. 该配置仅适用于插件版本 v3.0.2 及以上。

2. 关闭多线程编译

SDK 插件默认为多线程编译,如果要关闭,在工程 gradle.properties 中配置:

// 禁用多线程编译
sensorsAnalytics.disableMultiThreadBuild = true
GROOVY
  1. 多线程编译可加快编译速度,但是会占用更多的计算机资源。
  2. sensorsAnalytics.disableMultiThreadBuild 默认值是 false
  3. 该配置仅适用于插件版本 v3.0.2 及以上。

3.  关闭增量编译

SDK 插件默认为增量编译,如果要关闭,在工程 gradle.properties 中配置:

// 禁用增量编译
sensorsAnalytics.disableIncrementalBuild = true
GROOVY
  1. 增量编译可以使用编译缓存,用于加快编译速度。
  2. sensorsAnalytics.disableIncrementalBuild 默认值是 false,默认增量编译。
  3. 该配置仅适用于插件版本 v3.0.2 及以上。

4. 开启插件日志打印

开启插件 Debug 日志打印后,在编译期间可以打印插件编译日志,默认是关闭编译日志。如果要开启,在主 Modulebuild.gradle 中配置:

sensorsAnalytics {
    // 开启 Debug 日志
    debug = true
}
GROOVY

debug 默认值是 false。如果开启 Debug 模式,在编译期间会打印详细日志信息,比如插件当前正在处理哪个 jar、哪个 class、哪个 method 等。

5. 开启白名单

如果只需要全埋点采集少数 class、package 或 jar 中的点击事件和 Fragment 页面浏览事件,可通过白名单方式配置需要采集的包名或类名。

主 Modulebuild.gradle 中配置:

sensorsAnalytics {
   //表示启用白名单
   useInclude = true
	//通过 include 来指定插件处理哪些 class、package
   include = ['a.b.c', 'a.b.c.A']
}
GROOVY

 如果要自动采集 Fragment 的页面浏览事件,需要将父类是 Fragment 的类加入到白名单中。 例如:A 直接继承 Fragment继承 A ,如果需要采集 的页面浏览事件,这个时候需要把 A 加入到白名单中,而不是 B

示例:

sensorsAnalytics {
   useInclude = true
   include = ['demo.sensorsdata.com.sa_sdk_demo.viewpager_fragment','com.sensorsdata.analytics.android']
}
GROOVY

6. 开启黑名单

开启全埋点事件采集后,如果个别包、类中不需要全埋点采集点击事件和 Fragment 页面浏览事件,可通过开启黑名单配置不需要采集的包名或类名。

主 Modulebuild.gradle 中配置:

sensorsAnalytics {
   //启用黑名单
   useInclude = false
   //通过 exclude 来指定不处理哪些 class、package,即不处理某个特定的类或包下面的所有类。
   exclude = ['a.b.c', 'a.b.c.A']
}
GROOVY

exclude 指定的包、类中的点击事件和 Fragment 页面浏览事件将不会自动采集。

示例:

sensorsAnalytics {
   exclude = ['demo.sensorsdata.com.sa_sdk_demo.viewpager_fragment','com.sensorsdata.analytics.android']
}
GROOVY

7. 禁止插件处理 jar、aar

如果项目中 jar、aar 包不需要插件扫描注入全埋点代码,可以通过该配置全部忽略,默认全部处理。

主 Modulebuild.gradle中配置:

sensorsAnalytics {
	// 不处理 jar、aar 包
    disableJar = true
}
GROOVY

disableJar 默认值 false , jar 和 aar 神策插件都会处理。如果开启使用黑名单,通过 disableJar = true 可以一次性将所有的 jar 和 aar 加入到黑名单里。

8. 禁止获取 IMEI 号

如果不要采集 IMEI,通过以下配置不采集,配置后神策插件将在编译期移除获取 IMEI 的相关代码。

主 Modulebuild.gradle 中配置:

// 禁止获取 IMEI 号
sensorsAnalytics {
   sdk {
		disableIMEI = true
   }
}
GROOVY
  1. disableIMEI 默认值为 false。如设置为 true , 将不会采集 IMEI ,会影响到渠道追踪。
  2. 该配置仅适用于插件版本 v3.0.0 及以上。
  3. 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true

9. 禁止获取 MacAddress

如果不要采集 MacAddress,通过以下配置不采集,配置后神策插件将在编译期移除获取 mac 地址的相关代码。

主 Module 的 build.gradle 中配置:

// 禁止获取 MacAddress
sensorsAnalytics {
   sdk {
	   disableMacAddress = true
   }
}
GROOVY
  1. disableMacAddress 默认值为 false。如设置为 true ,将不在采集 mac 地址,会影响渠道追踪。
  2. 该配置仅适用于插件版本 v3.0.0 及以上。
  3. 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true

10. 禁止获取 Android ID

如果不要采集 Android ID,通过以下配置不采集,配置后神策插件将在编译期移除获取 Android ID 的相关代码。

主 Modulebuild.gradle 中配置:

// 禁止获取 Android ID
sensorsAnalytics {
   sdk {
	   disableAndroidID = true
   }
}

// 开启获取 Android ID
sensorsAnalytics {
   sdk {
	   disableAndroidID = false
   }
}
GROOVY
  1. disableAndroidID 默认值为 false。如设置为 true,将不在采集 Android ID 会影响到事件属性 $device_id 以及渠道追踪。
  2. 该配置仅适用于插件版本 v3.0.0 及以上。
  3. 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true

11. 禁止获取运营商信息

如果不要采集 $carrier (运营商名称),通过以下配置不采集,配置后神策插件将在编译期移除获取运营商名称的相关代码。

主 Modulebuild.gradle 中配置:

// 禁止获取运营商信息
sensorsAnalytics {
   sdk {
	   disableCarrier = true
   }
}
GROOVY
  1. disableCarrier 默认值为 false,如设置为 true ,将会无法采集到运营商信息。
  2. 该配置仅适用于插件版本 v3.0.1 及以上。
  3. 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true

12. 关闭 SDK 日志打印

主 Modulebuild.gradle 中配置:

// 禁用 SDK 日志打印
sensorsAnalytics {
   sdk {
	   disableLog = true
   }
}
GROOVY
  1. disableLog 默认值为 false,如设置为 true,SDK 将不会打印 Log 日志和异常日志。
  2. 该配置仅适用于插件版本 v3.0.0 及以上。
  3. 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置。配置如下: android.enableD8.desugaring = true

13. 设置插件注入埋点代码位置

神策插件默认在宿主项目的点击事件方法和 Fragment 生命周期方法的最后一行注入埋点代码。如果需要在宿主项目相应方法的第一行插入埋点代码,在工程的 gradle.properties 中加入以下配置

sensorsAnalytics.isHookOnMethodEnter = true
GROOVY
  1. sensorsAnalytics.isHookOnMethodEnter 默认值是 false,在方法结束时插入代码。
  2. 该配置仅适用于插件版本 v3.1.9 及以上。

14. 删除 showUpWebView 方法体

此功能会删除 showUpWebView 方法内的实现代码,去除 addJavascriptInterface 方法调用,适用于检测工具检测出 showUpWebView 方法出现 JS 注入漏洞。

在主 Module 的 build.gradle 中配置:

// 删除 showUpWebView 方法的实现
sensorsAnalytics {
   sdk {
	   disableJsInterface = true
   }
}
GROOVY
  1. disableJsInterface 默认值为 false,如设置为 true ,将会影响手动调用 showUpWebview 方法实现的 App 与 H5 打通。
  2. 该配置仅适用于插件版本 v3.0.0 及以上。
  3. 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true。

15. 禁止插件注入 App 与 H5 打通相关方法

如果 SDK 初始化时开启了打通,在编译阶段会注入 addJavascriptInterface 方法实现打通,如果不需要可以关闭此功能。

主 Modulebuild.gradle 中配置:

// 关闭 H5 一键打通
sensorsAnalytics {
    autoHandleWebView = false
}
GROOVY
  1. autoHandleWebView 默认值为 true,如设置为 false,则使用 enableJavaScriptBridge() 方法开启打通功能的逻辑将失效。
  2. 该配置仅适用于插件版本 v3.2.2 及以上。

16. 禁止插件注入推送点击相关方法

为了实现推送点击事件的自动采集,神策插件在编译时会自动对项目中注入代码。如果希望关闭此注入逻辑,可以使用以下配置。

主 Modulebuild.gradle 中配置:

sensorsAnalytics {
         disableTrackPush = true
}
GROOVY
  1. disableTrackPush 默认值为 false,如设置为 true,则使用 enableTrackPush() 方法开启推送点击事件自动采集的逻辑将失效。
  2. 该配置仅适用于插件版本 v3.3.4 及以上。