Choose your operating system:
总览
Android开发参考页面中包含高阶指导,讲解需要在UE4 Android项目开发电脑上安装的诸多软件组件和进行的各种系统设置。
Android SDK要求
以下是在UE4中进行Android游戏开发的最新需求:
|
组件
|
环境变量
|
|
Android SDK
Java开发套件
Ant脚本编写工具
|
ANDROID_HOME
JAVA_HOME
ANT_HOME
|
安装组件
获取组件的方法有几种。如果已安装其中一个组件,请查阅对应部分了解额外要求:
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驱动
可选安装
开发者工具(可选安装)
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驱动
可选安装
开发者工具
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未正确安装的消息,建议重新启动电脑。
设置环境变量的方法:
下面是所需的变量,以及其应指向的位置:
ANDROID_HOME
JAVA_HOME
ANT_HOME
NDKROOT
如果未安装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
ANT_HOME
NDKROOT
Android提示和技巧
如果没有在 启动 菜单中看到设备,可进行以下尝试:
如果设备已在"启动"菜单中,但部署到设备时受阻,原因很可能是设备未获得与电脑进行对话的权限。点击进度条中的 显示日志(Show Log) 行
即可看到正在调用 adb uninstall
的上一行。
如上所述,使用 cmd.exe
运行 adb devices
命令。
如设备已在列表中但显示为未授权,则说明需要让设备询问是否对PC进行授权。
显示询问可能需要拔插设备连接线。
建议勾选 固定允许(Always allow) 勾选框。
如果没有在"启动"菜单中看到设备,则可进行以下尝试:
如果设备已在 启动菜单 中,但部署到设备时受阻,原因很可能是设备未获得与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
),其也会显示设备支持的格式。获得此列表后,即可在部署/打包时用其选择理想的类型。选择设备不支持的格式时其将无法加载。