欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

滴滴出行开源项目doraemonkit食用指南

程序员文章站 2022-05-30 18:31:30
doraemonkit是滴滴出行的一个开源项目,中文名称为哆啦A梦,是一个功能集合面板,像哆啦A梦一样,可以提供各种工具。doraemonkit是一个支持Android和ios的开源项目,这里我们关注的是Android部分,doraemonkit提供的常用工具包括如下部分:App基本信息,沙盒浏览,... ......

版权声明:本文为xing_star原创文章,转载请注明出处!

本文同步自

doraemonkit 功能介绍

一两周前在地铁上刷任玉刚的公众号,看到他推荐了滴滴出行的几个开源项目doraemonkit,挺好奇的,到了公司打开电脑,对其中的第一个开源项目doraemonkit很有兴趣,按照readme上的介绍说,doraemonkit中文名称为哆啦a梦,是一个功能集合面板,像哆啦a梦一样,可以提供各种工具。

doraemonkit是一个支持android和ios的开源项目,这里我们关注的是android部分,提供的常用工具包括如下部分:

1. app基本信息(包名,应用版本号,最低系统版本,目标系统版本号,手机型号,手机系统版本,sd卡剩余空间,系统剩余空间,是否root,屏幕分辨率,屏幕密度density,使用到的权限信息如地理位置,拍照,麦克风,设备信息,通讯录等)。

2.沙盒浏览(用来查阅app私有目录下的文件,诸如sharepreference,数据库db文件等,doraemonkit还支持修改sharepreference文件的内容,同时让app生效,貌似还有点小bug,得给doraemonkit维护者提bug,也支持查看数据库对应表的内容)。

3.位置模拟(可以修改地理位置,在app的测试阶段还是很有用处的,现在市面上很多基于lbs的应用,对于这类app测试很友好)

4.h5任意门(这个功能相当有用,我们的商业app也是使用了类似于aroute的路由组件,按照约定的路由协议进行跳转,只需要在doraemonkit提供的api中,引入自己app的路由逻辑,就能体会到h5任意门的好处了,经过我的测试,我觉得这个功能很酷)

5.缓存清理功能(清除掉app的缓存数据,通过这个快捷按钮的话,很便捷,不然就得在系统设置里面经过多级菜单的选择,才能找到清理缓存的按钮)

6.性能监控部分,帧率(暂未体验过),cpu,ram,卡顿检测,耗时,自定义等

7.流量监控,对这部分很感兴趣,直接在app的悬浮页面上显示app的网络请求数据,以及响应数据

8.视觉工具,包括取色器,对其标尺,控件检查,布局边框等功能,这让我想起了饿了么的视觉验收工具uetool这个开源项目,跟这个类似。

总体而言,觉得功能挺丰富的,几乎是日常开发中不得不用到的工具,相信这可以极大的提高我们的开发效率,也可以更方便我们优化自己app的性能。

集成doraemonkit到业务app中

先看张效果图

滴滴出行开源项目doraemonkit食用指南

在app/build.gradle里面添加远程依赖库

debugimplementation 'com.didichuxing.doraemonkit:doraemonkit:1.1.6'
releaseimplementation 'com.didichuxing.doraemonkit:doraemonkit-no-op:1.1.6'

在application类中添加doraemonkit类的声明。

doraemonkit.install(this);
 
// h5任意门功能需要,非必须
doraemonkit.setwebdoorcallback(new webdoormanager.webdoorcallback() {
    @override
    public void overrideurlloading(context context, string s) {
        // 使用自己的h5容器打开这个链接
    }
});

如果业务中,h5相关的业务较多,可以集成自己业务的h5跳转逻辑,或者是路由逻辑。如果没有h5的业务,就可以忽略。

到此基本的集成已经完毕,doraemonkit的大部分功能都可以使用了,除了流量监控外。

如果想要对网络进行监控,还需要使用如下配置。

在root下的build.gradle文件里面,添加

classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'

在app/build.gradle里面还需要启动这个插件

apply plugin: 'android-aspectjx'

另外还需要注意的一点是,okhttp的用法。

原来业务代码中okhttp的实例化代码得修改为如下的形式

okhttpclient.builder builder = new okhttpclient().newbuilder();

原因是aspectjx hook的是builder的有参构造方法,需要注意(经作者指点)。

代码地址位于https://github.com/leanote/leanote-android/tree/feature/doraemonkit。

上图看看集成后的效果。

滴滴出行开源项目doraemonkit食用指南

滴滴出行开源项目doraemonkit食用指南

滴滴出行开源项目doraemonkit食用指南

总结:

doraemonkit开源项目目前还在迭代过程中,虽然还存在部分小bug,但我相信后续总会解决的,相信doraemonkit对我们做app开发的同学有很大的帮助.

github地址:

https://github.com/didi/doraemonkit