跳转至

手动接入

不使用 ft-plugin 情况下如何接入 SDK

观测云 使用 Android Gradle Plugin Transformation 实现代码注入,从而实现数据自动采集。但是由于一些兼容性问题,可能存在无法使用 ft-pluginft-plugin-legacy 的情况。受影响范围包括:

  • RUM 中的 ActionResource
  • android.util.Log
  • Java 与 Kotlin println 控制台日志自动抓取
  • 符号文件自动上传

目前针对这种情况,可采用手动集成方案。

Application 启动事件

源码示例参考 DemoForManualSet.kt

// Application
@Override
public void onCreate() {
    super.onCreate();
    // 需要在 SDK 初始化前调用
    FTAutoTrack.startApp(null);
    // 设置 SDK 配置
    setSDK(this);
}
// Application
override fun onCreate() {
    super.onCreate()
    // 需要在 SDK 初始化前调用
    FTAutoTrack.startApp(null)
    // 设置 SDK 配置
    setSDK(this)
}

手动添加用户操作

按键等事件需要在触发处自行添加。这里以 Button onClick 事件为例,源码示例参考 ManualActivity.kt

view.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        FTRUMGlobalManager.get().startAction("[action button]", "click");
    }
});
view.setOnClickListener {
    FTRUMGlobalManager.get().startAction("[action button]", "click")
}

手动接入 OkHttp Resource / Trace

OkHttp 可通过 addInterceptoreventListener 的方式接入 ResourceTrace。示例如下,源码示例参考 ManualActivity.kt

OkHttpClient.Builder builder = new OkHttpClient.Builder()
    .addInterceptor(new FTTraceInterceptor())
    .addInterceptor(new FTResourceInterceptor())
    .eventListenerFactory(new FTResourceEventListener.FTFactory());
//.eventListenerFactory(new FTResourceEventListener.FTFactory(true));
OkHttpClient client = builder.build();
val builder = OkHttpClient.Builder()
    .addInterceptor(FTTraceInterceptor())
    .addInterceptor(FTResourceInterceptor())
    .eventListenerFactory(FTResourceEventListener.FTFactory())
    //.eventListenerFactory(new FTResourceEventListener.FTFactory(true))
val client = builder.build()

其他网络框架需要自行实现 FTRUMGlobalManager.startResourcestopResourceaddResource 以及 FTTraceManager.getTraceHeader。具体实现方式可参考源码示例 ManualActivity.kt

WebView 手动配置

FTAutoTrack.setUpWebView(webview);
//loadUrl 加载操作以前进行配置
FTAutoTrack.setUpWebView(webview)
//loadUrl 加载操作以前进行配置

文档评价

文档内容是否对您有帮助? ×