Android on Linux快速入门

了解如何从Linux创建游戏、部署游戏以及将游戏打包到Android。

Windows
MacOS
Linux

DeployedAndroidGame_Linux.png 在本教程的最后,您将在虚幻引擎4(UE4)上从Linux创建游戏、部署游戏以及将游戏打包到您的Android设备上。

如果您是一个开发者,希望在Android设备上从Linux创建和发布游戏;这就是您要找的页面。本指南将向您介绍如何将Android设备配置为使用Linux上的UE4,并最终向您展示如何在Android上从Linux部署和打包移动游戏。

感谢我们人才济济的贡献者社区,我们成功地添加了Android对Linux UE4的支持。

1 - 必要的设置

虚幻引擎4使用一个特殊版本的Android软件开发工具包(SDK),版本为CodeWorks for Android。 要设置使用虚幻引擎4开发Android项目时所需的SDK和本地开发工具包(NDK),CodeWorks for Android是最简单的方法。如果您安装了较旧版本(1R5版之前的版本)的Android SDK(或较旧版本的CodeWorks for Android),我们建议您卸载它们并安装CodeWorks for Android,同时使用与虚幻引擎4一起发布的CodeWorks for Android安装程序。

我们已经将CodeWorks for Android安装程序与虚幻引擎4捆绑在一起,以确保您的Android SDK将与引擎兼容。值得注意的是,从虚幻引擎4.16版开始,引擎就包含CodeWorks for Android 1R6u1。

为了向您展示如何着手使用Linux上的Android,我们将在使用虚幻引擎版本4.14的同时使用CodeWorks For Android 1R6u1。在安装CodeWorks for Android 1R6u1之前,应该关闭引擎。另外,请确保安装了Java开发工具包8(JDK 8),并将JAVA_HOME环境变量设置为Java开发工具包(JDK)的正确版本。要验证JAVA_HOME设置正确,将echo $JAVA_HOME输入到终端中。如果没有看到正确的JDK版本,下载JDK 8,并将其安装到您的Linux计算机上,同时确保将JAVA_HOME环境变量设置为新安装的JDK。

