You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
381 lines
15 KiB
Plaintext
381 lines
15 KiB
Plaintext
INTSourceChangelist:2747968
|
||
Availability:Public
|
||
Title: 安卓开发参考
|
||
Crumbs:%ROOT%, Platforms, Platforms/Android
|
||
Description:How to install different Android SDKs, set environment variables, and work with texture formats.
|
||
Version: 4.9
|
||
SkillLevel: Intermediate
|
||
|
||
[TOC(start:2 end:3)]
|
||
|
||
%Globals:OSSelect%
|
||
|
||
|
||
|
||
## 概述
|
||
|
||
下面是我们在现阶段进行安卓游戏开发时所需的资源:
|
||
|
||
|
||
|项目类型 | 组件 | 环境变量 |
|
||
| ------------- | ---------- | --------------------- |
|
||
| 仅使用蓝图的项目 | [INCLUDE:#bpcomponents] | [INCLUDE:#bpenvvar] |
|
||
| C++ 项目 | [INCLUDE:#codecomponents] | [INCLUDE:#codeenvvar] |
|
||
|
||
<!--
|
||
[EXCERPT:BPComponents]
|
||
* Android SDK
|
||
* Java Development Kit
|
||
* Ant Scripting Tool
|
||
[/EXCERPT:BPComponents]
|
||
|
||
[EXCERPT:CodeComponents]
|
||
[INCLUDE:#bpcomponents]
|
||
* **Android NDK**
|
||
[/EXCERPT:CodeComponents]
|
||
|
||
[EXCERPT:BPEnvVar]
|
||
* ANDROID_HOME
|
||
* JAVA_HOME
|
||
* ANT_HOME
|
||
[/EXCERPT:BPEnvVar]
|
||
|
||
[EXCERPT:CodeEnvVar]
|
||
[INCLUDE:#bpenvvar]
|
||
* **NDKROOT**
|
||
[/EXCERPT:CodeEnvVar]
|
||
-->
|
||
|
||
## 安装组件
|
||
|
||
有几种方法可用来获取这些组件。如果您已经安装了其中某个组件,请查看相应的部分了解更多要求:
|
||
|
||
### TADP (Tegra Android Development Pack)
|
||
[OBJECT:ToggleButtonContent]
|
||
[PARAMLITERAL:category]
|
||
OS
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:id]
|
||
windows
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:active]
|
||
active_button_content
|
||
[/PARAMLITERAL]
|
||
[PARAM:content]
|
||
[INCLUDE:#TADPWindowsSetup]
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
[OBJECT:ToggleButtonContent]
|
||
[PARAMLITERAL:category]
|
||
OS
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:id]
|
||
mac
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:active]
|
||
[/PARAMLITERAL]
|
||
[PARAM:content]
|
||
[INCLUDE:#TADPMacOSSetup]
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
<!--
|
||
[EXCERPT:TADPWindowsSetup]
|
||
|
||
TADP 是 Tegra Android Development Pack 的简称,由 Nvidia 开发。这是一款一站式的安卓开发工具包。只要安装 TADP,就能满足我们的所有要求。
|
||
|
||
TADP 安装程序已包含在 Windows 版虚幻引擎 4 中。它存放在以下位置:
|
||
|
||
[引擎安装位置]\Engine\Extras\Android\tadp-2.0r8-windows.exe
|
||
|
||
其中最重要的包括:
|
||
* SDK
|
||
* NDK
|
||
* JDK
|
||
* Ant
|
||
* Nsight
|
||
|
||
如果使用默认的安装设置,将会安装最少量的组件。如果进行自定义安装,您可以添加更多项目(如探查器等)。
|
||
请注意,在安装过程中,可能会有一两个子安装程序出现挂起状态,但它们将最终完成操作。安装过程可能需要 30 到 45 分钟。
|
||
如果您从未打算编写代码,可以选择 **Customize**,仅安装 SDK、Ant 和 Java(跳过 NDK 和 Nsight 调试程序)以便加快安装速度。
|
||
TADP 中的 Nsight 用于在设备上调试安卓游戏。此时无需编译 C++ 代码。
|
||
|
||

|
||
|
||
[/EXCERPT:TADPWindowsSetup]
|
||
|
||
[EXCERPT:TADPMacOSSetup]
|
||
TADP 是 Tegra Android Development Pack 的简称,由 Nvidia 开发。这是一款一站式的安卓开发工具包。只要安装 TADP,就能满足我们的所有要求。
|
||
|
||
TADP 安装程序已包含在 Mac 版虚幻引擎 4 中。它存放在以下位置:
|
||
|
||
[引擎安装位置]/Engine/Extras/Android/tadp-3.0r4-osx.dmg
|
||
|
||
其中最重要的包括:
|
||
|
||
* SDK
|
||
* NDK
|
||
* Ant
|
||
|
||
如果使用默认的安装设置,将会安装最少量的组件。
|
||
如果进行自定义安装,您可以添加更多项目(如探查器等)。请注意,在安装过程中,可能会有一两个子安装程序看似出现挂起状态,但它们将最终完成操作。
|
||
在某些计算机上,安装过程可能需要 30 到 45 分钟。
|
||
如果您从未打算编写代码,可以选择 **Customize**,仅安装 SDK、Ant 和 Java(跳过 NDK 和 Nsight 调试程序)以便加快安装速度。
|
||
TADP 中的 Nsight 用于在设备上调试安卓游戏,因此无需编译 C++ 代码。
|
||
|
||

|
||
|
||
[/EXCERPT:TADPMacOSSetup]
|
||
|
||
-->
|
||
|
||
### ADT (Android Development Tools)
|
||
|
||
这是 Google 推荐的开发环境。它包含了 SDK、Ant 和 Eclipse(您可能希望将它用于您自己的工具,但我们不支持 Eclipse 与 Unreal Engine 4 共用)。
|
||
我们建议您将所有内容安装到 C:\Android 以简化部署。
|
||
|
||
* [此处下载](http://developer.android.com/sdk/installing/bundle.html).
|
||
|
||
另外,您还需要安装 JDK 6 或更高版本。
|
||
|
||
* [此处下载](http://www.oracle.com/technetwork/java/javase/downloads/index.html).
|
||
|
||
要实施代码项目,您需要专门安装 NDK:
|
||
* [此处下载](http://developer.android.com/tools/sdk/ndk/index.html).
|
||
|
||
### Android SDK (Software Development Kit)
|
||
|
||
这是一个更基础的 SDK(不包含 Eclipse 或 Ant)。
|
||
* [此处下载](http://developer.android.com/sdk/index.html).
|
||
|
||
另外,您还需要安装 JDK 6 或更高版本。
|
||
* [此处下载](http://www.oracle.com/technetwork/java/javase/downloads/index.html).
|
||
|
||
您需要安装 Ant 工具(1.8 或更高版本)。
|
||
* [此处下载](http://ant.apache.org/) 并解压 .zip 文件。
|
||
|
||
要实施代码项目,您需要专门安装 NDK:
|
||
* [此处下载](http://developer.android.com/tools/sdk/ndk/index.html).
|
||
|
||
|
||
## 环境变量
|
||
|
||
[OBJECT:ToggleButtonContent]
|
||
[PARAMLITERAL:category]
|
||
OS
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:id]
|
||
windows
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:active]
|
||
active_button_content
|
||
[/PARAMLITERAL]
|
||
[PARAM:content]
|
||
[INCLUDE:#ENVWindowsSetup]
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
[OBJECT:ToggleButtonContent]
|
||
[PARAMLITERAL:category]
|
||
OS
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:id]
|
||
mac
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:active]
|
||
[/PARAMLITERAL]
|
||
[PARAM:content]
|
||
[INCLUDE:#ENVMacOSSetup]
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
<!--
|
||
[EXCERPT:ENVWindowsSetup]
|
||
|
||
除非您安装了 TADP,否则就需要确认是否正确设置了某些环境变量。
|
||
|
||
[REGION:note]
|
||
完成安装后(无论是通过在系统控制面板中设置环境变量还是安装 TADP),您需要重新启动编辑器和启动器应用程序。
|
||
这样做是因为 Windows 应用程序采取了特定方式来存储环境变量,并将旧版本传送给由它们启动的应用程序。
|
||
|
||
如果您仍然看到关于 Android SDK 没有正确安装的消息,建议您重新启动计算机。
|
||
|
||
[/REGION:note]
|
||
|
||
要设置环境变量,请执行以下操作:
|
||
|
||
* **Right-click** 您的 **Computer** 图标或按键盘上的 **Windows-Break** 键。
|
||
* 选择左侧的 **Advanced system settings**。
|
||
* 单击 **Environment Variables...**
|
||
* 对于每个变量(见下面):
|
||
* (从下面)查找已在至少一个列表(“系统”或“用户”)中设置的环境变量。
|
||
* 如果未找到,就单击“系统”部分中的 **New...**
|
||
* 输入名称和值。
|
||
* 单击 **OK**。
|
||
* 单击 **OK** 关闭 **Environment Variables** 窗口。
|
||
|
||
以下是我们所依赖的变量及其指向位置:
|
||
|
||
**ANDROID_HOME**
|
||
* 将该变量设置为您安装 Android SDK 的目录或 `sdk` 目录(如果安装了 ADT)。
|
||
* 其中必须包含名为 `platform-tools` 的目录。
|
||
|
||
**JAVA_HOME**
|
||
* 将该变量设置为 JDK 的安装位置。它的名称可能类似于 `jdk1.6.0_24`。
|
||
* 其中必须包含一个名为 `bin` 并带有 `javac.exe` 的目录。
|
||
|
||
**ANT_HOME** [如果安装了 ADT,则无需此变量]
|
||
* 将该变量设置为 Ant 的解压位置。
|
||
* 其中必须包含一个名为 `bin` 并带有 `ant.bat` 的目录。
|
||
|
||
**NDKROOT** [如果不编译 C++ 代码,则无需此变量]
|
||
* 将该变量设置为 NDK 的解压位置。它的名称可能类似于 `android-ndk-r9c`。
|
||
* 其中必须包含一个名为 `ndk-build.cmd` 的文件
|
||
|
||
[/EXCERPT:ENVWindowsSetup]
|
||
|
||
[EXCERPT:ENVMacOSSetup]
|
||
除非您安装了 TADP,否则就需要确认是否正确设置了某些环境变量。
|
||
|
||
[region:note]
|
||
完成安装后(无论是通过编辑 .bash_profile 文件还是安装 TADP),您需要重新启动编辑器和启动器应用程序。
|
||
[/region]
|
||
|
||
要设置环境变量,您需要在主目录中编辑 **.bash_profile** 文件。
|
||
该文件隐藏在 Finder 中,您需要使用 Terminal 打开并编辑它。
|
||
如果您不熟悉 Unix 终端命令,请执行以下步骤。
|
||
|
||
1.打开 **Terminal app**(位于 /Applications/Utilities.)
|
||
1.键入 **touch .bash_profile** 以创建文件(如不存在)。
|
||
1.键入 open **.bash_profile** 以通过文本编辑器打开文件。
|
||
1.将以下几行复制到文件(替换这些路径以指向 SDK 和工具的安装位置)并保存:
|
||
|
||
* export ANDROID_HOME="/Users/epicgames/Devel/NVPACK/android-sdk-macosx"
|
||
* export NDKROOT="/Users/epicgames/Devel/NVPACK/android-ndk-r10c"
|
||
* export ANT_HOME="/Users/epicgames/Devel/NVPACK/apache-ant-1.8.2"
|
||
|
||
以下是我们所依赖的变量的名称及其指向位置:
|
||
|
||
* **ANDROID_HOME**
|
||
* 将该变量设置为您安装 Android SDK 的目录或 SDK 目录(如果安装了 ADT)。
|
||
* 其中必须包含名为 platform-tools 的目录。
|
||
* **ANT_HOME** [如果安装了 ADT,则无需此变量]
|
||
* 将该变量设置为 Ant 的解压位置。
|
||
* 其中必须包含一个名为 bin 且带有 ANT 文件的目录。
|
||
* **NDKROOT** [如果不编译 C++ 代码,则无需此变量]
|
||
* 将该变量设置为 NDK 的解压位置并寻找类似于 **android-ndk-r9c** 的部分。
|
||
* 其中必须包含一个名为 **ndk-build** 的文件。
|
||
|
||
[/EXCERPT:ENVMacOSSetup]
|
||
|
||
-->
|
||
|
||
## 安卓技巧与提示
|
||
|
||
[OBJECT:ToggleButtonContent]
|
||
[PARAMLITERAL:category]
|
||
OS
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:id]
|
||
windows
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:active]
|
||
active_button_content
|
||
[/PARAMLITERAL]
|
||
[PARAM:content]
|
||
[INCLUDE:#ATTWindowsSetup]
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
[OBJECT:ToggleButtonContent]
|
||
[PARAMLITERAL:category]
|
||
OS
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:id]
|
||
mac
|
||
[/PARAMLITERAL]
|
||
[PARAMLITERAL:active]
|
||
active_button_content
|
||
[/PARAMLITERAL]
|
||
[PARAM:content]
|
||
[INCLUDE:#ATTMacOSSetup]
|
||
[/PARAM]
|
||
[/OBJECT]
|
||
|
||
<!--
|
||
[EXCERPT:ATTWindowsSetup]
|
||
如果您的设备没有列在 **Launch** 菜单中,您可以尝试这些办法:
|
||
- 等待片刻并再次查看 - 因为对连接设备进行后台扫描时需要花费一点时间。
|
||
- 检查您的 USB 调试连接,确保其正常运行。
|
||
- 打开命令提示符界面(按 **Windows+R** 并运行 `cmd.exe`)
|
||
- 键入 `adb devices` 命令
|
||
- 如果未列出任何设备,就说明您的 USB 驱动程序没有正确安装。驱动程序的安装方式取决于您的安卓设备型号。在线搜索您的设备型号并附加
|
||
“usb 驱动程序”关键字,然后安装此驱动程序。
|
||
- 另外,您需要确保设备已经启用了开发者模式,同时开启 USB 调试功能。有关详细信息,请参见 [Android Developer Using Hardware Devices 指南](http://developer.android.com/tools/device.html)(具体参见第 2 和第 3 个术语)。
|
||
- 之后需确保 `adb devices` 命令可以正常执行;如果不这样做,引擎将无法在安卓设备上完成任何操作。
|
||
|
||
如果您的设备显示在“启动” (Launch) 菜单中,但却无法顺利部署到设备中,则很可能是由于设备没有获得与 PC 通信的授权。如果单击进度条中的 **Show Log** 行,
|
||
您可以看到最后一行提示其正在调用 `adb uninstall`。
|
||
- 像上面那样,使用 `cmd.exe` 执行 `adb devices` 命令。
|
||
- 如果设备已列出,但显示为未经授权,则表明您需要让设备询问您是否要对 PC 授权。
|
||
- 您可能需要断开设备连接后再重新连接,才能显示该设备。
|
||
- 建议选中 **Always allow** 复选框。
|
||
[/EXCERPT:ATTWindowsSetup]
|
||
|
||
[EXCERPT:ATTMacOSSetup]
|
||
如果您的设备没有列在“启动” (Launch) 菜单中,您可以尝试这些办法:
|
||
* 等待片刻并再次查看 - 因为对连接设备进行后台扫描时,需要花费一点时间来注册设备。
|
||
* 检查您的 USB 调试连接,确保其正常运行。
|
||
* 打开 Terminal 应用程序,然后尝试以下步骤。
|
||
* 将以下命令键入到终端 **adb devices**。
|
||
* 如果未列出任何设备,就说明您的 USB 驱动程序没有正确安装。驱动程序的安装方式取决于您的安卓设备型号。在线搜索您的设备型号并附加 **USB driver** 关键字,然后安装所需的驱动程序。
|
||
* 另外,您需要确保设备已经启用了开发者模式,同时开启 USB 调试功能。有关详细信息,请参见 **[Android Developer Using Hardware Devices](http://developer.android.com/tools/device.html)** 指南(具体参见第 2 和第 3 个术语)。
|
||
* 之后需确保 **adb devices** 命令可以正常执行;如果不这样做,引擎将无法在安卓设备上完成任何操作。
|
||
|
||
如果您的设备显示在 **Launch menu** 中,但却无法顺利部署到设备中,则很可能是由于设备没有获得与 Mac 交互的授权。
|
||
如果单击进度条中的 **Show Log** 行,并看到最后一行提示其正在调用 adb uninstall,则尝试以下步骤。
|
||
* 打开 Terminal 应用程序并执行 adb devices 命令。
|
||
- 如果已列出设备,但显示未经授权,则表明您需要让设备询问您是否要对 Mac 授权。
|
||
* 建议选中 **Always allow** 复选框,以便始终允许您的 Mac 与该设备通信。
|
||
|
||
[/EXCERPT:ATTMacOSSetup]
|
||
|
||
-->
|
||
|
||
(#bookmarkandroidtextureformats)
|
||
|
||
## 安卓贴图格式
|
||
安卓设备并非都是一模一样的。具体来讲,一共有 4 种不同的渲染硬件。它们分别支持不同的压缩纹理格式。
|
||
|
||
[EXCERPT:AndroidFormats]
|
||
|格式 | 说明|
|
||
|-------|------------|
|
||
|DXT |桌面计算机和 Tegra 设备所用的格式。|
|
||
|ATC |用于 Qualcomm Snapdragon 设备。|
|
||
|PVR |用于 ImgTec PowerVR 设备。|
|
||
|ETC1 |得到了所有设备的支持,但不支持带有 alpha 通道的纹理,因此这些纹理将不采取压缩,导致游戏下载大量数据并占用更多的运行内存资源。|
|
||
|ETC2 |用于 MALI 设备和其他一些设备。|
|
||
[/EXCERPT:AndroidFormats]
|
||
|
||
在您部署或打包安卓游戏时,数据将被转换为安卓设备可用的格式(我们将这一过程叫做 “cooking”)。由于不同的设备支持不同的
|
||
压缩格式,您需要选择要 cook 的格式。在 **Launch** 或 **Package** 子菜单中,您会看到 **Android** 后面附带了可用的格式。
|
||
|
||
其中第一个(**Android**)实际上会包含所有格式,并将它们放入经过 cook 的封装包。这将用去更长的时间,并产生更大的封装包,但通过选择运行时的最佳格式,可以保证
|
||
最低的内存占用。它可以用在任何设备上(**Android (ETC1)** 也是如此)。
|
||
|
||
[region:note]
|
||
虚幻引擎 4.8 及更高版本支持在 Tegra K1 设备上使用 **ES31** 和 **AEP** 渲染。
|
||
需要注意的是,由于目前支持 ES31 和 AEP 渲染的设备数量有限,我们现在只完成了很少量的性能和兼容性测试。
|
||
如果您正在开发一个要使用上述某一设备的项目,我们强烈建议您进行广泛的性能和兼容性测试,以保证设备按照您的预期来实现项目。
|
||
[/region]
|
||
|
||
### 选择一个格式
|
||
您通常会选择适合您设备的最佳格式。如果您知道设备的 GPU 类型,可以查看上面的表格以选择合适的格式。
|
||
|
||
如果不知道具体类型,您可以选择 **Android** 或 **Android (ETC1)**。在运行游戏时,如果同时用 4 个手指点击屏幕,将会弹出一个对话框。这个对话框通常用于
|
||
输入控制台命令(如 `stat fps`),但其中还会显示您的设备支持的格式。在获得该列表后,您可以在部署/打包时使用该列表选择更理想的类型。
|
||
|
||
如果您选择了一个不受设备支持的格式,它将无法加载。
|
||
|