全埋点插件配置 (Android)
1. 关闭插件
SDK 插件正确配置后,默认插件启用,在编译时会注入埋点相关代码。如果要关闭,在工程 gradle.properties 中配置:
// 禁用插件
sensorsAnalytics.disablePlugin = true
- sensorsAnalytics.disablePlugin 默认值是 false。如设置为 true ,将禁用插件,从而影响全埋点的点击事件以及 Fragment 的浏览事件。
- 该配置仅适用于插件版本 v3.0.2 及以上。
2. 关闭多线程编译
SDK 插件默认为多线程编译,如果要关闭,在工程 gradle.properties 中配置:
// 禁用多线程编译
sensorsAnalytics.disableMultiThreadBuild = true
- 多线程编译可加快编译速度,但是会占用更多的计算机资源。
- sensorsAnalytics.disableMultiThreadBuild 默认值是 false。
- 该配置仅适用于插件版本 v3.0.2 及以上。
3. 关闭增量编译
SDK 插件默认为增量编译,如果要关闭,在工程 gradle.properties 中配置:
// 禁用增量编译
sensorsAnalytics.disableIncrementalBuild = true
- 增量编译可以使用编译缓存,用于加快编译速度。
- sensorsAnalytics.disableIncrementalBuild 默认值是 false,默认增量编译。
- 该配置仅适用于插件版本 v3.0.2 及以上。
4. 开启插件日志打印
开启插件 Debug 日志打印后,在编译期间可以打印插件编译日志,默认是关闭编译日志。如果要开启,在主 Module 的 build.gradle 中配置:
sensorsAnalytics {
// 开启 Debug 日志
debug = true
}
debug 默认值是 false。如果开启 Debug 模式,在编译期间会打印详细日志信息,比如插件当前正在处理哪个 jar、哪个 class、哪个 method 等。
5. 开启白名单
如果只需要全埋点采集少数 class、package 或 jar 中的点击事件和 Fragment 页面浏览事件,可通过白名单方式配置需要采集的包名或类名。
在主 Module 的 build.gradle 中配置:
sensorsAnalytics {
//表示启用白名单
useInclude = true
//通过 include 来指定插件处理哪些 class、package
include = ['a.b.c', 'a.b.c.A']
}
如果要自动采集 Fragment 的页面浏览事件,需要将父类是 Fragment 的类加入到白名单中。 例如:A 直接继承 Fragment,B 继承 A ,如果需要采集 B 的页面浏览事件,这个时候需要把 A 加入到白名单中,而不是 B。
示例:
sensorsAnalytics {
useInclude = true
include = ['demo.sensorsdata.com.sa_sdk_demo.viewpager_fragment','com.sensorsdata.analytics.android']
}
6. 开启黑名单
开启全埋点事件采集后,如果个别包、类中不需要全埋点采集点击事件和 Fragment 页面浏览事件,可通过开启黑名单配置不需要采集的包名或类名。
在主 Module 的 build.gradle 中配置:
sensorsAnalytics {
//启用黑名单
useInclude = false
//通过 exclude 来指定不处理哪些 class、package,即不处理某个特定的类或包下面的所有类。
exclude = ['a.b.c', 'a.b.c.A']
}
exclude 指定的包、类中的点击事件和 Fragment 页面浏览事件将不会自动采集。
示例:
sensorsAnalytics {
exclude = ['demo.sensorsdata.com.sa_sdk_demo.viewpager_fragment','com.sensorsdata.analytics.android']
}
7. 禁止插件处理 jar、aar
如果项目中 jar、aar 包不需要插件扫描注入全埋点代码,可以通过该配置全部忽略,默认全部处理。
在主 Module 的 build.gradle中配置:
sensorsAnalytics {
// 不处理 jar、aar 包
disableJar = true
}
disableJar 默认值 false , jar 和 aar 神策插件都会处理。如果开启使用黑名单,通过 disableJar = true 可以一次性将所有的 jar 和 aar 加入到黑名单里。
8. 禁止获取 IMEI 号
如果不要采集 IMEI,通过以下配置不采集,配置后神策插件将在编译期移除获取 IMEI 的相关代码。
在主 Module 的 build.gradle 中配置:
// 禁止获取 IMEI 号
sensorsAnalytics {
sdk {
disableIMEI = true
}
}
- disableIMEI 默认值为 false。如设置为 true , 将不会采集 IMEI ,会影响到渠道追踪。
- 该配置仅适用于插件版本 v3.0.0 及以上。
- 在 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
}
}
- disableMacAddress 默认值为 false。如设置为 true ,将不在采集 mac 地址,会影响渠道追踪。
- 该配置仅适用于插件版本 v3.0.0 及以上。
- 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true
10. 禁止获取 Android ID
如果不要采集 Android ID,通过以下配置不采集,配置后神策插件将在编译期移除获取 Android ID 的相关代码。
在主 Module 的 build.gradle 中配置:
// 禁止获取 Android ID
sensorsAnalytics {
sdk {
disableAndroidID = true
}
}
// 开启获取 Android ID
sensorsAnalytics {
sdk {
disableAndroidID = false
}
}
- disableAndroidID 默认值为 false。如设置为 true,将不在采集 Android ID ,会影响到事件属性 $device_id 以及渠道追踪。
- 该配置仅适用于插件版本 v3.0.0 及以上。
- 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true
11. 禁止获取运营商信息
如果不要采集 $carrier (运营商名称),通过以下配置不采集,配置后神策插件将在编译期移除获取运营商名称的相关代码。
在主 Module 的 build.gradle 中配置:
// 禁止获取运营商信息
sensorsAnalytics {
sdk {
disableCarrier = true
}
}
- disableCarrier 默认值为 false,如设置为 true ,将会无法采集到运营商信息。
- 该配置仅适用于插件版本 v3.0.1 及以上。
- 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true
12. 禁止获取 OAID
如果不要采集 OAID,通过以下配置不采集,该配置会删除 OaidHelper.getOAID 中的内容,统一返回空字符串。
在主 Module 的 build.gradle 中配置:
// 禁止获取 OAID
sensorsAnalytics {
sdk {
disableOAID = true
}
}
- disableOAID 默认值为 false,如设置为 true ,将会无法采集到 OAID。
- 该配置仅适用于插件版本 v3.4.7 及以上。
- 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true
13. 关闭 SDK 日志打印
在主 Module 的 build.gradle 中配置:
// 禁用 SDK 日志打印
sensorsAnalytics {
sdk {
disableLog = true
}
}
- disableLog 默认值为 false,如设置为 true,SDK 将不会打印 Log 日志和异常日志。
- 该配置仅适用于插件版本 v3.0.0 及以上。
- 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置。配置如下: android.enableD8.desugaring = true
14. 设置插件注入埋点代码位置
神策插件默认在宿主项目的点击事件方法和 Fragment 生命周期方法的最后一行注入埋点代码。如果需要在宿主项目相应方法的第一行插入埋点代码,在工程的 gradle.properties 中加入以下配置:
sensorsAnalytics.isHookOnMethodEnter = true
- sensorsAnalytics.isHookOnMethodEnter 默认值是 false,在方法结束时插入代码。
- 该配置仅适用于插件版本 v3.1.9 及以上。
15. 删除 showUpWebView 方法体
此功能会删除 showUpWebView 方法内的实现代码,去除 addJavascriptInterface 方法调用,适用于检测工具检测出 showUpWebView 方法出现 JS 注入漏洞。
在主 Module 的 build.gradle 中配置:
// 删除 showUpWebView 方法的实现
sensorsAnalytics {
sdk {
disableJsInterface = true
}
}
- disableJsInterface 默认值为 false,如设置为 true ,将会影响手动调用 showUpWebview 方法实现的 App 与 H5 打通。
- 该配置仅适用于插件版本 v3.0.0 及以上。
- 在 Android Grdle Plugin 3.2.0(Android Studio 3.2)以前的版本环境中使用该配置需要在 gradle.properties 中手动打开脱糖配置:android.enableD8.desugaring = true。
16. 禁止插件注入 App 与 H5 打通相关方法
如果 SDK 初始化时开启了打通,在编译阶段会注入 addJavascriptInterface 方法实现打通,如果不需要可以关闭此功能。
在主 Module 的 build.gradle 中配置:
// 关闭 H5 一键打通
sensorsAnalytics {
autoHandleWebView = false
}
- autoHandleWebView 默认值为 true,如设置为 false,则使用 enableJavaScriptBridge() 方法开启打通功能的逻辑将失效。
- 该配置仅适用于插件版本 v3.2.2 及以上。
17. 禁止插件注入推送点击相关方法
为了实现推送点击事件的自动采集,神策插件在编译时会自动对项目中注入代码。如果希望关闭此注入逻辑,可以使用以下配置。
在主 Module 的 build.gradle 中配置:
sensorsAnalytics {
disableTrackPush = true
}
- disableTrackPush 默认值为 false,如设置为 true,则使用 enableTrackPush() 方法开启推送点击事件自动采集的逻辑将失效。
- 该配置仅适用于插件版本 v3.3.4 及以上。