DoKit is a free, open source monitoring & observability project written in Java and released under Apache-2.0. It has 20,415 GitHub stars, 3,183 forks and 275 open issues, and was last pushed 11 days ago. On this registry it ranks #18 of 97 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 13 stars over the last 3 tracked days.

What is DoKit?

DoKit is an Apache-2.0 efficiency platform for the full research-and-development lifecycle of pan-frontend products — Android, iOS, mini programs, Flutter and Web — built for mobile developers, test engineers and UI designers who want debugging, performance-monitoring and visual-inspection tooling inside a debug build instead of hand-rolled into each application.

What it is

DoKit was created inside Didi's 城运服体验技术部 and has grown into a relatively complete ecosystem: DoKit For Android, DoKit For iOS, DoKit For 小程序, DoKit For Flutter and DoKit For Web. The project is written in Java and released under the Apache-2.0 licence. With the launch of the www.dokit.cn platform, DoKit moved from being a single efficiency tool into an efficiency tool platform that extends each client through 接口 Mock, 健康体检, 文件同步助手 and 一机多控.

The concrete problem is duplication. Almost every app of moderate size ships its own offline test code — environment switching, frame-rate viewing — with entries hidden behind special gestures, a double-tap on the status bar, a dedicated keyWindow kept above the app, or similar private conventions. Those modules are largely similar across applications, yet each team reimplements them separately. DoKit replaces that scattered, per-app debug scaffolding with one integrated set of tools presented in a Doraemon panel, into which teams can also plug their own business-coupled auxiliary tools.

Key capabilities

  • A hosted platform layer at www.dokit.cn providing 数据 Mock through App network interception without code changes, 健康体检 integrated diagnostics with data visualization, 文件同步助手 for terminal file and database operations, and 一机多控 master-slave device synchronisation.
  • A 性能检测 suite covering 帧率, CPU and 内存 as waveform charts, 流量监控 with overview, list, filtering and detail views, plus 卡顿 stack capture, 大图检测, 启动耗时, UI层级检查, 函数耗时, 内存泄漏 and, on iOS, Load analysis.
  • A 视觉工具 set for design review: 颜色吸管 for sampling component colours, 组件检查 for control name, position, background colour and font metrics, 对齐标尺 for screen coordinates and alignment, and 元素边框线 for drawing UI component borders.
  • Common tools including App 信息查看, 沙盒浏览 with AirDrop and other share-based upload to a PC, H5任意门 for loading arbitrary H5 addresses, Crash查看, DBView for operating the in-app database over a web page, and MockGPS with map selection or manual latitude and longitude entry.
  • Platform-specific utilities such as 模拟弱网 on Android, and on iOS 子线程UI, NSLog output to the UI, Lumberjack log display and JS脚本 execution inside a specified WebView.
  • Weex专项工具 and CML专项工具: console log viewing with leveling and search, storage cache visualization, container information and performance data, and a scan entry for Weex DevTool.
  • Support for integrating custom business tools directly into the Doraemon panel.

Who uses it and how

  • Teams maintaining products across several frontends adopt the same panel conventions for Android, iOS, mini programs, Flutter and Web, rather than rebuilding equivalent tooling per platform.
  • The README states the project is widely used by BAT companies as well as by Didi, ByteDance, Kuaishou and JD.
  • Test engineers use 健康体检 to run multiple DoKit tools in one action, and 一机多控 to drive several devices from a master device and reduce manual repetition.
  • Designers and UI reviewers use 颜色吸管, 组件检查 and 对齐标尺 to verify colour values, control geometry and alignment during interface checks.
  • Teams with existing business-coupled debug tools keep them and register them in the Doraemon panel, while 沙盒浏览 and 文件同步助手 give file and database access from the terminal.

Getting started

Integration is per platform and follows the official manuals published on the DoKit website at www.dokit.cn, reached through the 使用中心 documentation at xingyun.xiaojukeji.com/docs/dokit. There is no single install command: each client — Android, iOS, mini program, Flutter or Web — is added separately under its own guide and release notes.

How it compares

Among the tools named in the supplied material, the closest point of reference is Charles: DoKit's 流量监控 intercepts App internal traffic and presents it as a built-in "Charles" for the device. The README also points to Didi's Chameleon as a cross-end companion scheme, so DoKit sits alongside an in-app proxy-style traffic inspector and a cross-platform development framework rather than replacing a paid commercial product.

When to use it — and when not to

