首頁>科技>

滴滴開發除錯工具(https://github.com/didi/DoraemonKit)是滴滴開源的一款功能齊全的客戶端( iOS 、Android )研發助手

是什麼

用圖說話,這個除錯工具其實就是一個超級工具箱,適合研發、測試、視覺等團隊使用的一個內測工具集,它不適合在線上環境使用,或者需要經過改造和精簡後才能在線上使用。

我們目前在安卓的debug版本(主要針對研發)和Jenkins上的feature和release上的版本啟用了這個工具(適合非研發),而釋出版本不啟用(也不包含這部分程式碼)。Jenkins上是通過一個構建引數來控制的,研發也可以在gradle.properties修改同名引數在非debug啟用除錯工具。我們看到的APP需要懸浮框許可權是這個除錯工具使用的,正式的APP是不需要懸浮框許可權的。

能做什麼

常用工具

APP資訊:簡單的檢視系統資訊,包括系統版本、硬體環境、APP許可權等,方便研發復現環境;沙盒瀏覽:簡單的檔案管理,研發可快速檢視APP的快取檔案;MockGPS:在室內開發環境沒有GPS訊號的情況模擬定位進行初期除錯,避免到室外晒太陽;H5任意門:需要研發擴充套件支援,輸入url開啟web頁,用於除錯h5頁面,可實現類似我們的H5整合Demo APP的效果;Crash檢視:記錄上一次閃退日誌,和我們RN有點不一樣,是原生的閃退;清除本地資料:清除所有快取,避免快取影響,類似重灌APP;日誌檢視:簡單的Logcat日誌檢視,可以簡單的日誌級別和關鍵字過濾,適合在沒有開發環境下看log;

效能檢測

流量監控:內建的抓包工具,需要研發新增上支援,提供波形圖展示、流量概要展示、流量列表展示、流量篩選、流量詳情,對流量資訊統一攔截;卡頓檢測:鎖定App出現卡頓的時刻,打印出對應的程式碼呼叫堆疊,主要是主執行緒卡頓,而RN是在獨立執行緒中,這種卡頓這個工具檢測不出來;耗時:主要是指原生Activity的跳轉耗時,我們目前是單頁面應用,不存在原生頁面跳轉;而首次啟動耗時,因為啟動的時候這個工具還沒初始化;而我們RN APP耗時主要不在於Activity的啟動,而在於RN環境的初始化,所以這個工具對我們目前APP沒什麼用。RN耗時我們已經通過log打印出來,作為參考,可以在日誌檢視裡面篩選出來。

視覺工具

主要是給視覺驗收用的。

佈局邊框:把View的輪廓高亮顯示,檢視View的邊框線。但是它的實現不相容RN APP,主要是畫邊框線的方式,會導致閃退,所以對我們目前的APP沒用。

還能做什麼

哆啦A夢的工具都是可以定製或者自定義擴充套件的。比如上面的日誌檢視功能不好用,日誌刷刷刷蓋過去了,日誌無效資訊太長了,日誌要點進去才能看等等,那麼,理論上也可以改造成直接懸浮框顯示的,可以更高階的過濾,可以暫停日誌之類的。除了以上通用的內建元件,我們也可以根據業務需要和實際場景設計一下自定義工具,比如下面這個滴滴APP使用的業務擴充套件,像環境切換之類的。

回到我們的APP,我們可以做什麼?

比如效能埋點開關,開啟後能開啟效能埋點,本地收集開啟模版的耗時資訊,方便定位客戶問題,又不影響正式的生產環境;比如外掛除錯管理,除錯階段本地可以安裝和解除安裝APP外掛,而不用到Jenkins打包外掛再去伺服器安裝;比如原生化內測階段,可以通過開關測試純原生和純RN的目錄頁。

最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 十年阿里,毀於釘釘,這得從一隻“蝙蝠”說起……