头图

作者 / Android DevRel 技术主管经理 Wayne Lu

我们在 7 月发布了 Android 游戏开发工具包 (AGDK),并收集了一些开发者提出的热门问题,包括 AGDK 库和工具、Android 内存优化以及绘制图形等。

AGDK 和游戏引擎

首先,早期新兴的游戏开发者向我们提问如何使用此套 AGDK 库和工具。我们给出如下建议,具体则取决于您的设置:

  1. 如果您使用的是 DefoldGodotUnityUnreal热门游戏引擎,您可以根据我们的指南,学习如何在 Android 上开发应用。使用这些游戏引擎可助您专注于构建游戏玩法而非整个技术栈。
  2. 如果您使用 Unreal 引擎且针对多个平台 (例如 PC 或主机),Android 游戏开发工具扩展包 (AGDE) 可能会对您的工作流程起到很好的补充效果。
  3. 我们还为想要自定义和编写自己游戏引擎的开发者提供支持,您可通过我们的 C 或 C++ 文档 了解详情。

选择游戏引擎和工作流程之后,您可以进一步研究我们的工具,例如可检查游戏的 Android Studio 性能剖析器、可分析图形的 Android GPU Inspector 以及可优化帧率和加载时间的 Android Performance Tuner

游戏模式 API 和干预

之后,我们收到了关于针对 Android 12 进行开发的问题。您无需为在 Android 12 上运行游戏进行任何特殊操作,我们引入了 游戏模式 API 和干预,以帮助玩家自定义其游戏体验。

  1. 您可以阅读更多关于 游戏模式 API 的内容,了解如何在用户选择相应的游戏模式时优化游戏,以获得最佳性能或最长电池续航时间。
  2. 您可以了解更多 游戏模式干预,这些干预由原始设备制造商 (OEM) 设置,以改善那些不再被开发商更新的游戏的性能。例如: 调整 WindowManager 后台缓冲区的大小,以减少设备的 GPU 负载。

Android 的内存访问

其次,有开发者问到在 Android 与 Windows 中进行游戏开发时,内存访问工作原理的异同。简而言之,要点如下:

  1. 游戏需要与系统共享内存。一些设备的可用内存比其他设备少,因此需要开展测试,以检查一系列受支持的设备是否存在内存不足问题。测试应在用户已安装典型应用的设备 (即非全新设备) 上开展。
  2. 游戏可分配的内存 大小取决于各种因素,例如物理内存量、脏页数和 zRam (用于压缩交换) 总量。
  3. 内存不足可能表现为 onTrimMemory() 调用、内存抖动或 低内存终止守护进程 (Low Memory Killer) 终止游戏。您可以使用 bugreport 日志检查低内存终止守护进程 (Low Memory Killer) 是否已终止游戏,或者在 Android 11 及更高版本中检查 ApplicationExitInfo,以查看游戏是否因 REASON_LOW_MEMORY 而终止。
  4. 避免 内存抖动: 当内存较低但又不足以终止游戏时会发生这种情况。您可以通过 系统跟踪 检测到这一情况,且应该通过减少整体内存占用以避免此问题。
  5. 使用 Android 性能剖析器其他工具 检查内存使用情况。

在 Android 中绘制图形

第三,我们收到了有关如何在 Android 中绘制图形的问题。您可以借助以下选项实现此目标: OpenGL ESVulkan 图形 API:

  1. 了解如何通过初始化变量以及使用游戏循环、场景和对象进行渲染,为 C++ 游戏引擎 配置 OpenGL ES 图形
  2. 阅读我们的 Vulkan 指南,了解如何绘制立方体、编译着色器、设置验证层及其他最佳实践。

您可以观看 问答视频 查看有关 AGDK 的热门问题,也可以访问 Android 官方网站 获取有关 Android 游戏开发的最新资源。

欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!


Android开发者
404 声望2k 粉丝

Android 最新开发技术更新,包括 Kotlin、Android Studio、Jetpack 和 Android 最新系统技术特性分享。更多内容,请关注 官方 Android 开发者文档。