接入didi-Dokit,開發(fā)者的哆啦A夢

第一步:didi-Dokit官網(wǎng)接入開發(fā)文檔

這一步只要看看怎么接入就好了,之后我會用dokit的上層封裝庫一步引入依賴。
要想看的更細(xì)節(jié),推薦可以看看Dokit-github代碼庫,這就是dokit,滴滴的哆啦A夢工具。
實在不了解的小伙伴也可以看這篇文章,對他有個初步了解:掘金Dokit介紹

第二步:在app包下創(chuàng)建dokit.gradle,并且在app-build.gradle中通過apply from: 'dokit.gradle'引入

apply plugin: 'com.didi.dokit'
dokitExt {
    //通用設(shè)置
    comm {
        //地圖經(jīng)緯度開關(guān)
        gpsSwitch true
        //網(wǎng)絡(luò)開關(guān)
        networkSwitch true
        //大圖開關(guān)
        bigImgSwitch true
        //webView js 抓包
        webViewSwitch true
    }

    slowMethod {
        //0:默認(rèn)模式 打印函數(shù)調(diào)用棧 需添加指定入口  默認(rèn)為application onCreate 和attachBaseContext
        //1:普通模式 運行時打印某個函數(shù)的耗時 全局業(yè)務(wù)代碼函數(shù)插入
        strategy 0
        //函數(shù)功能開關(guān)
        methodSwitch true

        //調(diào)用棧模式配置
        stackMethod {
            //默認(rèn)值為 5ms 小于該值的函數(shù)在調(diào)用棧中不顯示
            thresholdTime 10
            //調(diào)用棧函數(shù)入口
            // enterMethods = ["com.ooftf.master.m.entrance.ui.MainActivity"]
            //黑名單 粒度最小到類 暫不支持到方法
            //methodBlacklist = ["org.bouncycastle.cert.AttributeCertificateHolder"]
        }
        //普通模式配置
        normalMethod {
            //默認(rèn)值為 500ms 小于該值的函數(shù)在運行時不會在控制臺中被打印
            thresholdTime 500
            //需要針對函數(shù)插裝的包名
            //packageNames = ["com.master", "com.ooftf"]
            //不需要針對函數(shù)插裝的包名&類名
            //methodBlacklist = ["com.didichuxing.doraemondemo.dokit"]
            //methodBlacklist = ["org.bouncycastle.cert.AttributeCertificateHolder"]
        }
    }
}
dependencies {
    implementation 'com.github.ooftf:director:1.3.2'  //比dokit的更上層的封裝,里邊引入了官網(wǎng)的依賴因此不做其他依賴引入
}

第三步:在project下的gradle.properties中設(shè)置dokit的全局配置

# dokit全局配置
# 插件開關(guān)
DOKIT_PLUGIN_SWITCH=true
# DOKIT讀取三方庫會和booster沖突 如果你的項目中也集成了booster 建議將開關(guān)改成false
DOKIT_THIRD_LIB_SWITCH=true
# 插件日志
DOKIT_LOG_SWITCH=true
# 自定義Webview的全限定名 主要是作用于h5 js抓包和數(shù)據(jù)mock
DOKIT_WEBVIEW_CLASS_NAME=com/didichuxing/doraemonkit/widget/webview/MyWebView
# dokit 慢函數(shù)開關(guān)
DOKIT_METHOD_SWITCH=true
# dokit 函數(shù)調(diào)用棧層級
DOKIT_METHOD_STACK_LEVEL=4
# 0:默認(rèn)模式 打印函數(shù)調(diào)用棧 需添加指定入口  默認(rèn)為application onCreate 和attachBaseContext
# 1:普通模式 運行時打印某個函數(shù)的耗時 全局業(yè)務(wù)代碼函數(shù)插入
DOKIT_METHOD_STRATEGY=0

第四步:初始化

首先,在dokit官網(wǎng)進(jìn)行應(yīng)用配置https://www.dokit.cn/#/index/home 具體怎么做看文檔,很簡單。

/**
    * 在AppApplication中
    */
//初始化、didi-Dokit
Director.init("f6637fc66d9b4096acdd5c13bf206***", false) //第一個參數(shù)id需要在官網(wǎng)控制臺查看自己的

第五步:調(diào)用

/**
  * 在你需要打開這個工具的位置
  * didi-Dokit(快速點擊該View10次后出現(xiàn))
  */
 Director.setDebugEntranceView(view)

第六步:抓包網(wǎng)絡(luò)數(shù)據(jù)實現(xiàn)

要說個人覺得dokit最大的功能,就是可以實時網(wǎng)絡(luò)抓包,數(shù)據(jù)對不對,看接口,再也不用眼巴巴看著AndroidStudio慢慢跑了……
【關(guān)鍵代碼】:Director.applyDirectorInterceptor(builder)

object NetworkPortal {
    //網(wǎng)絡(luò)請求
    private fun getDefaultBuilder(): OkHttpClient.Builder {
        ……
                Director.applyDirectorInterceptor(builder)  //dokit顯示網(wǎng)絡(luò)請求數(shù)據(jù)需要
    ……
        }
}
dokit2.jpg

dokit1.jpg

期間遇到的問題:

產(chǎn)生原因排查:gradle版本導(dǎo)致

7.0.1不行

換成6.7.1可以。

其他圖示

dokit4.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 引言 先簡單介紹一下Android插件化。很早之前已經(jīng)有公司在研究這項技術(shù),淘寶做得比較早,但淘寶的這項技術(shù)一直是...
    流水潺湲閱讀 12,311評論 8 149
  • 我如何在23天內(nèi)開發(fā)了一款 Android 游戲?(Bigosaur) Android 學(xué)習(xí)教程 Android ...
    AllenJuns閱讀 11,370評論 11 376
  • 最近需要接入微信登陸,微信付款等功能,然后看了下微信只有Android和Ios的SDK,沒有Unity使用的SDK...
    VECTOR_Y閱讀 1,063評論 0 0
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,861評論 28 54
  • 信任包括信任自己和信任他人 很多時候,很多事情,失敗、遺憾、錯過,源于不自信,不信任他人 覺得自己做不成,別人做不...
    吳氵晃閱讀 6,379評論 4 8

友情鏈接更多精彩內(nèi)容