/Injector

Primary LanguageJava

集成

build.gradle 配置

buildscript {
    dependencies {
        ...
        classpath fileTree(dir: 'plugins', include: ['*.jar'])
    }
}

app/build.gradle 配置

apply plugin: 'com.qiyi.video.injector'

injector {
    leakCanaryClass = "com.fffz.injector.sample.LeakCanaryAdapter"
    watchFragment = true

    trackClass = "com.fffz.injector.sample.Tracker"
    trackActivity = true

    trackTargetFile = "track.json"
}

Activity

onResume 中插入 Tracker.track("onResume "+ getClass().getName())

onPause 中插入 Tracker.track("onPause "+ getClass().getName())

Fragment

onDestroy 中插入 LeakCanaryAdapter.watch(this)

trackTarget

读取json配置文件,其中 argIndexes 1 代表 onClick 方法的第 1 个参数,0 代表 this className 不配置表示所有在 class 中的 methodName 方法进行插桩 sample 中的配置表示

public void onClick(View view) {
    Tracker.track(Utils.getClickText(view));
    ...
}