在继续操作之前,请注意目前不支持Linux上的Android Vulkan。

  1. 开始时,打开终端并导航到包含编译引擎的[UE4Root]文件夹(使用cd命令,更改shell工作目录)。 

    LinuxAndroid_Step0.png

  2. [UE4Root]文件夹内,通过在终端中输入以下字符串,导航到CodeWorks for Android 1R6u1二进制文件(CodeWorksforAndroid-1R6u1-linux-x64.run):cd Engine/Extras/AndroidWorks/Linux。 

    LinuxAndroid_Step1.png

  3. 现在,在终端中输入ls -l,显示目录内容的一个长清单。 

    LinuxAndroid_Step2.png

    文件的权限设置告诉您,CodeWorksforAndroid-1R6u1-linux-x64.run 还未准备好执行。在运行CodeWorks for Android 1R6u1二进制文件之前,需要更改文件的访问权限,以允许“execute”权限。

  4. 若要更改CodeWorksforAndroid-1R6u1-linux-x64.run的文件权限设置,使其能够像普通可执行文件一样运行,请在终端中输入chmod +x CodeWorksforAndroid-1R6u1-linux-x64.run。 

    LinuxAndroid_Step3.png

    如果您想了解更多关于chmod命令的信息,请在终端中输入man chmod,阅读包含chmod工作原理的手册页。

  5. 现在,在终端中输入ls -l。 

    LinuxAndroid_Step4.png

    图中突出显示的文件权限设置表明,CodeWorks for Android 1R6u1二进制文件可以执行了。

  6. 要运行CodeWorks for Android二进制文件,在终端中输入./CodeWorksforAndroid-1R6u1-linux-x64.run。 

    LinuxAndroid_Step5.png

    在进行下一步之前,请确保您的计算机具有有效的互联网连接。

  7. 当CodeWorks for Android 1R6u1二进制文件解压缩 NVIDIA CodeWorks for Android 安装程序后,您将看到 安装程序欢迎(Installer Welcome) 窗口,提示您单击 下一步(Next)取消(Cancel)。 

    LinuxAndroid_Step6.png

  8. 从 安装程序欢迎(Installer Welcome) 窗口中,单击 下一步(Next) 按钮开始安装流程。 

    LinuxAndroid_Step7.png

  9. 现在,从 Android开发者的欢迎窗口(Android Developer's Welcome Window) 中,单击 下一步(Next) 按钮以继续安装流程。 

    LinuxAndroid_Step8.png

  10. 指定CodeWorks for Android 1R6u1应安装和下载到的目录。 

    LinuxAndroid_Step9.png

  11. 单击 下一步(Next)> 按钮从NVIDIA下载CodeWorks for Android 1R6u1,最终在您的计算机上安装CodeWorks。 

    LinuxAndroid_Step10.png

  12. 现在,在从 Android组件管理器(Android Component Manager) 窗口单击 下一步(Next) 之前,验证您正在安装 CodeWorks for Android 1R6u1

    LinuxAndroid_Step11.png

  13. 出现 条款和条件(Terms and Conditions) 窗口后,花些时间通读所有 条款和条件(Terms and Conditions),然后选择 全部接受(Accept All) 复选框。 

    LinuxAndroid_Step12.png

  14. 现在,单击 接受(Accept) 按钮开始安装流程。 

    LinuxAndroid_Step13.png

  15. 一旦安装程序完成安装流程,单击 下一步(Next)> 按钮继续。 

    LinuxAndroid_Step14.png 

  16. 安装完成(Installation Complete) 窗口打开后,单击 完成(Finish) 按钮以完成安装。 

    LinuxAndroid_Step15.png

  17. 继续进行下一步之前,确保重启计算机。 

    LinuxAndroid_Note16.png

    如果不想使用Ubuntu的GUI,您可以在终端中输入sudo reboot以重启计算机。

单击显示全图

2 - 设置您的Android设备

现在您已经在Linux计算机上安装了Android SDK,基本上可以开始为Android设备开发移动游戏了。但是,在Android设备上运行虚幻引擎游戏之前,需要启用Android的开发环境。

在开始以下步骤之前,请确保您能够获取USB线。

启用Android的开发者选项

  1. 将Android设备通过USB线连接到您的Linux计算机。

  2. 在Android设备上打开 设置(Settings) 应用程序。

    单击显示全图

  3. 点击 开发者选项(Developer Options) 打开“开发者选项(Developer Options)”菜单。

    单击显示全图

    如果您没有看到该项目,则需要在您的设备上启用 开发者选项(Developer Options)。要启用 开发者选项(Developer Options),打开 设置(Settings) 应用程序,滚动到底部并选择 关于电话(About phone)。选择 关于电话(About phone) 后,滚动到底部并点击 内部版本号(Build number) 七(7)次。有关如何在Android设备上启用开发者选项(Developer Options)的更多说明,请访问Android的用户指南

启用USB调试

  1. 从 开发者选项(Developer Options) 菜单中,启用 USB调试(USB debugging)

    单击显示全图

  2. 应显示一个窗口,确认您的选择以启用USB调试。阅读提示后,继续并点击 确定(OK)

    单击显示全图

    USB调试现已启用。
    LinuxAndroid_Step20Note.png

  3. 现在,断开Android设备与USB线的连接,几秒钟后再把它插回去。 如果您正在连接一个运行Android 4.2.2或更高版本的设备,将显示以下对话框,询问您是否接受一个RSA密钥,以允许通过您的Linux计算机进行调试。继续并选择 始终允许从这台计算机(Always allow from this computer) 旁的复选框,然后点击 确定(OK) 按钮。

    单击显示全图

分段结果

现在,您已经准备好验证您的设备可否在Linux计算机上进行调试。要验证您的设备是否正确设置,请打开终端并输入adb devices

LinuxAndroid_Step22.png

您应该看到一个连接到Linux计算机上的设备列表,这意味着您有一个准备运行虚幻引擎游戏的Android设备。

如果您在终端中输入adb devices后没有看到您的设备,您可能需要在Linux计算机上安装adb。请参阅Android Debug Bridge用户指南了解有关adb以及如何在您的计算机上安装此程序的更多信息。如果您确定已经在您的计算机上安装和配置了adb,请尝试以下故障排除方法:

  • 您可能需要断开您的Android设备与您的计算机的连接,并重新连接它们。

  • 如果您没有选择 始终允许从这台计算机(Always allow from this computer) 旁边的复选框,您可能需要选择此复选框。

  • 如果此设备被列为未授权,您可以让Android设备授权您的Linux计算机进行USB调试。

  • 在某些情况下,如果一个正确配置的设备使用媒体传输协议(MTP)作为媒体设备连接,则可能无法识别此设备。

  • 同样,如果一个正确配置的设备使用图片传输协议(PTP)作为摄像机设备连接,则可能无法识别此设备。

3 - 创建项目

现在,您已经安装并配置了Android SDK,还设置了Android的开发环境,Android Debug Bridge能够列出所有连接到您的Linux计算机的设备。您可以开始在UE4中创建一个新的移动项目。

创建移动项目

  1. 打开**虚幻项目浏览器(Unreal Project Browser)**,并使用以下选项新建蓝图项目。

    • 选择 第三人称(Third Person) 模板

    • 目标硬件(Target Hardware) 设置为 移动设备/平板电脑(Mobile / Tablet)

    • 图像级别 设置为 可缩放的3D或2D(Scalable 3D or 2D)

    • 选择 没有初学者内容(No Starter Content)

    单击显示全图

  2. 为该项目命名,并设置该项目的 文件夹(Folder) 位置。在本教程中,我们将该项目命名为LinuxAndroidProject

    单击显示全图

  3. 完成您的项目设置后,单击 创建项目(Create Project) 按钮。

    单击显示全图

分段结果

单击显示全图

祝贺您!您刚刚创建了一个可供移动设备使用的新UE4项目。

4 - 部署关卡

部署关卡意味着,您将要从UE4将关卡烘焙启动到您的Android设备。因为要将移动应用程序部署到Android设备上,需要考虑很多细节,包括(尽管不限于)Linux计算机的编译环境、Android设备的指令集和设备的渲染功能。因此,在将 ThirdPersonExampleMap 关卡部署到Android设备之前,您将回顾一些最常见的部署前考虑事项。

Linux上部署前的考虑事项

在部署应用程序之前,请参考下面的列表,该列表旨在帮助您在将游戏部署到设备时,避免可能出现的一些常见问题。

  • 虽然这似乎是一个显而易见的考虑,但请确保Android设备已正确连接到您的计算机。

  • 如果您还没有这样做,请验证Android Debug Bridge(adb)列出了您的连接设备。要了解更多关于adb的信息,请在终端中输入adb --help。您还可以参阅Android Debug Bridge用户指南了解有关adb以及如何在您的计算机上安装此程序的更多信息。

  • 为了正确地构建游戏、烘焙游戏、打包游戏并将游戏部署到Android,您需要安装JDK 8,并将JAVA_HOME环境变量设置为JDK的正确版本。要验证是否正确设置了JAVA_HOME,请在终端中输入echo $JAVA_HOME。如果没有看到正确的JDK版本,下载JDK 8,并将其安装到您的Linux计算机上,同时确保将JAVA_HOME环境变量设置为新安装的JDK。您可以在Android SDK项目设置中设置JAVA_HOME环境变量。

  • 确保您正在针对相应的ARM架构进行构建,因为如果不这样做,您的项目将无法正确部署。在验证将在您的设备上工作的指令集之后,您可以通过导航到 编辑(Edit)> 项目设置...(Project Settings)> Android > 构建(Build) 并选择 支持arm7(Support arm7)支持arm64(Support arm64),来从编辑器中选择相应的ARM架构支持。

  • 目前,我们不提供来自Linux上UE4的 Vulkan 渲染支持。

  • 不同的Android设备支持不同的纹理格式。如果您不知道Android设备支持哪些纹理格式,请尝试将您的目标纹理设置为Ericsson纹理压缩1(ETC 1)压缩方案,大多数Android设备都应该支持该方案。要了解有关支持多个纹理的更多信息,请查看Android的有关为不同的GL纹理创建多个APK的文档。

查看可用的纹理格式

如果您有兴趣阅读有关当前支持纹理的更多信息,下表提供了Android设备上最常支持用纹理的快速摘要:

格式

描述

ETC1

所有Android设备均支持,但无法压缩透明纹理(其保存为未压缩)。如果需要透明度来获得更好的压缩,建议使用RGB和单独的透明纹理。

ETC2

所有OpenGL 3.x类设备均支持,并支持透明度压缩。

ATC

Qualcomm Adreno GPUs支持,并支持透明度压缩。

DXT

Nvidia Tegra GPUs支持,并支持透明度压缩。

PVRTC

PowerVR GPUs支持,并支持透明度压缩。

ASTC

最新的纹理压缩格式,可指定块大小来进行质量控制,支持透明度压缩。可在部分设备上使用,为Vulkan Level 1所必需。

部署关卡

既然您已经阅读了将游戏部署到Android设备上的一些最重要的考虑事项,那么您可以开始部署过程了。

  1. 首先,确保 ThirdPersonExampleMap 已打开。

    单击查看全图

  2. 要打开 设备(Devices) 菜单,请单击位于 主工具栏(Main Toolbar) 中的 启动(Launch) 图标旁边的箭头。

    单击查看全图

  3. 设备(Devices) 菜单打开后,选择您的Android设备。

    单击查看全图

  4. 此时,虚幻引擎会将关卡部署到您的Android设备上。

    正如您在视频中看到的,UE4在编辑器的右下角更新应用程序部署过程的进度。

  5. 当UE4完成烘焙并启动您的项目时,关卡应该在您的设备上运行。您还将能够看到一个虚幻引擎图标,应该可以从您的Android应用程序托盘访问此图标。

    LinuxAndroid_Step29.png

确定支持的纹理格式

如果您仍想知道您的Android设备支持哪些纹理格式,请尝试下面的步骤:

  1. 当在您的设备上运行游戏时,用四(4)根手指轻敲屏幕。

    LinuxAndroid_Step30.png

    应该会出现一个对话框,显示您的Android设备支持的纹理格式。

分段结果

祝贺您!您现在应该在您的Android设备上运行了第三人称示例贴图。

5 - 打包游戏

本教程学习到现在,您已经创建并将移动游戏项目部署到了Android设备上;然而,如果您想要发布您的游戏,则需要打包项目。下面的步骤向您展示了如何打包您的项目以便在Android平台上发布。在开始之前,需要注意的是,您将在 开发(Development) 模式下打包项目。为了测试目的,一开始在 开发(Development) 模式下打包游戏始终是一个很好的做法。一旦您对您的游戏感到满意,您就可以在 发布(Shipping)模式下打包项目,这将告诉引擎删除控制台命令、统计数据和分析工具。

要了解更多关于UE4中提供的不同构建配置之间的差异,请阅读我们的构建配置参考页面。

打包项目

  1. 打开 文件(File) 菜单,向下滚动到 打包项目(Package Project),并将鼠标光标悬停在 Android 上,然后选择 Android (ETC1)

    单击显示全图

  2. 当出现 打开目录(Open Directory) 菜单后,使用 新建文件夹(New Folder) 按钮创建一个名为Android_Builds的新文件夹。

    单击显示全图

  3. 现在,单击 打开(Open) 按钮开始打包过程。

    单击显示全图

  4. 当UE4打包您的项目时,您应该会在右下角看到一个进度指示器。

    单击显示全图

  5. 在打包过程结束时,您应该看到一条消息,告诉您打包过程已完成。

    单击显示全图

  6. 导航到 Android_Builds 文件夹,在此文件夹中,您应该会看到一个名为 Android_ETC1 的文件夹。

    LinuxAndroid_Step36.png 

  7. 打开 Android_ETC1 文件夹,您将在其中找到在打包过程中创建的文件。

    LinuxAndroid_Step37.png

    您应该看到 安装(Installation)卸载(Uninstallation) shell脚本(/.sh),以及Android应用程序包(.apk),其中包含所需的所有文件,可将项目安装到支持ETC1压缩方案的任何Android设备。

  8. 现在,通过在此文件中单击右键并选择 在终端中打开(Open in Terminal),从此文件夹的位置打开终端。

    LinuxAndroid_Step38.png 

  9. 在终端中输入./Install_LinuxAndroidProject_Development-arm64.es2.sh以将项目安装到您的Android设备。

    单击显示全图

    如果您在运行shell脚本时遇到问题,请尝试在终端中输入adb devices,以验证您的设备确实已连接到您的计算机。

  10. 在安装过程中,shell脚本应该将以下输出刷新到您的终端

    单击显示全图

    当shell脚本完成安装过程后,您应该看到一条 安装成功(Installation successful) 消息。

分段结果

现在安装脚本已经将游戏安装到您的Android设备上,该项目现在应该在您的设备的应用程序托盘中可见。

单击显示全图

祝贺您!您已经了解了:

✓ 如何安装和设置Android SDK以便使用Linux上的UE4开发移动游戏。
✓ 如何启用Android的开发环境。
✓ 如何在UE4中创建一个Android移动游戏。
✓ 如何将一个关卡从UE4部署到Android设备上。
✓ 如何打包移动游戏以便发布(发行)。

下一部分就有关如何运用新获得的技能提出一些建议。

6 - 看你的了!

开发移动游戏尤其需要注意,特别是在设备兼容性、移动性能和空间限制方面。当您在设计移动游戏时,应用最佳实践将帮助您有效地完善您的移动游戏开发技能。在使用您刚刚学到的最佳实践设计了移动内容之后,学习如何使用另一种部署方法预览和部署您的移动游戏。最后,在这一页的末尾,我们添加了一些练习来帮助您练习新获得的移动开发技能。

学习一些最佳实践

现在您已经了解了如何为Android设备创建、打包和部署一个移动UE4项目模板;现在是考虑设备兼容性、移动性能和APK最佳实践的好时机,它们可能会影响您从Linux上的UE4创建移动游戏的能力。

Android设备兼容性

移动性能

减小APK包大小

由于目标硬件或软件平台的限制,有时您需要限制移动游戏的大小。如果您遇到需要减小移动游戏大小的情况,您可能需要减小您的 Android应用程序包(APK)的大小,它是Android操作系统用于打包移动应用程序以便发布的自定义文件格式。请查阅减小APK包大小参考页面,在那里您将了解如何减小您的打包游戏大小的方式。

设计移动内容

如果您想利用您所学到的使用Linux上的UE4开发移动游戏的知识,您需要设计能够利用您设备可用渲染功能的游戏内容。请阅读以下参考资料:

预览您的移动游戏

在将移动游戏部署到Android设备之前,您可能希望在编辑器中预览游戏。请阅读我们的移动预览器概述页面,了解如何在编辑器中预览您的移动游戏。

通过无线网络部署

现在,您已经学习了一些设计游戏内容的最佳实践,您已经使用编辑器预览了您的移动游戏,并且已经准备好通过无线网络将您的游戏部署到Android设备上。请阅读我们的Gear VR调试参考页面,了解更多关于通过无线网络将UE4项目部署到Android设备上的信息。

自己做一些练习

如果您想继续测试您的移动游戏开发技能,您可以自己做一些练习:

  • 使用第三人称模板之外的其他内容创建一个新的移动项目,然后尝试在Android设备上运行新创建的项目。

  • 尝试使用不同的Android纹理格式打包您的项目,并记录哪些格式将适用于您的特定设备。

标签

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见