一、背景說明
遠(yuǎn)程調(diào)試真機(jī)需要將設(shè)備的截圖實(shí)時(shí)展示到前端頁面上,Android原生截圖一般在3秒左右,無法滿足實(shí)時(shí)遠(yuǎn)程調(diào)試,因此引入了miniCap截圖方案,miniCap已知Android支持較好,小米設(shè)備不支持,對于已知支持較好是一種什么樣的數(shù)據(jù)概念,miniCap的支持范圍可以覆蓋多少機(jī)型、多少版本、多少SDK,基于此提出了MiniCap巡檢機(jī)器人方案,希望通過該方案可以得出以數(shù)據(jù)為基準(zhǔn)的miniCap支持現(xiàn)狀。
二、巡檢機(jī)器人
共230臺真機(jī)設(shè)備,巡檢核心流程如下,該流程即網(wǎng)絡(luò)上通用的miniCap啟動過程:

image.png
三、巡檢問題/解決方式
| 表頭 | 表頭 |
|---|---|
| 文件無法push到/data/local/tmp文件夾下 | 將文件push到sdcard文件夾下,通過cat命令移動到執(zhí)行文件夾下 |
| /system/bin/sh: tr: not found | 網(wǎng)絡(luò)上通用的判斷SDK版本問題有近15臺設(shè)備不能兼容,當(dāng)發(fā)現(xiàn)異常時(shí)采用兼容方式重新判斷 |
| system/bin/sh: /data/local/tmp/minicap: not executable: 64-bit ELF file | CPU版本95%都為arm64-v8a,仍然有5%的設(shè)備為armeabi-v7a,需要對其單獨(dú)做兼容 |
| Segmentation fault | 部分設(shè)備多次執(zhí)行miniCap時(shí)出現(xiàn)該問題,將文件夾下相關(guān)miniCap刪除,重新執(zhí)行 |
| Vector<> have different types (this=0x7ff8640f70, rhs=0x7ff86410c0) | |
| Aborted | 部分紅米設(shè)備&部分小米設(shè)備,暫無解決方式 |
成功設(shè)備數(shù)據(jù)
經(jīng)過多輪巡檢,巡檢成功設(shè)備221臺
失敗設(shè)備數(shù)據(jù)
失敗設(shè)備37臺
小米設(shè)備13臺,15臺設(shè)備遠(yuǎn)程數(shù)據(jù)未傳回
失敗原因
3臺21SDK以下不支持、6臺設(shè)備文件查找異常
小米10、小米9SE, 紅米全系列、小米10青春版、小米CC9、小米10pro均不支持
五、結(jié)論說明
| 巡檢總數(shù) | 成功設(shè)備數(shù) | 失敗設(shè)備數(shù) | 成功率 | 覆蓋品牌 | 覆蓋版本 | SDK支持范圍 | 總覆蓋機(jī)型 | 成功覆蓋機(jī)型 |
|---|---|---|---|---|---|---|---|---|
| 258 | 221 | 37 | 85.6 | 18 | Android4.4-Android10 | 22~30 | 177種 | 153種 |
小米機(jī)型
對于小米機(jī)型,miniCap并非全部不支持,對于現(xiàn)有小米機(jī)型巡檢結(jié)果如下
| 小米機(jī)型 | |
|---|---|
| 成功 | 小米 5、小米 MIX2、小米note3、小米Max 2、小米6、小米8SE、小米9SE、小米MIX、小米8 LITE、小米10、小米11青春版、小米5X |
| 失敗 | 小米8、小米10Pro、小米9SE、小米10青春版、小米CC9、紅米K20 PRO、紅米7、紅米Note8 |