一飛開源 2022-06-25 00:05 發(fā)表于湖南
一飛開源,介紹創(chuàng)意、新奇、有趣、實用的免費開源應用、系統(tǒng)、軟件、硬件及技術(shù),一個探索、發(fā)現(xiàn)、分享、使用與互動交流的開源技術(shù)社區(qū)平臺。致力于打造活力開源社區(qū),共建開源新生態(tài)!

一、開源項目簡介
DoKit誕生于滴滴城運服體驗技術(shù)部,是一款面向泛前端產(chǎn)品研發(fā)全生命周期的效率平臺。經(jīng)過兩年的發(fā)展,當前DoKit已經(jīng)發(fā)展成了一個相對完整的生態(tài),比如DoKit For Android、DoKit For iOS、DoKit For 小程序、DoKit For Flutter、DoKit For Web。同時我們的項目被BAT以及滴滴、字節(jié)、快手、京東等等頭部獨角獸企業(yè)廣泛使用并獲得良好的口碑。隨著dokit.cn平臺端的推出,標志著DoKit已經(jīng)從單純的效率工具正式進入了效率工具平臺的階段。與此同時我們一直都未停下持續(xù)探索的精神,積極地在更多平臺領(lǐng)域進行嘗試,不給自己設(shè)限。我們相信DoKit的未來充滿無限可能。
二、開源協(xié)議
使用Apache-2.0開源協(xié)議
三、界面展示
領(lǐng)域生態(tài)

