Android 游戏开发工具包热门问题解答
作者 / 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 游戏开发的最新资源。
欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
这9个单例被破坏的事故现场,你遇到过几个? 评论区见
1 通用单例写法带来的弊端 我们看到的单例模式通用写法,一般就是饿汉式单例的标准写法。饿汉式单例写法在类加载的时候立即初始化,并且创建单例对象。它绝对线程安全,在线程还没出现之前就实例化了,不可能存在访问安全问题。饿汉式单例还有另外一种写法,代码如下。 //饿汉式静态代码块单例模式 public class HungryStaticSingleton { private static final HungryStaticSingleton instance; static { instance = new HungryStaticSingleton(); } private HungryStaticSingleton(){} public static HungryStaticSingleton getInstance(){ return instance; } } 这种写法使用静态代码块的机制,非常简单也容易理解。饿汉式单例模式适用于单例对象较少的情况。这样写可以保证绝对线程安全,执行效率比较高。但是它的缺点也很明显,就是所有对象类在加载的时候就实例化。这样一来,如果系统中有大批量的...
- 下一篇
当爬虫工程师遇到 CTF丨B 站 1024 安全攻防题解
答案参考 第一题:a1cd5f84-27966146-3776f301-64031bb9 第二题:36c7a7b4-cda04af0-8db0368d-b5166480 第三题:9d3c3014-6c6267e7-086aaee5-1f18452a 第四题:3d5dd579-0678ef93-18b70cae-cabc5d51 第五题:516834cc-50e448af-bcf9ed53-9ae4328e 第六题:b13981f4-5ae996d4-bc04be5b-34662a78 第七题(部分 IP,可拿 10 分):bba.ja.cca.beg,bba.ja.ccb.cbc,bbb.bb.bjd.bgc,bbb.bb.bjd.bha,bbb.bb.bjd.bhc,bbb.bb.bjd.bhf,bfh.ff.dj.bcf,bfh.ff.dj.bd,bfh.ff.dj.fb,bfh.ff.dj.ig,bfh.ff.dj.jf,cd.baf.cae.cbc,cd.bb.cai.cbh,cdd.bcc.bg.bib,cde.ced.bbb.dd,dc.bb.ii.jj,jj.bdc.bb...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker安装Oracle12C,快速搭建Oracle学习环境