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