You need to enable JavaScript to run this app.
导航

Android SDK FAQ

最近更新时间2024.01.02 15:18:44

首次发布时间2023.07.20 12:07:03

Android SDK 的数据上报策略

(1)SDK 未初始化时,如果有事件触发(包括自定义的),会缓存在客户端内存,最多缓存 300 条
(2)SDK 初始化后,如果有事件触发(包括预置的、自定义的),是否调用了 start,start 之前会落库,start之后每 60s 上报一次(每次最多是 1600 条,如果一分钟内产生超过 1600条 需要等下个 60s 再报)

  • 6.15.0 版本之前每分钟最多一个 pack,一个 pack 有 200 条数据,如果失败的 pack 也会尝试发送;
  • 6.15.0 版本及以后的策略是每分钟最多 8 个 pack;
    (3)SDK 初始化后,如切换用户,立即上报一次。

Android SDK是混淆过的还是非混淆的?

提供的 SDK 是混淆过的。

Android SDK 6.10.0 版本是否还会采集 imsi 字段?

具体可以参考文档https://www.volcengine.com/docs/6285/65980#_3-2-%E5%85%B3%E9%97%ADmac%E5%9C%B0%E5%9D%80%E9%87%87%E9%9B%86
6.9.6 版本之后去掉了 imsi 字段的采集,对于 iimei、mac 地址、meid 等参数,如果需要关闭,有两种策略:

  • 只关闭采集行为:
config.setImeiEnable(false);
  • 移除相关采集代码:
teaExtension {   
     // 埋点黑名单配置,仅支持以下配置:    
     // 'MAC_ADDRESS': mac 地址    
     // 'IMEI_MEID': imei 和 meid    
     trackBlackList = ['MAC_ADDRESS', 'IMEI_MEID']
 }

安卓 SDK 初始化时设置的渠道信息时填写什么信息?

初始化时候渠道参数是一个必填信息,设置的渠道参数一般是指 app 的来源渠道,比如某应用市场或者应用宝,或者自定的渠道信息(vivo,huawei 等)。如果客户获取不到这些值那么可以设置一个默认值,比如 “android_channel” 。

A/B 实验中 getAbConfig() 和 getAllAbTestConfigs() 方法的区别?

getAbConfig() 获取参数中传的 key 对应实验的实验结果,并上报曝光事件;
getAllAbTestConfigs() 获取用户所有客户端实验的分流结果,不会上报曝光事件。需要注意的是,返回的不是命中实验(曝光后)的用户实验信息。如果需要获取实验用户曝光进组的 VID 信息,Android 客户端请使用 getAbSdkVersion() 方法获取该用户的曝光 VID,IOS 端请使用 allVids() 方法获取该用户的曝光 VID。

Android 插桩黑名单的配置是做什么用的?

用于过滤不需要插桩的类,比如第三方库不需要被插桩,举例:Tinker。

apply plugin: 'com.bytedance.std.tracker' 此行代码是做什么用的?

用于引入 AppLog 插件,插件主要有以下功能:

  • 全埋点插桩
    • 全埋点上传的,如果不需要全埋点可以注释掉,在 SDK 接入的时候,会用到这个插件,会在编译期往 Activity 的 dispatchTouchEvent 中做一些插桩;
  • 部分可配置的敏感信息代码采集移除
  • h5 打通开关

Android,关闭 oaid & android id 采集时,该设备卸载重装 device_id 是否变化、重装时操作系统升级是否会变化?

如果 android id 关闭 ,sdk 内部会有生成逻辑,并且仅在安装中生效,卸载后会重新生成。
具体可以参考文档“关闭Android ID采集”这部分内容 https://www.volcengine.com/docs/6285/65980#_3-5-%E5%85%B3%E9%97%ADandroid-id%E9%87%87%E9%9B%86

离线集成 SDK 想要避免 mac 信息的采集,在 app 的 build.gradle 中添加 teaExtension 配置发现会报错

//二选一即可

 // 仅关闭采集行为
 config.setMacEnable(false);

 // 移除相关采集代码
 // 在 app 级别的 build.gradle 中的最外层配置
 teaExtension { 
     // 埋点黑名单配置,仅支持以下配置: 
     // 'MAC_ADDRESS': mac 地址 
     // 'IMEI_MEID': imei 和 meid 
     trackBlackList = ['MAC_ADDRESS', 'IMEI_MEID'] 
 }

请问 A/B 实验 SDK 有针对 google play 审核政策的版本吗?

目前没有特别针对 google play 的 SDK 版本,海外 APP 需要集成 global 版本,该版本 SDK 满足海外隐私合规政策。

SDK 初始化前会缓存数据,会获取用户信息吗?

不会,Android 在初始化前触发的自定义事件只缓存事件信息,等初始化后将获取的设备信息用户信息补充上,init 之前不会获取和 init 之后会获取。

SDK 关闭所有设备采集,会影响数据采集吗?

会影响卸载重装后的 did 一致性。
具体可以参考文档“关闭Android ID采集”这部分内容 https://www.volcengine.com/docs/6285/65980#_3-5-%E5%85%B3%E9%97%ADandroid-id%E9%87%87%E9%9B%86

Android SDK 和其他第三方 SDK(如 bonreesdk)一起集成时插件 plugin 报冲突?

// 在 app module 级别的 build.gradle 
// 默认放到插件列表最后一个声明,如遇到冲突,
// 可以将其调整到 application / kotlin 等官方插件后的第一个
apply plugin: 'com.bytedance.std.tracker'

Android SDK 有可以检测 ssid 变化的 api 吗?

可以通过回调方法 addDataObserver 监听 onRemoteIdGet,第一个参数为 boolean changed,但是是任意参数变化都会是 true,此时可以对比 @NonNull String oldSsid, @NonNull String newSsid,是否相同,如果不同就认为变化。

集成 Android SDK 的 APP 最新版本是周二发的,为什么周一就有这么多人行为流里有新版本的事件?

应该是测试时使用了生产上报地址,所以有数据。

Android SDK 获取的 oaid 是什么?

oaid 是匿名设备标识符(Open Anonymous Device Identifier,OAID)是由移动安全联盟、中国信息通信研究院及终端生产企业共同研究制定了联盟标准《移动智能终端补充设备标识体系规范》中的一种 Android 平台的设备标识符。

Android SD K上报的数据,可以区分区分设备分类为手机 or 平板吗?

SDK 没有直接作区分,只能通过参数来区分,使用分辨率字段。