還在苦惱移動端的遊戲效能採集?快來使用 Fionna 吧

奥利嗷嗷嗷叫發表於2024-05-20

概述

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

相關文章