DoKit is debug-only: the README states that all functions target the Debug environment, that Release behaviour is unverified, and that the official project accepts no responsibility if a team chooses to ship it in Release. A self-hoster therefore operates per-platform integrations for Android, iOS, mini programs, Flutter and Web, and must keep the debug-only boundary enforced in build configuration. The documentation is Chinese-first with an English README, release notes are split across Android, iOS, mini program and Flutter files, and 275 open issues were recorded at last update; teams wanting production-side monitoring should not pick it for that purpose.

project readme (upstream, from github) — read inline

简介

DoraemonKit






DoKit诞生于滴滴城运服体验技术部,是一款面向泛前端产品研发全生命周期的效率平台。经过两年的发展,当前DoKit已经发展成了一个相对完整的生态,比如DoKit For Android、DoKit For iOS、DoKit For 小程序、DoKit For Flutter、DoKit For Web。同时我们的项目被BAT以及滴滴、字节、快手、京东等等头部独角兽企业广泛使用并获得良好的口碑。随着dokit.cn平台端的推出,标志着DoKit已经从单纯的效率工具正式进入了效率工具平台的阶段。与此同时我们一直都未停下持续探索的精神,积极地在更多平台领域进行尝试,不给自己设限。我们相信DoKit的未来充满无限可能。

English Readme

领域生态

DoKit 首页效果演示

使用手册

访问DoKit官网,点击"使用中心"。

温馨提示:当前DoKit的所有功能都只针对Debug环境,Release环境未经过实际验证,所以请大家严格按照官方文档来集成,也不建议大家在Release环境上使用DoKit的任何功能。如果大家一定要在Release环境上使用,请自行进行充分的测试和验证,DoKit官方将不承担任何责任和损失。

更新日志

社区活动

DoKit调研问卷 亲爱的DoKit用户,动动你的小手指参与一下我们的官方调研活动吧。我们极度渴望听到你们的声音:

链接:https://page.juyanwenjuan.com/jy_0CMpJzlu.html

DoKit 首页效果演示

开发背景

每一个稍微有点规模的 App,总会自带一些线下的测试功能代码,比如环境切换功能、帧率查看功能等等,这些功能的切换入口往往放在各式各样的入口中,比如一些特殊的手势,双击 statusBar,双击某一个功能区块,或者新建一个 keyWindow 始终至于 App 最上方等等,而且每一个 App 里面的线下附带功能模块很多是相似的,比如帧率查看、内存和 CPU 监控等等,但是现在基本上都是每个 App 都是自己实现了一份,经历了以上的问题之后,DoKit 就有了它存在的意义。

DoKit 是一个功能平台,能够让每一个 App 快速接入一些常用的或者你没有实现的一些辅助开发工具、测试效率工具、视觉辅助工具,而且能够完美在 Doraemon 面板中接入你已经实现的与业务紧密耦合的一些非通有的辅助工具,并搭配我们的dokit平台,让功能得到延伸,接入方便,便于扩展。

简单总结

1、DoKit 能够快速让你的业务测试代码能够在这里统一管理,统一收口;

2、DoKit 内置很多常用的工具,避免重复实现,一次接入,你将会拥有强大的工具集合;

3、搭配dokit平台,借助接口Mock健康体检文件同步助手一机多控让你方便和他人协同,极大的提升研发过程中的效率。

功能模块

一、平台工具(www.dokit.cn)

  1. 【数据Mock】 App接口Mock解决方案,提供一套基于App网络拦截的接口Mock方案,无需修改代码即可完成对于接口数据的Mock。
  2. 【健康体检】 一键式操作,整合DoKit多项工具,数据可视化,快速准确定位问题,让你对app的性能了如指掌。
  3. 【文件同步助手】 通过终端服务,让你的终端空间在平台端完整的展现并提供强大的文件以及数据库操作能力。
  4. 【一机多控】 主从同步,释放人力,让研发测试效率提升看得见

二、常用工具

  1. 【App 信息查看】 快速查看手机信息,App 基础信息、签名相关、权限信息的渠道,避免去手机设置查找或者查看项目源代码的麻烦;
  2. 【开发者选项 Android特有】 一键跳转开发者选项,避免安卓由于平台差异导致的入口不一致
  3. 【本地语言】 一键跳转本地语言,避免安卓由于平台差异导致的入口不一致
  4. 【沙盒浏览】 App 内部文件浏览的功能,支持删除和预览, 并且能通过 AirDrop 或者其他分享方式上传到 PC 中,进行更加细致的操作;
  5. 【MockGPS】 App 能定位到全国各地,支持地图地位和手动输入经纬度;
  6. 【H5任意门】 开发测试同学可以快速输入 H5 页面地址,查看该页面效果;
  7. 【Crash查看】 方便本地打印出出现 Crash 的堆栈;
  8. 【子线程UI】 快速定位哪一些 UI 操作在非主线程中进行渲染,避免不必要的问题;(iOS独有)
  9. 【清除本地数据】 一键删除沙盒中所有数据;
  10. 【NSLog】 把所有 NSLog 信息打印到UI界面,避免没有开发证书无法调试的尴尬;
  11. 【Lumberjack】 每一条 CocoaLumberjack 的日志信息,都在在 App 的界面中显示出来,再也不需要导出日志这么麻烦;(iOS独有)
  12. 【DBView】 通过网页方便快捷的操作应用内数据库,让数据库的调试变得非常优雅;
  13. 【模拟弱网】 限制网速,模拟弱网环境下App的运行情况;(android独有)
  14. 【JS脚本】 在指定WebView运行JS脚本。(iOS独有)

