SDK 初始化¶
本文用于承载 Android SDK 初始化相关内容。
Application 配置¶
最佳的 SDK 初始化位置是在 Application 的 onCreate 方法中,如果您的应用尚未创建 Application,您需要创建一个,并在 AndroidManifest.xml 中声明,示例请参考这里。
基础配置¶
public class DemoApplication extends Application {
@Override
public void onCreate() {
// 本地环境部署、Datakit 部署
FTSDKConfig config = FTSDKConfig.builder(datakitUrl);
// 使用公网 DataWay
FTSDKConfig config = FTSDKConfig.builder(datawayUrl, clientToken);
// ...
// config.setDebug(true); // debug 模式
config.setCompressIntakeRequests(true); // 上报数据压缩
FTSdk.install(config);
}
}
class DemoApplication : Application() {
override fun onCreate() {
// 本地环境部署、Datakit 部署
val config = FTSDKConfig.builder(datakitUrl)
// 使用公网 DataWay
val config = FTSDKConfig.builder(datawayUrl, clientToken)
// ...
// config.setDebug(true) // debug 模式
config.setCompressIntakeRequests(true) // 上报数据压缩
FTSdk.install(config)
}
}
| 方法名 | 类型 | 必须 | 含义 |
|---|---|---|---|
| datakitUrl | String | 是 | 本地环境部署(Datakit)上报 URL 地址,例子:http://10.0.0.1:9529,端口默认 9529,安装 SDK 设备需能访问该地址。注意:datakitUrl 和 datawayUrl 配置两者二选一 |
| datawayUrl | String | 是 | 公网 Dataway 上报 URL 地址,从 [用户访问监测] 应用中获取,例子:https://open.dataway.url,安装 SDK 设备需能访问该地址。注意:datakitUrl 和 datawayUrl 配置两者二选一 |
| clientToken | String | 是 | 认证 token,需要与 datawayUrl 同时配置 |
| setDebug | Boolean | 否 | 是否开启调试模式,默认为 false,开启后方可打印 SDK 运行日志 |
| setEnv | EnvType | 否 | 设置采集环境,默认为 EnvType.PROD |
| setEnv | String | 否 | 设置采集环境,默认为 prod。注意:String 或 EnvType 类型只需配置一个 |
| setOnlySupportMainProcess | Boolean | 否 | 是否只支持在主进程运行,默认为 true,如果需要在其他进程中执行需要将该字段设置为 false |
| setEnableAccessAndroidID | Boolean | 否 | 开启获取 Android ID,默认为 true,设置为 false,则 device_uuid 字段数据将不进行采集,市场隐私审核相关查看这里 |
| addGlobalContext | Dictionary | 否 | 添加 SDK 全局属性,添加规则请查阅此处 |
| setServiceName | String | 否 | 设置服务名,影响 Log 和 RUM 中 service 字段数据,默认为 df_rum_android |
| setAutoSync | Boolean | 否 | 是否在采集数据后自动同步到服务器,默认为 true。当为 false 时使用 FTSdk.flushSyncData() 自行管理数据同步 |
| setSyncPageSize | Int | 否 | 设置同步请求条目数,SyncPageSize.MINI 5 条,SyncPageSize.MEDIUM 10 条,SyncPageSize.LARGE 50 条,默认 SyncPageSize.MEDIUM |
| setCustomSyncPageSize | Enum | 否 | 设置同步请求条目数,范围 [5,),注意请求条目数越大,代表数据同步占用更大的计算资源,默认为 10。注意:setSyncPageSize 和 setCustomSyncPageSize 只需要配置一个 |
| setSyncSleepTime | Int | 否 | 设置同步间歇时间,范围 [0,5000],单位 ms,默认为 0 |
| enableDataIntegerCompatible | Void | 否 | 需要与 web 数据共存情况下,建议开启。此配置用于处理 web 数据类型存储兼容问题。ft-sdk 1.6.9 版本默认开启 |
| setNeedTransformOldCache | Boolean | 否 | 是否需要兼容同步 ft-sdk 1.6.0 以下的版本的旧缓存数据,默认为 false |
| setCompressIntakeRequests | Boolean | 否 | 对上传同步数据进行 deflate 压缩,默认关闭,ft-sdk 1.6.3 以上版本支持这个方法 |
| enableLimitWithDbSize | Void | 否 | 开启使用 db 限制数据大小,默认 100MB,单位 Byte,设置的值越大,磁盘压力越大,默认不开启。开启之后 FTLoggerConfig.setLogCacheLimitCount 及 FTRUMConfig.setRumCacheLimitCount 将失效。ft-sdk 1.6.6 以上版本支持这个方法 |
| setEnableOkhttpRequestTag | Boolean | 否 | 对 Okhttp Request 自动添加唯一 ResourceID,用于相同请求高并发的场景。ft-sdk 1.6.10 以上支持,ft-plugin 1.3.5 以上支持 |
| setProxy | java.net.Proxy | 否 | 对数据网络同步请求进行 Proxy 代理设置,仅支持 okhttp3,ft-sdk 1.6.10 以上支持 |
| setProxyAuthenticator | okhttp3.Authenticator | 否 | 对数据同步网络请求进行 Proxy 代理设置,仅支持 okhttp3,ft-sdk 1.6.10 以上支持 |
| setDns | okhttp3.Dns | 否 | 数据同步网络请求支持自定义 Dns 对域名解析进来自定义处理,仅支持 okhttp3,ft-sdk 1.6.10 以上支持 |
| setDataModifier | DataModifier | 否 | 对单个字段进行更改。ft-sdk 1.6.11 以上支持,使用示例请看这里 |
| setLineDataModifier | LineDataModifier | 否 | 对单条数据进行更改。ft-sdk 1.6.11 以上支持,使用示例请看这里 |
| setRemoteConfiguration | Boolean | 否 | 是否开启数据采集的远程配置功能,默认为 false。开启之后,SDK 初始化或应用热启动会触发数据更新。ft-sdk 1.6.12 以上支持。DataKit 版本要求 >= 1.60 或使用公网 Dataway |
| setRemoteConfigMiniUpdateInterval | Int | 否 | 设置数据更新最短间隔,单位秒,默认 12 小时。ft-sdk 1.6.12 以上支持 |
| setRemoteConfigurationCallBack | FTRemoteConfigManager.FetchResult | 否 | 远程配置结果返回,代码示例。ft-sdk 1.6.16 以上支持 |
运行时能力¶
关闭 SDK¶
如果动态改变 SDK 配置,需要先关闭,以避免错误数据的产生。
清理 SDK 缓存数据¶
使用 FTSdk 清理未上报的缓存数据。
主动同步数据¶
使用 FTSdk 主动同步数据。
FTSdk.setAutoSync(false)时,才需要自行进行数据同步。