版權聲明:本文為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開發的同學有很大的幫助.