• 赚钱入口【需求资源】限时招募流量主、渠道主,站长合作;【合作模式】CPS长期分成,一次推广永久有收益。主动打款,不扣量;

由Android Performance Tuner提供支持的游戏性能洞察力

Android rin, seun 7个月前 (06-15) 118次浏览 0个评论

由Android Performance Tuner提供支持的游戏性能洞察力

Android vitals是管理应用程序技术质量的目标。每月有80,000多名开发人员利用其性能和稳定性指标。

为了帮助您为更多的Android用户提供更好的游戏体验,我们将引入Android Performance Tuner,这是Android Game SDK中的一个新库,用于解锁Android Vitals中的游戏性能见解。这为您提供了一种可扩展的方式来测量和优化整个Android设备生态系统中的帧速率和图形保真度。由Android Performance Tuner提供支持的游戏性能洞察力将Android Performance Tuner集成到游戏中并将其发布到Play上之后,您将能够通过Android vitals中的以下新功能,查看其在真实用户和设备上的表现。

帧率性能由Android Performance Tuner提供支持的游戏性能洞察力

我们绘制了用户设备上的帧时间分布图,按游戏中实现的质量等级细分了时间,因此您可以查看特定设备型号或硬件规格在每个质量等级上的性能。

性能问题

我们还将分析您的性能数据以帮助确定问题的可能原因,因此您可以区分与特定硬件相关的问题和游戏中特定屏幕或级别的问题。您可以对代码进行注释,以提供有关此时您的游戏状态的上下文信息。这使您可以完全控制见解的粒度。由Android Performance Tuner提供支持的游戏性能洞察力

我们将最主要的设备型号问题和特定于游戏的最重要问题都列出来,以为您提供最重要的明确指导。由Android Performance Tuner提供支持的游戏性能洞察力您可以向下钻取以查看按不同规格(例如GPU和SoC)表现不佳的设备模型的细分。这使您可以决定是否可以在GPU或SoC级别上工作以优化性能。或者,您可以决定更改质量级别,而不是在设备模型级别上工作。由Android Performance Tuner提供支持的游戏性能洞察力

设备模型影响,用户影响,GPU时间

您还可以查看设备型号的完整列表,以及受影响的用户会话数和帧时间,以帮助您确定特定于设备的更改的优先级。除了总帧时间外,我们还向您显示GPU时间,以帮助确定设备是否受GPU限制或存在其他性能问题,例如受CPU或I / O限制。可以导出设备模型表中的所有数据,以进行进一步的分析和行动计划。

创造良好体验的机会

我们还可以帮助您发现机会-通过为他们提供更高的质量水平,启用更高级的图形功能,有可能为用户提供更好的体验的地方。由Android Performance Tuner提供支持的游戏性能洞察力

机会带来的帧时性能

最左边的设备不仅满足帧时间的要求,而且还具有流畅的性能。您可以向下钻取以按设备型号和规格查看统计信息,以查看是否有机会改善各种设备的图形保真度。

随处可用(几乎)

Android Performance Tuner旨在在超过99%的Android设备生态系统中工作。从Android 4.1(API 16)起,您可以在全球任何Android设备上获得这些见解。

集成Android Performance Tuner

无论您是拥有自己的游戏引擎还是正在使用第三方游戏引擎,我们都在尽力使集成变得容易。Android Performance Tuner依赖于每帧被调用的刻度函数。在库中,此刻度信息被汇总为直方图,这些直方图会通过HTTP端点定期上传,因此您的游戏将需要具有Internet访问权限。

使用我们用于Unity平台的插件,您可以从Unity 2017.4起收集帧滴答声。Unity 2019.3.14+允许收集更高保真度的性能信息。

如果您要进行本机源代码级引擎集成,我们强烈建议您集成Android Game SDK中的Frame Pacing API,以获得最高质量的信息。Frame Pacing API将为您提供更平滑的帧速率,并改善了对高刷新率显示的支持,因此值得单独集成。

Unreal 4.25+集成了Frame Pacing API。您可以通过添加 a.UseSwappyForFramePacing=1到Android_Default配置文件来启用它,以针对所有Android设备激活它。

在虚幻引擎或本机引擎集成中,您Swappy_injectTracer在初始化时从Frame Pacing API 传递函数以启用自动帧时间记录。

