Javascript is required
滴滴DoKit For Flutter

Dokit

DoKit For Flutter是一个DoKit针对Flutter环境的产研工具包,内部集成了各种丰富的小工具,UI、网络、内存、监控等等。DoKit始终站在用户的角度,为用户提供最便利的产研工具。

https://github.com/didi/DoraemonKit/tree/master/Flutter

http://xingyun.xiaojukeji.com/docs/dokit/#/flutterGuide

https://juejin.cn/post/6914111076099915784

image-20210110215828692

工具

基本信息

基本信息模块会展示当前dart虚拟机进程、CPU、Flutter版本信息、当前App包名和dart工程构建版本信息;

路由信息

在Flutter中,每个页面对应一个Route,通过Navigator管理Route。Navigator内部会包含一个Overlay Widget,每个Route最终都转化成一个_OverlayEntryWidget添加到Overlay上。

方法通道

Flutter的Method Channel调用最终都会经过ServiceBinding.instance._defaultBinaryMessenger这个对象,类型为BinaryMessenger,由于这个对象是个私有对象,无法动态进行修改。不过查看ServiceBinding的源码可以发现这个对象是通过ServiceBinding.createBinaryMessenger方法创建的,通过使用flutter的mixins,可以实现对该方法的重写。

控件检查

日志查看

帧率

内存

网络请求

对接工具

加入依赖

pubspec.yaml

dependencies:
  dokit: 0.2.2

入口函数

在main函数入口初始化。 DoKit使用runZone的方式进行日志捕获,方法通道的捕获,如果你的app需要使用同样的方式会有冲突

void main() => {
      DoKit.runApp(app:DoKitApp(MyApp()),
          // 是否在release包内使用,默认release包会禁用
          useInRelease: true,
          releaseAction: () => {
              // release模式下执行该函数,一些用到runZone之类实现的可以放到这里,该值为空则会直接调用系统的runApp(MyApp()),
              })
    };
}

然后打开APP就可以看到工具了。