接入didi-Dokit,开发者的哆啦A梦
2021-06-23 本文已影响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可以。