<span class="kwd">无效</span><span class="typ">InitTf </span><span class="pun">(</span><span class="typ">JNIEnv </span><span class="pun">* </span><span class="pln">env </span><span class="pun">,</span><span class="pln">jobject活动</span><span class="pun">)</span><span class="pun">{ </span><span class="typ">SwappyGL_init </span><span class="pun">(</span><span class="pln">env </span><span class="pun">,</span><span class="pln">活动</span><span class="pun">); </span><span class="pln">
   swappy_enabled </span><span class="pun">= </span><span class="typ">SwappyGL_isEnabled </span><span class="pun">(); </span><span class="typ">TFSettings </span><span class="pln">设置</span><span class="pun">{}; </span><span class="kwd">如果</span><span class="pun">(</span><span class="pln">swappy_enabled </span><span class="pun">)</span><span class="pun">{ </span><span class="pln">
       设置</span><span class="pun">。</span><span class="pln">swappy_tracer_fn </span><span class="pun">= </span><span class="pun">&</span><span class="typ">SwappyGL_injectTracer </span><span class="pun">; </span><span class="pun">} </span><span class="pun">… </span><span class="pun">}</span>

在Android Performance Tuner中为引擎启用帧时间记录

在Unity中,建议您在Unity设置中激活“优化的帧间隔”(仅限Unity 2019.3+),但是在使用Android Performance Tuner的Unity中,不需要帧间隔。由Android Performance Tuner提供支持的游戏性能洞察力

提供上下文信息

接下来,您要定义注释,以提供有关记录滴答声时游戏行为的上下文信息,例如:

  • 当前游戏等级
  • 加载特定场景
  • 屏幕上出现“大老板”或其他复杂的渲染项目
  • 相关游戏状态信息

注释参数

如果您将Unity与Android Performance Tuner插件结合使用,则会自动获得一个场景注释,该注释映射到当前正在播放的场景。您可以轻松地将LoadingState批注连接到脚本,并且可以在插件编辑器UI中定义其他批注。由Android Performance Tuner提供支持的游戏性能洞察力

Android Performance Tuner插件在Unity Editor中的注释参数

为了从您自己的游戏引擎中传递注释参数,您需要定义一个协议缓冲区消息,其中包含所有这些注释,例如加载状态,级别或场景等。

保真度参数和质量等级

您还可以定义保真度参数,并将其与游戏报告的质量级别相关联。这些可以用于您在游戏中用来降低场景复杂性的任何事情,例如纹理质量,绘制距离,粒子数,后处理效果,阴影分辨率等。在本机集成中,您可以定义这些参数使用协议缓冲区。

<span class="kwd">导入</span><span class="str">“ tuningfork.proto” </span><span class="pln">
消息</span><span class="typ">FidelityParams </span><span class="pun">{ </span><span class="pln">
  int32 texture_quality_level </span><span class="pun">= </span><span class="lit">1 </span><span class="pun">; </span><span class="pln">
  int32 shadow_resolution </span><span class="pun">= </span><span class="lit">2 </span><span class="pun">; </span><span class="kwd">浮动</span><span class="pln">terrain_details_percent </span><span class="pun">= </span><span class="lit">3 </span><span class="pun">; </span><span class="pln">
  int32 post_processing_effects_level </span><span class="pun">= </span><span class="lit">4 </span><span class="pun">; </span><span class="pun">}</span>

内部引擎的示例FidelityParams原型定义

然后,您最多可以创建15套质量级别,作为FidelityParams消息定义的一组值,这使Android Performance Tuner可以根据您的质量数据跟踪其指标。您可以在Android Performance Tuner for Unity插件提供的Unity编辑器界面中创建保真度参数和质量级别。

测试您的整合

我们已经创建了音叉监视器应用程序,以充当本地服务器并显示来自启用了Android Performance Tuner的应用程序中的数据。您可以EnableLocalEndpoint()在开发版本中调用Android Performance Tuner Unity插件以启用本地测试。在本机集成中,您可以endpoint_uri_override在Android Performance Tuner设置中进行设置。

一旦本地测试看起来不错,您就可以在Google Cloud Console中启用Android Performance Parameters API进行端到端测试。

现在有空

我们致力于帮助您将最佳游戏版本带给Android生态系统中最广泛的用户和设备。Android Game SDK中的Android Performance Tuner,Unity插件以及Android Vitals中的Performance Insights现在都可用。您可以参考我们的文档,以逐步了解本机和Unity集成的过程。

 

 

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址