移动性能测试 还在苦恼移动端的游戏性能采集?快来使用 Fionna 吧

奥利嗷嗷嗷叫 · 2024年05月20日 · 最后由 艾克 回复于 2024年06月03日 · 2867 次阅读

概述

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

接下来即可正常根据需求开发项目

注意事项

GitHub 地址

https://github.com/omsage/fionna

感谢

共收到 1 条回复 时间 点赞

给大佬点赞😛

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册