滴滴出行開源項目doraemonkit食用指南


版權聲明:本文為xing_star原創文章,轉載請注明出處!

本文同步自http://javaexception.com/archives/94

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中

先看張效果圖

在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開源項目目前還在迭代過程中,雖然還存在部分小bug,但我相信后續總會解決的,相信doraemonkit對我們做App開發的同學有很大的幫助.

Github地址:

https://github.com/didi/DoraemonKit

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM