查看原文
其他

Android 游戏开发工具包热门问题解答

Android Android 开发者 2021-11-05

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


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


  • Android 游戏开发工具包 (AGDK)
    https://developer.android.google.cn/games/agdk



AGDK 和游戏引擎



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

  1. 如果您使用的是 Defold、Godot、Unity 或 Unreal 等热门游戏引擎,您可以根据我们的指南,学习如何在 Android 上开发应用。使用这些游戏引擎可助您专注于构建游戏玩法而非整个技术栈。

  2. 如果您使用 Unreal 引擎且针对多个平台 (例如 PC 或主机),Android 游戏开发工具扩展包 (AGDE) 可能会对您的工作流程起到很好的补充效果:

    https://developer.android.google.cn/games/agde

  3. 我们还为想要自定义和编写自己游戏引擎的开发者提供支持,您可通过我们的 C 或 C++ 文档了解详情:

    https://developer.android.google.cn/games/develop/custom/overview

  • Defold

    https://developer.android.google.cn/games/engines/defold/defold-configure

  • Godot

    https://developer.android.google.cn/games/engines/godot/godot-configure

  • Unity

    https://developer.android.google.cn/games/develop/build-in-unity

  • Unreal

    https://developer.android.google.cn/games/engines/unreal

  • 热门游戏引擎
    https://developer.android.google.cn/games/engines/engines-overview


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


  • Android Studio 性能剖析器
    https://developer.android.google.cn/studio/profile/android-profiler

  • Android GPU Inspector
    https://developer.android.google.cn/agi

  • Android Performance Tuner
    https://developer.android.google.cn/games/sdk/performance-tuner



游戏模式 API 和干预



之后,我们收到了关于针对 Android 12 进行开发的问题。您无需为在 Android 12 上运行游戏进行任何特殊操作,我们引入了游戏模式 API 和干预,以帮助玩家自定义其游戏体验:
https://developer.android.google.cn/games/gamemode
  1. 您可以阅读更多关于游戏模式 API 的内容,了解如何在用户选择相应的游戏模式时优化游戏,以获得最佳性能或最长电池续航时间:
    https://developer.android.google.cn/games/gamemode/gamemode-api
  2. 您可以了解更多游戏模式干预,这些干预由原始设备制造商 (OEM) 设置,以改善那些不再被开发商更新的游戏的性能。例如: 调整 WindowManager 后台缓冲区的大小,以减少设备的 GPU 负载。


  • 游戏模式干预
    https://developer.android.google.cn/games/gamemode/gamemode-interventions

  • 调整 WindowManager 后台缓冲区的大小
    https://developer.android.google.cn/games/gamemode/gamemode-interventions#windowmanager_backbuffer_resizing



Android 的内存访问



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

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

  • onTrimMemory()
    https://developer.android.google.cn/topic/performance/memory.html

  • 低内存终止守护进程 (Low Memory Killer)
    https://developer.android.google.cn/topic/performance/memory-management#low-memory_killer

  • bugreport
    https://developer.android.google.cn/studio/debug/bug-report

  • ApplicationExitInfo
    https://developer.android.google.cn/reference/android/app/ApplicationExitInfo

  • REASON_LOW_MEMORY
    https://developer.android.google.cn/reference/android/app/ApplicationExitInfo#REASON_LOW_MEMORY

  • 内存抖动
    https://developer.android.google.cn/games/optimize/memory-allocation#avoid-thrashing

  • 系统跟踪
    https://developer.android.google.cn/topic/performance/tracing

  • Android 性能剖析器
    https://developer.android.google.cn/studio/profile/memory-profiler

  • 其他工具
    https://developer.android.google.cn/games/optimize/memory-allocation#use-available-tools



在 Android 中绘制图形



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

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

    https://developer.android.google.cn/ndk/guides/graphics/getting-started


  • OpenGL ES
    https://developer.android.google.cn/guide/topics/graphics/opengl

  • Vulkan 图形 API
    https://developer.android.google.cn/ndk/guides/graphics

您可以观看问答视频查看有关 AGDK 的热门问题,也可以访问 Android 官方网站获取有关 Android 游戏开发的最新资源:
https://developer.android.google.cn/games/agdk

△ Android 游戏开发工具包热门问题解答

欢迎您持续关注官方微信公众账号,随时获取更多资讯。


您可以通过下方二维码向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!



推荐阅读

如页面未加载,请刷新重试


 点击屏末 | 阅读原文 | 即刻获取 Android 游戏开发的最新资源




视频 小程序 ,轻点两下取消赞 在看 ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存