One Click软件简介
One Click軟件
文章目錄
- One Click軟件
- 軟件功能
- 開發(fā)工具
- 支持平臺
- 軟件實(shí)現(xiàn)原理
- CommonCommand
- 命令輸入欄
- 功能按鈕區(qū)
- 輸出欄
- simpleperf
- list
- stat
- record
- report
- FlameGraph
- XTS
軟件功能
- adb常用命令一鍵執(zhí)行,如獲取android設(shè)備號(adb devices)、拍照、截屏等
- Linux常用命令一鍵執(zhí)行(待開發(fā))
- Git常用命令一鍵執(zhí)行(待開發(fā))
- simpleperf(Android性能分析工具)一鍵執(zhí)行,并生成火焰圖
- XTS測試一鍵執(zhí)行,測試結(jié)果解析,并針對fail項(xiàng)給出歷史解決方案供參考
開發(fā)工具
- Qt5.12
支持平臺
- Linux
軟件實(shí)現(xiàn)原理
運(yùn)用QThread啟動多線程,實(shí)現(xiàn)主線程(界面)和子線程(processor)分離,運(yùn)用QProcess (The QProcess class is used to start external programs and to communicate with them)啟動/bin/bash腳本,在UI界面輸入命令或點(diǎn)擊按鈕將命令通過發(fā)送信號(emit signal)的形式傳遞至processor,然后由processor啟動bash執(zhí)行命令,并將執(zhí)行結(jié)果、狀態(tài)、output同樣已信號的方式返回至UI,顯示在textEdit。
CommonCommand
CommonCommand模塊界面包含3個(gè)部分
- 命令輸入欄
- 功能按鈕區(qū)
- 輸出欄
命令輸入欄
手動輸入執(zhí)行命令,通常用于自定義帶參命令的執(zhí)行。
輸入欄自動補(bǔ)全功能如下:
save command:保存當(dāng)前輸入的命令,以將該命令更新至補(bǔ)全詞庫(native_cmd_list.txt)
complete regular:補(bǔ)全模式選擇
功能按鈕區(qū)
目前已實(shí)現(xiàn)的功能有:adb device,root,remount,手機(jī)截屏,拍照等
示例:截屏
通過下面輸出欄可以看到,這個(gè)按鈕點(diǎn)擊事件其實(shí)是在執(zhí)行:adb shell screencap -p /storage/img_20220420171252.png;adb pull /storage/img_20220420171252.png capture(將圖片pull到./capture),另外可以看到在執(zhí)行命令時(shí),最下方狀態(tài)欄可以看到有綠燈閃爍,表示命令正在執(zhí)行過程中,執(zhí)行結(jié)束,燈滅。
輸出欄
執(zhí)行命令實(shí)時(shí)回顯,如上圖。類似shell終端,將輸出結(jié)果實(shí)時(shí)顯示在textEdit控件。
simpleperf
simpleperf = simple + perf
simple:不是簡單的意思,而是采樣
perf:performance–性能
list
list 命令列出設(shè)備上所有可用的事件。不同的設(shè)備可能支持不同的事件,因?yàn)樗鼈兙哂胁煌挠布蛢?nèi)核
可以看到輸出欄可以拖拽出來方便查看,可雙擊也可直接拖拽
stat
獲取一段時(shí)間內(nèi),要分析的進(jìn)程中發(fā)生了多少事件。通過傳入不同參數(shù),我們可以選擇要使用哪些事件、要監(jiān)聽哪些進(jìn)程/線程,監(jiān)聽多長時(shí)間以及打印間隔,當(dāng)前可支持客制化的參數(shù)如圖所示,更詳細(xì)的參數(shù)參見‘simpleperf stat -h’,當(dāng)然你也可以直接在Command中的命令行執(zhí)行自己客制化的參數(shù)
默認(rèn)分析命令: adb shell system/bin/simpleperf stat -e cache-references,cache-misses -a --duration 10
record
以采樣方式生成profile data,當(dāng)前可支持客制化的參數(shù)如圖所示,更詳細(xì)的參數(shù)參見‘simpleperf stat -h’,當(dāng)然你也可以直接在Command中的命令行執(zhí)行自己客制化的參數(shù)
默認(rèn)執(zhí)行命令:adb shell rm /data/local/tmp/perf.data;adb shell system/bin/simpleperf record -o /data/local/tmp/perf.data -e task-clock:u -f 1000 -g --duration 10 --log info --app com.tcl.camera;adb pull /data/local/tmp/perf.data
記錄相機(jī)app10s內(nèi)的性能數(shù)據(jù),并pull到本地
report
生成數(shù)據(jù)報(bào)告
默認(rèn)執(zhí)行命令:python scripts/report_sample.py > out.perf
$ simpleperf report Cmdline: /system/bin/simpleperf record -g sleep 1 Arch: arm64 Event: cpu-cycles (type 0, config 0) Samples: 56 Event count: 13885436 Overhead Command Pid Tid Shared Object Symbol 9.61% sleep 14852 14852 [kernel.kallsyms] vma_link 8.97% sleep 14852 14852 linker64 soinfo_do_lookup_impl 6.42% sleep 14852 14852 linker64 BionicAllocator::alloc_impl 6.11% sleep 14852 14852 [kernel.kallsyms] __follow_mount_rcu 5.83% sleep 14852 14852 [kernel.kallsyms] clear_page ...FlameGraph
將數(shù)據(jù)報(bào)告繪制程火焰圖
FlameGraph/stackcollapse-perf.pl out.perf > out.folded;FlameGraph/flamegraph.pl out.folded > graph.svg
XTS
- 選擇本地xts套件
- 選擇要執(zhí)行的命令
- 選擇執(zhí)行模塊(目前只支持camera模塊)
- 輸入要執(zhí)行的test(輸入為空,則運(yùn)行整個(gè)模塊)
- run cts
cts 運(yùn)行結(jié)束之后會自動解析results/latest/result.xml,將結(jié)果顯示在tableView中,并且會檢索fail項(xiàng)的歷史解決方案
- 加載results文件
如果某一個(gè)fail項(xiàng)有歷史解決方案,可以點(diǎn)擊Resulotion欄中的連接直接轉(zhuǎn)跳至相應(yīng)網(wǎng)頁
總結(jié)
以上是生活随笔為你收集整理的One Click软件简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团队项目事后诸葛亮会议
- 下一篇: gcc编译出错collect2: err