【问题标题】:How can I implement Frame Pacing into an android games app如何在 Android 游戏应用程序中实现 Frame Pacing
【发布时间】:2020-08-19 07:00:41
【问题描述】:

我是一名业余应用开发人员,并且一直在调整我的一个项目以通过减少过度绘制、删除不必要的代码和确保仅在必要时进行屏幕更新来提高性能。我的应用程序运行良好,没有我知道的错误,但是当我分析 GPU 渲染时,我得到了很好的结果,除了 GPU 配置文件显示中偶尔出现无法解释的尖峰。我一直在研究 Frame Pacing,但没有成功。我的主要测试是使用三星 GS4 设备完成的,我正在努力解决的问题是 GPU 渲染的一致性。在大多数情况下,令牌移动到新位置的动画很流畅,我看不到任何问题,但间歇性动画似乎很跳跃。

部分设备上的 GooglePlay 发布前报告显示一小部分设备上的 VSync 错误/Slow Ui Thread 和 Slow Draw 命令,发布前报告中的大多数设备不会报告相同的性能错误。

我已经尽可能多地搜索了您的电子管并在 Google 上搜索,以寻求实施 Frame Pacing (Swappy) 的任何帮助,并且我已经下载了 Android 开发人员“games/sdk”。我发现很难遵循开发人员的 Frame Pacing 指南,而且我一直无法找到我能理解的 Frame Pacing 示例。

https://developer.android.com/games/sdk/frame-pacing/opengl/update-build-settings

我正在使用带有 Gradle 6.1.1 的 4.0.1 版本的 Android Studio,我的代码是 Java 并包含以下我的应用程序未引用的依赖项,我怀疑这些依赖项可以解决性能问题我的应用程序。

// To use the Android Frame Pacing library

implementation "androidx.gaming:gaming-frame-pacing:1.5.0-alpha01"

// To use the Android Performance Tuner

implementation "androidx.gaming:gaming-performance-tuner:1.0.0-alpha01"

我希望我不需要学习 C/C++ 或将我的代码转换为 Unity,因为我刚刚熟悉 Java。

任何有助于在我的应用中实施 Swappy for Open GL 的帮助或建议/示例将不胜感激。

【问题讨论】:

    标签: java android


    【解决方案1】:

    来自 Google 的 Android 游戏团队。

    Android Game SDK 仅适用于 C/C++ 和 Unity 游戏,因此恐怕无法帮助您在 Java 应用程序中调整帧节奏。

    我们建议查看 Firebase 性能监控工具: https://firebase.google.com/docs/perf-mon/screen-traces 这有望让您深入了解帧卡顿发生的位置和原因。

    最好的问候。

    【讨论】:

    • 威尔,感谢您的回复,我会跟进您的建议,检查 Firebase 中的性能监视器/屏幕跟踪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多