论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
移动端开发
›
Dokit 开源库:简化 Android 应用开发的利器 ...
Dokit 开源库:简化 Android 应用开发的利器
王國慶
论坛元老
|
2024-6-20 00:36:15
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
1869
|
帖子
1869
|
积分
5611
在 Android 应用
开发
过程中,我们常常必要处理调试、性能优化和用户体验等方面的问题。然而,这些使命通常必要大量的时间和精力。荣幸的是,有一款名为 Dokit 的开源库可以帮助我们简化这些使命,进步
开发
服从和应用质量。
一、Dokit 简介
Dokit 是一款功能强大且易于集成的 Android
开发
工具库,旨在帮助
开发
人员更轻松地进行应用调试、性能优化和用户体验改进。它提供了丰富的调试工具、性能监测和悬浮窗功能,使
开发
者可以更方便地查看应用的运行状态、性能指标和运行时信息。
Github:https://github.com/didi/DoKit
文档:https://xingyun.xiaojukeji.com/docs/dokit/#/intro
网站:https://www.dokit.cn/
介绍:https://zhuanlan.zhihu.com/p/196625684
二、Dokit 功能
Dokit 提供了许多有用的功能,以下是其中一些紧张功能的介绍:
悬浮窗调试工具
: Dokit 提供了一个可自定义的悬浮窗,可以在应用运行时表现调试信息,包括布局边界、视图层级、性能指标等。这使得调试 UI 布局和交互变得更加方便。
应用性能监测
: Dokit 可以监测应用的性能指标,如 CPU 使用率、内存占用、网络哀求等,并以可视化的方式展示。这有助于
开发
人员发现性能瓶颈并进行优化。
网络哀求监控
: Dokit 可以拦截应用的网络哀求,并展示哀求的详细信息,如哀求 URL、哀求参数、响应数据等。这对于调试和分析网络哀求非常有用。
应用信息查看
: Dokit 提供了应用信息查看功能,包括应用版本、设备信息、权限信息等。这有助于相识应用的运行环境和设置。
自定义插件
: Dokit 还支持
开发
者自定义插件,根据自己的需求扩展功能。你可以根据应用的特定需求,添加自定义的调试工具和监测功能。
三、Dokit 使用
3.1 DoKit Android 最新版本
由于jcenter事件的影响,我们必要将DoKit For Android迁徙到mavenCentral(),但是必要更改groupId.所以大家要注意一下,具体的更新信息如下:
lastversion:3.5.0;kotlin编译插件为1.4.32 ;支持Gradle 6.8及以上
lastversion:3.5.0.1; kotlin编译插件为1.3.72; 支持Gradle 6.8及以下
DoKit最新版本描述3.3.5及以后的AndroidxdebugImplementation “io.github.didi.dokit
{aarName}: ${lastversion}”(1)dokitx的library和plugin的groupId及版本号必要保持一致;(2)AGP最低版本要求3.3.0+3.3.5及从前的Androidx版本debugImplementation “com.didichuxing.doraemonkit
{aarName}:3.3.5”(1)dokitx的library和plugin的groupId及版本号必要保持一致; (2)AGP最低版本要求3.3.0+支持android supportdebugImplementation “com.didichuxing.doraemonkit
{aarName}:3.3.5”support放弃更新,请大家尽快升级和适配Androidx
${aarName}必要改为指定的名称,参考如下:
//核心模块
debugImplementation "io.github.didi.dokit:dokitx:${lastversion}"
//文件同步模块
debugImplementation "io.github.didi.dokit:dokitx-ft:${lastversion}"
//一机多控模块
debugImplementation "io.github.didi.dokit:dokitx-mc:${lastversion}"
//weex模块
debugImplementation "io.github.didi.dokit:dokitx-weex:${lastversion}"
//no-op 模块
releaseImplementation "io.github.didi.dokit:dokitx-no-op:${lastversion}"
复制代码
debugImplementation 必要根据自己的构建改成对应的productFlavor
下面所有的例子均用dokitx举例。要使用support版本请将dokitx改为dokit即可。 v3.3.5以后的版本必要添加mavenCentral()仓库
3.2 DoKit Android 接入步骤
Gradle 依赖
dependencies {
…
debugImplementation 'io.github.didi.dokit:dokitx:${lastversion}'
releaseImplementation 'io.github.didi.dokit:dokitx-no-op:${lastversion}'
…
}
复制代码
初始化
在 App 启动的时候进行初始化。
@Override
public void onCreate() {
DoKit.Builder(this)
.productId("需要使用平台功能的话,需要到dokit.cn平台申请id")
.build()
}
复制代码
流量监控以及其他AOP功能(可选)
AOP包括以下几个功能:
1)百度、腾讯、高德舆图的经纬度模仿
2)UrlConnection、Okhttp 抓包以及后续的接口hook功能
3)App 启动耗时统计
4)慢函数
5)大图
在项目的 build.gradle 中添加 classpath。
buildscript {
dependencies {
…
classpath 'io.github.didi.dokit:dokitx-plugin:${lastversion}'
…
}
}
复制代码
在 app 的 build.gradle 中添加 plugin。
apply plugin: 'com.didi.dokit'
复制代码
插件设置选项:
添加到app module 的build.gradle文件下 与android {}处于同一级
dokitExt {
//通用设置
comm {
//地图经纬度开关
gpsSwitch true
//网络开关
networkSwitch true
//大图开关
bigImgSwitch true
//webView js 抓包
webViewSwitch true
}
slowMethod {
//调用栈模式配置 对应gradle.properties中DOKIT_METHOD_STRATEGY=0
stackMethod {
//默认值为 5ms 小于该值的函数在调用栈中不显示
thresholdTime 10
//调用栈函数入口 千万不要用我默认的配置 如果有特殊需求修改成项目中自己的入口 假如不需要可以去掉该字段
enterMethods = ["com.didichuxing.doraemondemo.MainDebugActivity.test1"]
//黑名单 粒度最小到类 暂不支持到方法 千万不要用我默认的配置 如果有特殊需求修改成项目中自己的入口 假如不需要可以去掉该字段
methodBlacklist = ["com.facebook.drawee.backends.pipeline.Fresco"]
}
//普通模式配置 对应gradle.properties中DOKIT_METHOD_STRATEGY=1
normalMethod {
//默认值为 500ms 小于该值的函数在运行时不会在控制台中被打印
thresholdTime 500
//需要针对函数插装的包名 千万不要用我默认的配置 如果有特殊需求修改成项目中自己的项目包名 假如不需要可以去掉该字段
packageNames = ["com.didichuxing.doraemondemo"]
//不需要针对函数插装的包名&类名 千万不要用我默认的配置 如果有特殊需求修改成项目中自己的项目包名 假如不需要可以去掉该字段
methodBlacklist = ["com.didichuxing.doraemondemo.dokit"]
}
}
}
复制代码
其中
strategy
和
methodSwitch
设置项已经弃用。新的设置开关位于项目根目录下的
gradle.properties
中。
具体的设置如下所示:
# 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
复制代码
理由
: 为了淘汰项目的编译时间,所以慢函数的默认开关为false。再加上plugin的transform注册必须早于project.afterEvaluate。所以无法通过原先的设置项拿到设置信息,只能通过在全局的gradle.properties中的设置可以拿到。
tips:
当修改完DoKit插件的相干设置以后一定要clean一下重新编译才能生效。这是AS的缓存增量编译导致的,暂时没有其他好的解决方案。
自定义功能组件(可选)
自定义功能组件
四、总结
Dokit 是一款功能强大且易于集成的 Android
开发
工具库,它提供了丰富的调试工具、性能监测和悬浮窗功能,帮助
开发
人员更轻松地进行应用调试、性能优化和用户体验改进。通过集成 Dokit,
开发
人员可以更方便地查看应用的运行状态、性能指标和运行时信息。你可以在 Dokit 的官方文档中进一步相识其更详细的功能和使用方法,祝你在 Android 应用
开发
中取得更高的服从和质量!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
王國慶
论坛元老
这个人很懒什么都没写!
楼主热帖
webman
不想打开 IDE 的摆烂一天
Jupyter Notebook,太强大了
React技巧之发出http请求
【Shashlik.EventBus】.NET 事件总线, ...
【网络】https单向认证和双向认证 ...
APP内存管理
Apache DolphinScheduler 3.0.0 正式版 ...
Bluecmsv1.6-代码审计
java如何显示"html转义字符"对应的原始 ...
标签云
集成商
AI
运维
CIO
存储
服务器
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表