总览
Android开发参考页面中包含高阶指导,讲解需要在UE4 Android项目开发电脑上安装的诸多软件组件和进行的各种系统设置。
Android SDK要求
以下是在UE4中进行Android游戏开发的最新需求:
组件 | 环境变量 |
---|---|
|
|
安装组件
获取组件的方法有几种。如果已安装其中一个组件,请查阅对应部分了解额外要求:
CodeWorks for Android 1R7u1
CodeWorks for Android 1R7u1(来自NVIDIA)是Android开发的一站式服务。将其安装后即可满足Android开发的所有要求。
CodeWorks for Android 1R7u1的安装程序包含在Windows版虚幻引擎4中。其路径如下:
[ENGINE INSTALL LOCATION]\Engine\Extras\Android\CodeWorksforAndroid-1R7u1-windows.exe
重要组件如下:
- Android SDK(基础、平台工具、编译工具)
- Android 4.4.2 (API 19) - SDK平台
- Android 5.0.1 (API 21) - SDK平台
- Android 6.0.0 (API 23) - SDK平台
- Android N (API 24) - SDK平台
- Android SDK支持库
- Android工具链
- Android NDK 12b
- Java SDK
- Apache Ant
- USB驱动
- 可选安装
- Gradle
- 开发者工具(可选安装)
- Visual Studio版Nsight Tegra
- USB驱动
如使用默认安装套件,将安装一套较少的组件。自定义安装便可添加更多项目(如分析工具等)。注意:在安装过程中, 一两个子安装程序可能会失去响应,但其最终会完成进程。安装时长约30到45分钟。如果未计划编写代码, 则可以选择 自定义,只安装SDK、Ant和Java(跳过NDK和Nsight调试器的安装),这是完成安装的最快方法。CodeWorks for Android 1R7u1的Nsight部分用于在设备上调试Android游戏。 不需要对C++代码进行编译。

CodeWorks for Android 1R7u1(来自NVIDIA)是Android开发的一站式服务。将其安装后即可满足Android开发的所有要求。
CodeWorks for Android 1R7u1的安装程序包含在Mac版虚幻引擎4中。其路径如下:
[引擎安装路径]/Engine/Extras/Android/AndroidWorks-1R7u1-osx.dmg
重要组件如下:
- Android SDK(基础、平台工具、编译工具)
- Android 4.4.2 (API 19) - SDK平台
- Android 5.0.1 (API 21) - SDK平台
- Android 6.0.0 (API 23) - SDK平台
- Android N (API 24) - SDK平台
- Android SDK支持库
- Android工具链
- Android NDK 12b
- Java SDK
- Apache Ant
- USB驱动
- 可选安装
- Gradle
- 开发者工具
- Visual Studio版Nsight Tegra(可选安装)
- USB驱动
如使用默认安装套件,将安装一套较少的组件。 自定义安装便可添加更多项目(如分析工具等)。注意:在安装过程中,一两个子安装程序可能会失去响应,但其最终会完成进程。部分电脑的安装时长可达30到45分钟。 如果未计划编写代码,则可以选择 自定义,只安装SDK、Ant和Java(跳过NDK和Nsight调试器的安装),这是完成安装的最快方法。CodeWorks for Android 1R7u1的Nsight部分用于在设备上调试Android游戏。因此不需要编译C++代码。

