接入didi-Dokit,开发者的哆啦A梦

第一步:didi-Dokit官网接入开发文档

这一步只要看看怎么接入就好了,之后我会用dokit的上层封装库一步引入依赖。
要想看的更细节,推荐可以看看Dokit-github代码库,这就是dokit,滴滴的哆啦A梦工具。
实在不了解的小伙伴也可以看这篇文章,对他有个初步了解:掘金Dokit介绍

第二步:在app包下创建dokit.gradle,并且在app-build.gradle中通过apply from: 'dokit.gradle'引入

apply plugin: 'com.didi.dokit'
dokitExt {
    //通用设置
    comm {
        //地图经纬度开关
        gpsSwitch true
        //网络开关
        networkSwitch true
        //大图开关
        bigImgSwitch true
        //webView js 抓包
        webViewSwitch true
    }

    slowMethod {
        //0:默认模式 打印函数调用栈 需添加指定入口  默认为application onCreate 和attachBaseContext
        //1:普通模式 运行时打印某个函数的耗时 全局业务代码函数插入
        strategy 0
        //函数功能开关
        methodSwitch true

        //调用栈模式配置
        stackMethod {
            //默认值为 5ms 小于该值的函数在调用栈中不显示
            thresholdTime 10
            //调用栈函数入口
            // enterMethods = ["com.ooftf.master.m.entrance.ui.MainActivity"]
            //黑名单 粒度最小到类 暂不支持到方法
            //methodBlacklist = ["org.bouncycastle.cert.AttributeCertificateHolder"]
        }
        //普通模式配置
        normalMethod {
            //默认值为 500ms 小于该值的函数在运行时不会在控制台中被打印
            thresholdTime 500
            //需要针对函数插装的包名
            //packageNames = ["com.master", "com.ooftf"]
            //不需要针对函数插装的包名&类名
            //methodBlacklist = ["com.didichuxing.doraemondemo.dokit"]
            //methodBlacklist = ["org.bouncycastle.cert.AttributeCertificateHolder"]
        }
    }
}
dependencies {
    implementation 'com.github.ooftf:director:1.3.2'  //比dokit的更上层的封装,里边引入了官网的依赖因此不做其他依赖引入
}

第三步:在project下的gradle.properties中设置dokit的全局配置

# dokit全局配置
# 插件开关
DOKIT_PLUGIN_SWITCH=true
# DOKIT读取三方库会和booster冲突 如果你的项目中也集成了booster 建议将开关改成false
DOKIT_THIRD_LIB_SWITCH=true
# 插件日志
DOKIT_LOG_SWITCH=true
# 自定义Webview的全限定名 主要是作用于h5 js抓包和数据mock
DOKIT_WEBVIEW_CLASS_NAME=com/didichuxing/doraemonkit/widget/webview/MyWebView
# dokit 慢函数开关
DOKIT_METHOD_SWITCH=true
# dokit 函数调用栈层级
DOKIT_METHOD_STACK_LEVEL=4
# 0:默认模式 打印函数调用栈 需添加指定入口  默认为application onCreate 和attachBaseContext
# 1:普通模式 运行时打印某个函数的耗时 全局业务代码函数插入
DOKIT_METHOD_STRATEGY=0

第四步:初始化

首先,在dokit官网进行应用配置https://www.dokit.cn/#/index/home 具体怎么做看文档,很简单。

/**
    * 在AppApplication中
    */
//初始化、didi-Dokit
Director.init("f6637fc66d9b4096acdd5c13bf206***", false) //第一个参数id需要在官网控制台查看自己的

第五步:调用

/**
  * 在你需要打开这个工具的位置
  * didi-Dokit(快速点击该View10次后出现)
  */
 Director.setDebugEntranceView(view)

第六步:抓包网络数据实现

要说个人觉得dokit最大的功能,就是可以实时网络抓包,数据对不对,看接口,再也不用眼巴巴看着AndroidStudio慢慢跑了……
【关键代码】:Director.applyDirectorInterceptor(builder)

object NetworkPortal {
    //网络请求
    private fun getDefaultBuilder(): OkHttpClient.Builder {
        ……
                Director.applyDirectorInterceptor(builder)  //dokit显示网络请求数据需要
    ……
        }
}
dokit2.jpg

dokit1.jpg

期间遇到的问题:

产生原因排查:gradle版本导致

7.0.1不行

换成6.7.1可以。

其他图示

dokit4.jpg

你可能感兴趣的:(接入didi-Dokit,开发者的哆啦A梦)