作者 / Android DevRel 技术主管经理 Wayne Lu
我们在 7 月发布了 Android 游戏开发工具包 (AGDK),并收集了一些开发者提出的热门问题,包括 AGDK 库和工具、Android 内存优化以及绘制图形等。
AGDK 和游戏引擎
首先,早期新兴的游戏开发者向我们提问如何使用此套 AGDK 库和工具。我们给出如下建议,具体则取决于您的设置:
- 如果您使用的是 Defold、Godot、Unity 或 Unreal 等 热门游戏引擎,您可以根据我们的指南,学习如何在 Android 上开发应用。使用这些游戏引擎可助您专注于构建游戏玩法而非整个技术栈。
- 如果您使用 Unreal 引擎且针对多个平台 (例如 PC 或主机),Android 游戏开发工具扩展包 (AGDE) 可能会对您的工作流程起到很好的补充效果。
- 我们还为想要自定义和编写自己游戏引擎的开发者提供支持,您可通过我们的 C 或 C++ 文档 了解详情。
选择游戏引擎和工作流程之后,您可以进一步研究我们的工具,例如可检查游戏的 Android Studio 性能剖析器、可分析图形的 Android GPU Inspector 以及可优化帧率和加载时间的 Android Performance Tuner。
游戏模式 API 和干预
之后,我们收到了关于针对 Android 12 进行开发的问题。您无需为在 Android 12 上运行游戏进行任何特殊操作,我们引入了 游戏模式 API 和干预,以帮助玩家自定义其游戏体验。
-
您可以阅读更多关于 游戏模式 API 的内容,了解如何在用户选择相应的游戏模式时优化游戏,以获得最佳性能或最长电池续航时间。
-
您可以了解更多 游戏模式干预,这些干预由原始设备制造商 (OEM) 设置,以改善那些不再被开发商更新的游戏的性能。例如: 调整 WindowManager 后台缓冲区的大小,以减少设备的 GPU 负载。
Android 的内存访问
其次,有开发者问到在 Android 与 Windows 中进行游戏开发时,内存访问工作原理的异同。简而言之,要点如下:
-
游戏需要与系统共享内存。一些设备的可用内存比其他设备少,因此需要开展测试,以检查一系列受支持的设备是否存在内存不足问题。测试应在用户已安装典型应用的设备 (即非全新设备) 上开展。
-
游戏可分配的内存 大小取决于各种因素,例如物理内存量、脏页数和 zRam (用于压缩交换) 总量。
-
内存不足可能表现为 onTrimMemory() 调用、内存抖动或 低内存终止守护进程 (Low Memory Killer) 终止游戏。您可以使用 bugreport 日志检查低内存终止守护进程 (Low Memory Killer) 是否已终止游戏,或者在 Android 11 及更高版本中检查 ApplicationExitInfo,以查看游戏是否因 REASON_LOW_MEMORY 而终止。
-
避免 内存抖动: 当内存较低但又不足以终止游戏时会发生这种情况。您可以通过 系统跟踪 检测到这一情况,且应该通过减少整体内存占用以避免此问题。
-
使用 Android 性能剖析器 和 其他工具 检查内存使用情况。
在 Android 中绘制图形
第三,我们收到了有关如何在 Android 中绘制图形的问题。您可以借助以下选项实现此目标: OpenGL ES 或 Vulkan 图形 API:
-
了解如何通过初始化变量以及使用游戏循环、场景和对象进行渲染,为 C++ 游戏引擎 配置 OpenGL ES 图形。
-
阅读我们的 Vulkan 指南,了解如何绘制立方体、编译着色器、设置验证层及其他最佳实践。
您可以观看问答视频查看有关 AGDK 的热门问题,也可以访问 Android 官方网站 获取有关 Android 游戏开发的最新资源:
△ Android 游戏开发工具包热门问题解答
欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!