环境变量
如果未用UE4安装程序来安装CodeWorks for Android 1R7u1,则需要验证部分环境变量是否已正确设置。
完成安装后(在“系统控制”面板中设置环境变量、或安装CodeWorks for Android 1R7u1), 需要重新启动编辑器和Launcher应用程序。进行此操作的原因是Windows应用程序将保存环境变量,并在启动时将旧版本传至应用程序。
如果仍然出现Android SDK未正确安装的消息,建议重新启动电脑。
设置环境变量的方法:
- 右键点击 计算机 图标或按下键盘上的 Windows-Break 组合键。
- 选中左边的 高级系统设置。
- 点击 环境变量...
- 针对每个变量(如下):
- 在至少一个列表中(系统或用户)查找能进行设置的环境变量(从下方进行选择)。
- 如未找到,则点击“系统”旁边的 新建...。
- 输入命名和值。
- 点击 确定。
- 点击 确定 关闭 环境变量 窗口。
下面是所需的变量,以及其应指向的位置:
ANDROID_HOME
- 将其设为安装Android SDK的目录;如果安装的是ADT,则为
sdk
目录。 - 其必须包含一个名为
platform-tools
的目录。
JAVA_HOME
- 将此设为JDK的安装路径。其名称应类似于
jdk1.8.0_121
。 - 其必须为一个称为
bin
,且其中包含javac.exe
的目录。
ANT_HOME
- 将此设为解压Ant的路径。
- 其必须为一个称为
bin
,且其中包含ant.bat
的目录。
NDKROOT
- 将此设为解压NDK的路径。其名称应类似于
android-ndk-r11c
。 - 其必须包含一个名为
ndk-build.cmd
的文件
如果未安装CodeWorks for Android 1R7u1,则需要验证部分环境变量是否已正确设置。
完成安装后(编辑.bash_profile文件、或安装CodeWorks for Android 1R7u1),需要重新启动编辑器和Launcher应用程序。
要设置环境变量,需要在主目录中编辑 .bash_profile 文件。 文件在查找器中处于隐藏状态,因此需要使用Terminal将其打开进行编辑。 如不熟悉Unix终端命令,请执行以下操作。
- 在/Applications/Utilities中打开 Terminal应用程序。
- 输入 touch .bash_profile 创建文件(如尚无文件存在)。
- 输入 open .bash_profile 将文件在文本编辑器中打开。
-
将以下行复制到文件(替换SDK和工具的安装路径)并保存:
- export ANDROID_HOME="/Users/epicgames/Devel/NVPACK/android-sdk-macosx"
- export NDKROOT="/Users/epicgames/Devel/NVPACK/android-ndk-r12b"
- export ANT_HOME="/Users/epicgames/Devel/NVPACK/apache-ant-1.8.2"
下面是所需变量的命名,以及其应指向的位置:
- ANDROID_HOME
- 将其设为安装Android SDK的目录;如果安装的是ADT,则为SDK目录。
- 其必须包含一个名为platform-tools的目录。
- ANT_HOME
- 将此设为解压Ant的路径。
- 其必须为一个称为bin的目录,内有一个名为ANT的文件。
- NDKROOT
- 将此设为解压NDK的路径,然后查找类似于 android-ndk-r12b 的内容。
- 其必须包含一个名为 ndk-build 的文件。
Android提示和技巧
如果没有在 启动 菜单中看到设备,可进行以下尝试:
- 等候数秒再次查看,因为连接设备的背景扫描可能会花费一点时间。
- 确认USB调试连接正常工作。
- 打开命令窗口(按下 Windows+R 组合键并运行
cmd.exe
)- 输入以下命令:
adb devices
- 如未看到设备列出,则说明USB驱动未正确安装。驱动的安装方法取决于Android设备的模型。可上网搜索设备模型和USB驱动, 然后进行安装。
- 此外需要启用设备的开发者模式,并启用USB调试。请参见Android开发者硬件设备使用指南中的详细内容(尤其注意第2点和第3点)。
- 之后须确保
adb devices
命令能正常使用;缺少此命令引擎将无法对Android设备进行任何操作。
- 输入以下命令:
如果设备已在“启动”菜单中,但部署到设备时受阻,原因很可能是设备未获得与电脑进行对话的权限。点击进度条中的 显示日志(Show Log) 行
即可看到正在调用 adb uninstall
的上一行。
- 如上所述,使用
cmd.exe
运行adb devices
命令。 - 如设备已在列表中但显示为未授权,则说明需要让设备询问是否对PC进行授权。
- 显示询问可能需要拔插设备连接线。
- 建议勾选 固定允许(Always allow) 勾选框。
如果没有在“启动”菜单中看到设备,则可进行以下尝试:
- 等候数秒再次查看,因为连接设备的背景扫描可能会花费一点时间来对设备进行注册。
- 确认USB调试连接正常工作。
- 打开Terminal应用程序并尝试以下操作。
- 在终端中输入以下命令:
adb devices
。 - 如未看到设备列出,则说明USB驱动未正确安装。驱动的安装方法取决于Android设备的模型。可上网搜索设备模型和 USB驱动,然后进行安装。
- 此外需要启用设备的开发者模式,并启用USB调试。请参见Android开发者硬件设备使用指南中的详细内容(尤其注意第2点和第3点)。
- 之后须确保
adb devices
命令能正常使用;缺少此命令引擎将无法对Android设备进行任何操作。
- 在终端中输入以下命令:
如果设备已在 启动菜单 中,但部署到设备时受阻,原因很可能是设备未获得与Mac进行交互的权限。
点击进度条中的 显示日志(Show Log) 行,即可看到上一行正在调用 adb uninstall
,然后执行以下操作。
- 打开Terminal应用程序并运行
adb devices
命令。 - 如设备已在列表中但显示为未授权,则说明需要让设备询问是否对Mac进行授权。
- 建议勾选 固定允许(Always allow),使Mac一直能与此设备进行对话。
Android纹理格式
Android设备的规格并非完全相同。具体而言,共有4种不同类型的渲染硬件。它们分别支持不同的压缩纹理格式。
格式 | 描述 |
---|---|
ETC1 | 所有Android设备均支持,但无法压缩透明纹理(其保存为未压缩)。如果需要透明度来获得更好的压缩,建议使用RGB和单独的透明纹理。 |
ETC2 | 所有OpenGL 3.x类设备均支持,并支持透明度压缩。 |
ATC | Qualcomm Adreno GPUs支持,并支持透明度压缩。 |
DXT | Nvidia Tegra GPUs支持,并支持透明度压缩。 |
PVRTC | PowerVR GPUs支持,并支持透明度压缩。 |
ASTC | 最新的纹理压缩格式,可指定块大小来进行质量控制,支持透明度压缩。可在部分设备上使用,为Vulkan Level 1所必需。 |
部署或打包Android游戏时,数据将被转换为Android设备可使用的格式(此过程称之为“烘焙”)。 由于不同设备支持不同的压缩格式,因此要选择进行烘焙的格式。在 启动(Launch) 或 打包(Package) 子菜单中可以看到,可用格式后带有 Android 字样。
首个(Android)实际上将接受所有格式,并将其装入烘焙后的文件包。此操作耗时较长,生成的文件包较大,但能选择运行时的最佳格式,将内存占用率降至最低。 它可用于任意设备(在 Android (ETC1) 上也同样如此)。
在虚幻引擎4.8及更新版本中,使用者可在Tegra K1设备上使用 ES31 和 AEP 渲染。 请注意:当前支持ES31和AEP渲染的设备数量有限,因此我们现在只完成了极少量的性能和兼容性测试。 针对上述设备开发项目时,强烈建议进行广泛的性能和兼容性测试,确保项目能在设备上正常运行。
选择格式
使用者通常需要为设备选择最佳格式。如果了解设备中的GPU类型,即可在上表中选择一个格式。如果不了解具体类型,则可以选择 Android 或 Android (ETC1)。运行游戏时,以4根手指同时点按屏幕将弹出一个对话框。此对话框通常用于输入控制台命令(如 stat fps
),其也会显示设备支持的格式。获得此列表后,即可在部署/打包时用其选择理想的类型。选择设备不支持的格式时其将无法加载。