四、功能概述
開發(fā)背景
每一個稍微有點規(guī)模的 App,總會自帶一些線下的測試功能代碼,比如環(huán)境切換功能、幀率查看功能等等,這些功能的切換入口往往放在各式各樣的入口中,比如一些特殊的手勢,雙擊 statusBar,雙擊某一個功能區(qū)塊,或者新建一個 keyWindow 始終至于 App 最上方等等,而且每一個 App 里面的線下附帶功能模塊很多是相似的,比如幀率查看、內(nèi)存和 CPU 監(jiān)控等等,但是現(xiàn)在基本上都是每個 App 都是自己實現(xiàn)了一份,經(jīng)歷了以上的問題之后,DoKit 就有了它存在的意義。
DoKit 是一個功能平臺,能夠讓每一個 App 快速接入一些常用的或者你沒有實現(xiàn)的一些輔助開發(fā)工具、測試效率工具、視覺輔助工具,而且能夠完美在 Doraemon 面板中接入你已經(jīng)實現(xiàn)的與業(yè)務緊密耦合的一些非通有的輔助工具,并搭配我們的dokit平臺,讓功能得到延伸,接入方便,便于擴展。
簡單總結(jié)
1、DoKit 能夠快速讓你的業(yè)務測試代碼能夠在這里統(tǒng)一管理,統(tǒng)一收口;
2、DoKit 內(nèi)置很多常用的工具,避免重復實現(xiàn),一次接入,你將會擁有強大的工具集合;
3、搭配dokit平臺,借助接口Mock、健康體檢、文件同步助手、一機多控讓你方便和他人協(xié)同,極大的提升研發(fā)過程中的效率。
功能模塊
(一)、平臺工具(www.dokit.cn)
【數(shù)據(jù)Mock】 App接口Mock解決方案,提供一套基于App網(wǎng)絡攔截的接口Mock方案,無需修改代碼即可完成對于接口數(shù)據(jù)的Mock。
【健康體檢】 一鍵式操作,整合DoKit多項工具,數(shù)據(jù)可視化,快速準確定位問題,讓你對app的性能了如指掌。
【文件同步助手】 通過終端服務,讓你的終端空間在平臺端完整的展現(xiàn)并提供強大的文件以及數(shù)據(jù)庫操作能力。
【一機多控】 主從同步,釋放人力,讓研發(fā)測試效率提升看得見
(二)、常用工具
【App 信息查看】 快速查看手機信息,App 基礎(chǔ)信息、簽名相關(guān)、權(quán)限信息的渠道,避免去手機設(shè)置查找或者查看項目源代碼的麻煩;
【開發(fā)者選項 Android特有】 一鍵跳轉(zhuǎn)開發(fā)者選項,避免安卓由于平臺差異導致的入口不一致
【本地語言】 一鍵跳轉(zhuǎn)本地語言,避免安卓由于平臺差異導致的入口不一致
【沙盒瀏覽】 App 內(nèi)部文件瀏覽的功能,支持刪除和預覽, 并且能通過 AirDrop 或者其他分享方式上傳到 PC 中,進行更加細致的操作;
【MockGPS】 App 能定位到全國各地,支持地圖地位和手動輸入經(jīng)緯度;
【H5任意門】 開發(fā)測試同學可以快速輸入 H5 頁面地址,查看該頁面效果;
【Crash查看】 方便本地打印出出現(xiàn) Crash 的堆棧;
【子線程UI】 快速定位哪一些 UI 操作在非主線程中進行渲染,避免不必要的問題;(iOS獨有)
【清除本地數(shù)據(jù)】 一鍵刪除沙盒中所有數(shù)據(jù);
【NSLog】 把所有 NSLog 信息打印到UI界面,避免沒有開發(fā)證書無法調(diào)試的尷尬;
【Lumberjack】 每一條 CocoaLumberjack 的日志信息,都在在 App 的界面中顯示出來,再也不需要導出日志這么麻煩;(iOS獨有)
【DBView】 通過網(wǎng)頁方便快捷的操作應用內(nèi)數(shù)據(jù)庫,讓數(shù)據(jù)庫的調(diào)試變得非常優(yōu)雅;
【模擬弱網(wǎng)】 限制網(wǎng)速,模擬弱網(wǎng)環(huán)境下App的運行情況;(android獨有)
【JS腳本】 在指定WebView運行JS腳本。(iOS獨有)
(三)、性能檢測
【幀率】 App 幀率信息提供波形圖查看功能,讓幀率監(jiān)控的趨勢更加明顯;
【CPU】 App CPU 使用率信息提供波形圖查看功能,讓 CPU 監(jiān)控的趨勢更加形象;
【內(nèi)存】 App 內(nèi)存使用量信息提供波形圖查看功能,讓內(nèi)存監(jiān)控的趨勢更加鮮明;
【流量監(jiān)控】 攔截 App 內(nèi)部流量信息,提供波形圖展示、流量概要展示、流量列表展示、流量篩選、流量詳情,對流量信息統(tǒng)一攔截,成為我們 App 中自帶的 "Charles";
【卡頓】 鎖定 App 出現(xiàn)卡頓的時刻,打印出對應的代碼調(diào)用堆棧;
【大圖檢測】 通過流量監(jiān)測,找出所有的大小超標的圖片,避免下載大圖造成的流量浪費和渲染大圖帶來的CPU消耗。
【啟動耗時】 無侵入的統(tǒng)計出App啟動過程的總共耗時;
【UI層級檢查】 檢查出每一個頁面中層級最深的元素;
【函數(shù)耗時】 從函數(shù)級別分析app性能瓶頸;
【Load】 找出所有的Load方法,并給出耗時分析;(iOS獨有)
【內(nèi)存泄漏】 找出App中所有的內(nèi)存泄漏的問題。
(四)、視覺工具
【顏色吸管】 方便設(shè)計師 UI 捉蟲的時候,查看每一個組件的顏色值是否設(shè)置正確;
【組件檢查】 可以抓取任意一個UI控件,查看它們的詳細信息,包括控件名稱、控件位置、背景色、字體顏色、字體大小;
【對齊標尺】 參考 Android 系統(tǒng)自帶測試工具,能夠?qū)崟r捕獲屏幕坐標,并且可以查看組件是否對齊;
【元素邊框線】 繪制出每一個 UI 組件的邊框,對于組件布局有一定的參考意義。
(五)、Weex專項工具(CML專項工具)
【console日志查看】 方便在端上查看每一個Weex文件中的console日志,提供分級和搜索功能;
【storage緩存查看】 將Weex中的storage模塊的本地緩存數(shù)據(jù)可視化展示;
【容器信息】 查看每一個打開的Weex頁面的基本信息和性能數(shù)據(jù);
【DevTool】 快速開啟Weex DevTool的掃碼入口。
tips :如果使用我們滴滴優(yōu)秀的開源跨端方案 chameleon 也可以集成該工具集合
(六)、支持自定義的業(yè)務工具集成到面板中
統(tǒng)一維護和管理所有的測試模塊,詳見接入手冊
(七)、微信小程序?qū)m椆ぞ?/h2>
詳見 Doraemon mini program debugger
五、技術(shù)選型
使用提醒
因為SDK目前會配合dokit.cn平臺, 會產(chǎn)生一些網(wǎng)絡數(shù)據(jù),這些信息我們收集絕不用于任何惡意用途。
以下為所有涉及到網(wǎng)絡請求的部分
統(tǒng)計有多少用戶集成了dokit
Android : DoraemonStatisticsUtil#uploadUserInfo
iOS : DoraemonStatisticsUtil#upLoadUserInfo
統(tǒng)計每個內(nèi)置kit的使用情況
Android : DataPickManager#realPost
iOS : DoraemonBuriedPointManager#uploadData
上傳健康體檢的相關(guān)數(shù)據(jù)
Android : AppHealthInfoUtil#post
iOS : DoraemonHealthManager#upLoadData
數(shù)據(jù)mock的相關(guān)網(wǎng)絡請求
Android : NetWorkMockFragment 里涉及到接口mock的相關(guān)網(wǎng)絡請求
iOS : DoraemonMockManager#queryMockData&uploadSaveData
敬請各位用戶知曉。
友情鏈接
Hummer,Hummer 是一套高性能高可用的跨端開發(fā)框架,一套代碼可以同時支持開發(fā) Android 和 iOS 應用?,F(xiàn)已經(jīng)支持 Vue/TypeScript/JavaScript 三種語法,面向大前端開發(fā)人員,總有一款適合你。
Chameleon,簡寫CML,中文意思變色龍,意味著就像變色龍一樣能適應不同環(huán)境的跨端整體解決方案,達到真正意義上"一套代碼,多端運行"的終極目標
Booster 是一款專門為移動應用設(shè)計的易用、輕量級且可擴展的質(zhì)量優(yōu)化框架,其目標主要是為了解決隨著 APP 復雜度的提升而帶來的性能、穩(wěn)定性、包體積等一系列質(zhì)量問題。Booster 提供了性能檢測、多線程優(yōu)化、資源索引內(nèi)聯(lián)、資源去冗余、資源壓縮、系統(tǒng) Bug 修復等一系列功能模塊,可以使得穩(wěn)定性能夠提升 15% ~ 25%,包體積可以減小 1MB ~ 10MB。同時DoKit插件的底層也是基于Booster進行開發(fā)的。
AoE,一個終端側(cè)AI集成運行時環(huán)境
Mand Mobile 一款優(yōu)秀的面向金融場景的 移動端UI組件庫
六、源碼地址
訪問一飛開源:https://code./