還在苦惱移動端的遊戲效能採集?快來使用 Fionna 吧
概述
fionna 是一個針對安卓端的效能採集工具,其功能非常簡潔。命名靈感來自於《冒險時光》中的 Fionna Campbell。
當前已實現的主要功能有:
- 解決安卓 SurfaceFlinger、GFXInfo 這兩個方案在遊戲等方向上無法採集 Frame 資料的痛點,具體請參考 frame benchmark
- 其他效能資料,如 CPU、Memory、溫度、網路......等資料的採集
- 裝置投屏和觸控
- 測試報告
- 資料匯出
- 資料對比
Home
perf
Terminal
report
Frame Benchmark
具體的程式碼在 test/frame_benchmark_test.go 中,我在裡面定義了三個用於對比的方法:TestFPSBySurfaceFlinger、TestFPSByGFXInfo、TestFPSByFrameTool,分別對應 SurfaceFlinger、GFXInfo、新方案工具的獲取方式。
測試使用機型為 iqoo11s,軟體為《白塵禁區》(com.dragonli.projectsnow.lhm),三個方法的獲取結果為:
TestFPSBySurfaceFlinger
TestFPSByGFXInfo
OMSage Frame Tool
可以看到,使用 OMSage Frame Tool 工具獲取 Frame 的效能資料有更好的相容性,基本上能適用安卓大部分場景下的 Frame 效能採集場景。
OMSage Frame Tool 的使用請參考具體程式碼,並嚴格按照其程式碼邏輯使用,二開過程中出現的任何問題,不予解答。
使用
快速使用
透過 Release 下載對應的構建產物,解壓後直接執行對應的目標程式即可
命令列中直接執行:
fionna
之後瀏覽器訪問對應的地址: http://127.0.0.1:3417
命令列模式
fionna 內建簡單的命令列模式,可以輸入以下命令檢視說明:
fionna --help
主要有兩個模式:
web 模式
在命令列中直接執行以下命令,程式會直接開啟一個 web 服務,之後可以訪問對應的地址:http://127.0.0.1:3417
fionna web
cli-perf 模式
由於 web 的依賴性太強,所以提供一個簡單的效能輸出模式,輸入以下命令,即可在命令列中得到對應的效能資料:
fionna cli-perf [flags]
#參考示例:fionna cli-perf --fps
可選引數
快捷使用 | 選項名 | 引數型別 | 描述資訊 |
---|---|---|---|
-h | --help | 獲取幫助指南 | |
-p | --package | string | 應用包名 |
-d | --pid | int | 應用 PID (預設 -1) |
--proc-cpu | 獲取程序 cpu 資料 | ||
--fps | 獲取系統 FPS | ||
--jank | 獲取系統 jank 資訊 | ||
--proc-mem | 獲取程序記憶體資料 | ||
--proc-threads | 獲取程序執行緒數量 | ||
-s | --serial | string | 裝置序列號(預設第一個裝置) |
--sys-cpu | 獲取系統 cpu 資料 | ||
--sys-mem | 獲取系統記憶體資料 | ||
--sys-network | 獲取系統網路資料 |
開發
二開本專案請遵守 AGPL 協議!!!!!!
二開本專案請遵守 AGPL 協議!!!!!!
二開本專案請遵守 AGPL 協議!!!!!!
本專案嵌入了一個簡單的 vue 前端,所以開發前必須先進行前端的設定。如果需要自定義開發,請先按照以下步驟操作
- 拉取專案後,首先進入到 fionna-web 目錄
cd fionna-web
- 拉取前端依賴
npm install
- 生成構建產物
npm run build
接下來即可正常根據需求開發專案
注意事項
- PC 上必須有 adb 環境
- 應用的 CPU 計算和常規的計算有所不同,專案使用的指標為:https://blog.csdn.net/weixin_39451323/article/details/118083713
- 避免佔用 3417 埠
GitHub 地址
https://github.com/omsage/fionna
感謝
- https://github.com/SonicCloudOrg/sonic-android-supply
- https://github.com/SonicCloudOrg/sonic-client-web
- https://github.com/electricbubble/gadb
- https://github.com/Genymobile/scrcpy
相關文章
- 還在為網頁渲染效能優化而苦惱嗎?網頁優化
- 還在為寫.vue檔案煩惱嗎?快來用dot-vue-cli互動式生成吧!Vue
- 還在為Android表情開發煩惱嗎,快來試試Android Emoji吧Android
- 還在為你的簡歷苦惱嗎?程式設計師必讀!程式設計師
- Python超詳細的基礎筆記,你還在苦惱怎麼學嗎?Python筆記
- 移動端適配方案-讓解析度來的更猛烈些吧!
- 你還在為創業專案而苦惱?藏“金”萬億的藍海市場就在你面前!創業
- 快來使用ECMAScript 2015吧
- 印象最深的一個bug:sessionStorage快取在移動端失效Session快取
- vue-cli中使用rem完成適配,讓移動端快樂起來~~VueREM
- 面試解惑:沒有技術深度的苦惱面試
- 極快的node.js:來自LinkedIn移動的10個效能技巧Node.js
- 百萬程式設計師的苦惱-選擇VB.NET還是C# (轉)程式設計師C#
- 吐槽: 移動端快取策略快取
- 2020年Dubbo30道高頻面試題!還在為面試煩惱趕快來看看!面試題
- shell指令碼自動化採集效能sql指令碼SQL
- Kotlin 1.3 RC 來啦:快遷移您的協程程式碼吧!Kotlin
- 還在苦惱寫畢業論文?千鋒網路安全畢業設計合集助你打破瓶頸
- 分析:移動遊戲的未來之路遊戲
- 你還在為元件文件煩惱嗎?元件
- 移動端orm框架效能測評ORM框架
- 如果你還在為如何獲取 appActivity,appPackage,實時截圖而苦惱,那麼你需要它APPPackage
- 5G小站春天來了?中國移動啟動擴充套件型皮站集採套件
- 網路分流器-移動信令採集裝置-大資料採集方案大資料
- eMarketer:研究顯示酒店預訂越來越多使用者採用移動終端App預定APP
- 移動開發還有未來嗎?移動開發
- 音樂遊戲還能怎麼玩?來看看《再見狂野之心》吧遊戲
- 移動端使用rem原理REM
- comScore:資料顯示在美國98%的Instagram使用者來自移動終端
- 移動端動態化的由來,你知道嗎?
- 還在使用 if else 寫程式碼?試試 “策略模式” 吧!模式
- 移動端效能測試必備工具 PerfDog 效能狗
- 使用React中後臺效能優化以及移動端優化React優化
- 使用vue中後臺效能優化以及移動端優化Vue優化
- 還在用GCD?來看看 NSOperation 吧GC
- css在移動端常遇到的檔案CSS
- 在移動端使用vue-router和keep-aliveVueKeep-Alive
- CG Kit探索移動端高效能渲染