三、性能检测

  1. 【帧率】 App 帧率信息提供波形图查看功能,让帧率监控的趋势更加明显;
  2. 【CPU】 App CPU 使用率信息提供波形图查看功能,让 CPU 监控的趋势更加形象;
  3. 【内存】 App 内存使用量信息提供波形图查看功能,让内存监控的趋势更加鲜明;
  4. 【流量监控】 拦截 App 内部流量信息,提供波形图展示、流量概要展示、流量列表展示、流量筛选、流量详情,对流量信息统一拦截,成为我们 App 中自带的 "Charles";
  5. 【卡顿】 锁定 App 出现卡顿的时刻,打印出对应的代码调用堆栈;
  6. 【大图检测】 通过流量监测,找出所有的大小超标的图片,避免下载大图造成的流量浪费和渲染大图带来的CPU消耗。
  7. 【启动耗时】 无侵入的统计出App启动过程的总共耗时;
  8. 【UI层级检查】 检查出每一个页面中层级最深的元素;
  9. 【函数耗时】 从函数级别分析app性能瓶颈;
  10. 【Load】 找出所有的Load方法,并给出耗时分析;(iOS独有)
  11. 【内存泄漏】 找出App中所有的内存泄漏的问题。

四、视觉工具

  1. 【颜色吸管】 方便设计师 UI 捉虫的时候,查看每一个组件的颜色值是否设置正确;
  2. 【组件检查】 可以抓取任意一个UI控件,查看它们的详细信息,包括控件名称、控件位置、背景色、字体颜色、字体大小;
  3. 【对齐标尺】 参考 Android 系统自带测试工具,能够实时捕获屏幕坐标,并且可以查看组件是否对齐;
  4. 【元素边框线】 绘制出每一个 UI 组件的边框,对于组件布局有一定的参考意义。

五、Weex专项工具(CML专项工具)

  1. 【console日志查看】 方便在端上查看每一个Weex文件中的console日志,提供分级和搜索功能;
  2. 【storage缓存查看】 将Weex中的storage模块的本地缓存数据可视化展示;
  3. 【容器信息】 查看每一个打开的Weex页面的基本信息和性能数据;
  4. 【DevTool】 快速开启Weex DevTool的扫码入口。

tips : 如果使用我们滴滴优秀的开源跨端方案 chameleon 也可以集成该工具集合

六、支持自定义的业务工具集成到面板中

统一维护和管理所有的测试模块,详见接入手册

七、微信小程序专项工具

详见 Doraemon mini program debugger

相关文档

QQ 技术交流群

QQ 交流群

















项目成员

创始人 yixiangboy(易翔) 负责人 小枫

内部核心成员 小枫ChasonTangAdamCaoQAQfangyeqing123RealOnlyoneHeyCFarmeryFeii卡布达maxieezhugeafanti

贡献者榜单 yixiangboy(易翔)jtsky(金台)LinJZongwanglikun7342jayconsciousjellybeanlinusflowwangzhipengBzCoderchangzuozhenmomoxiangbeiwenquanlebaohiXgbChinnkoy644938647wm219goolongmiracle9312lwhsgz123huakuchaHuginChenfeng562925462azhonrex26csc-EricWuxiandanin0xd-cck373379320fabczy500Knight-ZXWboaiklone1127DeveloperLYsagdragonccworld1000HDB-Liyu-jianfengydlsl

如何成为外部贡献者? 提交有意义的PR,并被采纳。

使用提醒

因为SDK目前会配

readme truncated — read the full docs on github

Frequently asked questions

Is DoKit free to use?

DoKit is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does DoKit do?

一款面向泛前端产品研发全生命周期的效率平台。

What is DoKit written in?

DoKit is primarily written in Java. Its source is publicly available at https://github.com/didi/DoKit, and it has 20,415 GitHub stars.