安卓开发参考

选择操作系统

Windows

Mac OS

概述

下面是我们在现阶段进行安卓游戏开发时所需的资源:

项目类型 组件 环境变量
仅使用蓝图的项目
  • Android SDK

  • Java Development Kit

  • Ant Scripting Tool

  • ANDROID_HOME

  • JAVA_HOME

  • ANT_HOME

C++ 项目
  • Android SDK

  • Java Development Kit

  • Ant Scripting Tool

  • Android NDK

  • ANDROID_HOME

  • JAVA_HOME

  • ANT_HOME

  • NDKROOT

安装组件

有几种方法可用来获取这些组件。如果您已经安装了其中某个组件,请查看相应的部分了解更多要求:

TADP (Tegra Android Development Pack)

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++ 代码。

TADPSetup.png

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++ 代码。

TADP_Mac_OS.png

ADT (Android Development Tools)

这是 Google 推荐的开发环境。它包含了 SDK、Ant 和 Eclipse(您可能希望将它用于您自己的工具,但我们不支持 Eclipse 与 Unreal Engine 4 共用)。 我们建议您将所有内容安装到 C:\Android 以简化部署。

另外,您还需要安装 JDK 6 或更高版本。

要实施代码项目,您需要专门安装 NDK:

Android SDK (Software Development Kit)

这是一个更基础的 SDK(不包含 Eclipse 或 Ant)。

另外,您还需要安装 JDK 6 或更高版本。

您需要安装 Ant 工具(1.8 或更高版本)。

要实施代码项目,您需要专门安装 NDK:

环境变量

除非您安装了 TADP,否则就需要确认是否正确设置了某些环境变量。

完成安装后(无论是通过在系统控制面板中设置环境变量还是安装 TADP),您需要重新启动编辑器和启动器应用程序。 这样做是因为 Windows 应用程序采取了特定方式来存储环境变量,并将旧版本传送给由它们启动的应用程序。

如果您仍然看到关于 Android SDK 没有正确安装的消息,建议您重新启动计算机。

要设置环境变量,请执行以下操作:

  • 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 的文件

除非您安装了 TADP,否则就需要确认是否正确设置了某些环境变量。

完成安装后(无论是通过编辑 .bash_profile 文件还是安装 TADP),您需要重新启动编辑器和启动器应用程序。

要设置环境变量,您需要在主目录中编辑 .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 的文件。

安卓技巧与提示

如果您的设备没有列在 Launch 菜单中,您可以尝试这些办法:

  • 等待片刻并再次查看 - 因为对连接设备进行后台扫描时需要花费一点时间。

  • 检查您的 USB 调试连接,确保其正常运行。

  • 打开命令提示符界面(按 Windows+R 并运行 cmd.exe

    • 键入 adb devices 命令

    • 如果未列出任何设备,就说明您的 USB 驱动程序没有正确安装。驱动程序的安装方式取决于您的安卓设备型号。在线搜索您的设备型号并附加 “usb 驱动程序”关键字,然后安装此驱动程序。

    • 另外,您需要确保设备已经启用了开发者模式,同时开启 USB 调试功能。有关详细信息,请参见 Android Developer Using Hardware Devices 指南 (具体参见第 2 和第 3 个术语)。

    • 之后需确保 adb devices 命令可以正常执行;如果不这样做,引擎将无法在安卓设备上完成任何操作。

如果您的设备显示在“启动” (Launch) 菜单中,但却无法顺利部署到设备中,则很可能是由于设备没有获得与 PC 通信的授权。如果单击进度条中的 Show Log 行, 您可以看到最后一行提示其正在调用 adb uninstall

  • 像上面那样,使用 cmd.exe 执行 adb devices 命令。

  • 如果设备已列出,但显示为未经授权,则表明您需要让设备询问您是否要对 PC 授权。

  • 您可能需要断开设备连接后再重新连接,才能显示该设备。

  • 建议选中 Always allow 复选框。

如果您的设备没有列在“启动” (Launch) 菜单中,您可以尝试这些办法:

  • 等待片刻并再次查看 - 因为对连接设备进行后台扫描时,需要花费一点时间来注册设备。

  • 检查您的 USB 调试连接,确保其正常运行。

  • 打开 Terminal 应用程序,然后尝试以下步骤。

    • 将以下命令键入到终端 adb devices

    • 如果未列出任何设备,就说明您的 USB 驱动程序没有正确安装。驱动程序的安装方式取决于您的安卓设备型号。在线搜索您的设备型号并附加 USB driver 关键字,然后安装所需的驱动程序。

    • 另外,您需要确保设备已经启用了开发者模式,同时开启 USB 调试功能。有关详细信息,请参见 Android Developer Using Hardware Devices 指南(具体参见第 2 和第 3 个术语)。

    • 之后需确保 adb devices 命令可以正常执行;如果不这样做,引擎将无法在安卓设备上完成任何操作。

如果您的设备显示在 Launch menu 中,但却无法顺利部署到设备中,则很可能是由于设备没有获得与 Mac 交互的授权。 如果单击进度条中的 Show Log 行,并看到最后一行提示其正在调用 adb uninstall,则尝试以下步骤。

  • 打开 Terminal 应用程序并执行 adb devices 命令。

  • 如果已列出设备,但显示未经授权,则表明您需要让设备询问您是否要对 Mac 授权。

  • 建议选中 Always allow 复选框,以便始终允许您的 Mac 与该设备通信。

安卓贴图格式

安卓设备并非都是一模一样的。具体来讲,一共有 4 种不同的渲染硬件。它们分别支持不同的压缩纹理格式。

格式 说明
DXT 桌面计算机和 Tegra 设备所用的格式。
ATC 用于 Qualcomm Snapdragon 设备。
PVR 用于 ImgTec PowerVR 设备。
ETC1 得到了所有设备的支持,但不支持带有 alpha 通道的纹理,因此这些纹理将不采取压缩,导致游戏下载大量数据并占用更多的运行内存资源。
ETC2 用于 MALI 设备和其他一些设备。

在您部署或打包安卓游戏时,数据将被转换为安卓设备可用的格式(我们将这一过程叫做 “cooking”)。由于不同的设备支持不同的 压缩格式,您需要选择要 cook 的格式。在 LaunchPackage 子菜单中,您会看到 Android 后面附带了可用的格式。

其中第一个(Android)实际上会包含所有格式,并将它们放入经过 cook 的封装包。这将用去更长的时间,并产生更大的封装包,但通过选择运行时的最佳格式,可以保证 最低的内存占用。它可以用在任何设备上(Android (ETC1) 也是如此)。

虚幻引擎 4.8 及更高版本支持在 Tegra K1 设备上使用 ES31AEP 渲染。 需要注意的是,由于目前支持 ES31 和 AEP 渲染的设备数量有限,我们现在只完成了很少量的性能和兼容性测试。 如果您正在开发一个要使用上述某一设备的项目,我们强烈建议您进行广泛的性能和兼容性测试,以保证设备按照您的预期来实现项目。

选择一个格式

您通常会选择适合您设备的最佳格式。如果您知道设备的 GPU 类型,可以查看上面的表格以选择合适的格式。

如果不知道具体类型,您可以选择 AndroidAndroid (ETC1)。在运行游戏时,如果同时用 4 个手指点击屏幕,将会弹出一个对话框。这个对话框通常用于 输入控制台命令(如 stat fps),但其中还会显示您的设备支持的格式。在获得该列表后,您可以在部署/打包时使用该列表选择更理想的类型。

如果您选择了一个不受设备支持的格式,它将无法加载。