美文网首页AndroidAndroid 复习学习使用
接入didi-Dokit,开发者的哆啦A梦

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

作者: 千夜零一 | 来源:发表于2021-06-23 11:14 被阅读0次

    第一步: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梦

        本文链接:https://www.haomeiwen.com/subject/knxbyltx.html