Android开发参考

如何安装不同的Android SDK、设置环境变量,以及使用纹理格式。

Windows
MacOS
Linux

总览

Android开发参考页面中包含高阶指导,讲解需要在UE4 Android项目开发电脑上安装的诸多软件组件和进行的各种系统设置。

Android SDK要求

以下是在UE4中进行Android游戏开发的最新需求:

组件

环境变量

  • Android SDK

  • Java开发套件

  • Ant脚本编写工具

  • Android NDK

  • ANDROID_HOME

  • JAVA_HOME

  • ANT_HOME

  • NDKROOT

安装组件

获取组件的方法有几种。如果已安装其中一个组件,请查阅对应部分了解额外要求:

CodeWorks for Android 1R6u1

CodeWorks for Android 1R6u1(来自NVIDIA)是Android开发的一站式服务。将其安装后即可满足Android开发的所有要求。

CodeWorks for Android 1R6u1的安装程序包含在Windows版虚幻引擎4中。其路径如下:

[ENGINE INSTALL LOCATION]\Engine\Extras\Android\CodeWorksforAndroid-1R6u1-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 1R6u1的Nsight部分用于在设备上调试Android游戏。不需要对C++代码进行编译。

TADPSetup.png

CodeWorks for Android 1R6u1(来自NVIDIA)是Android开发的一站式服务。将其安装后即可满足Android开发的所有要求。

CodeWorks for Android 1R6u1的安装程序包含在Mac版虚幻引擎4中。其路径如下:

[引擎安装路径]/Engine/Extras/Android/AndroidWorks-1R6u1-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 1R6u1的Nsight部分用于在设备上调试Android游戏。因此不需要编译C++代码。

TADP_Mac_OS.png

环境变量

如果未用UE4安装程序来安装CodeWorks for Android 1R6u1,则需要验证部分环境变量是否已正确设置。

完成安装后(在“系统控制”面板中设置环境变量、或安装CodeWorks for Android 1R6u1),需要重新启动编辑器和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 1R6u1,则需要验证部分环境变量是否已正确设置。

完成安装后(编辑.bash_profile文件、或安装CodeWorks for Android 1R6u1),需要重新启动编辑器和Launcher应用程序。

要设置环境变量,需要在主目录中编辑 .bash_profile 文件。 文件在查找器中处于隐藏状态,因此需要使用Terminal将其打开进行编辑。 如不熟悉Unix终端命令,请执行以下操作。

  1. 在/Applications/Utilities中打开 Terminal应用程序

  2. 输入 touch .bash_profile 创建文件(如尚无文件存在)。

  3. 输入 open .bash_profile 将文件在文本编辑器中打开。

  4. 将以下行复制到文件(替换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设备上使用 ES31AEP 渲染。 请注意:当前支持ES31和AEP渲染的设备数量有限,因此我们现在只完成了极少量的性能和兼容性测试。 针对上述设备开发项目时,强烈建议进行广泛的性能和兼容性测试,确保项目能在设备上正常运行。

选择格式

使用者通常需要为设备选择最佳格式。如果了解设备中的GPU类型,即可在上表中选择一个格式。如果不了解具体类型,则可以选择 AndroidAndroid (ETC1)。运行游戏时,以4根手指同时点按屏幕将弹出一个对话框。此对话框通常用于输入控制台命令(如 stat fps),其也会显示设备支持的格式。获得此列表后,即可在部署/打包时用其选择理想的类型。选择设备不支持的格式时其将无法加载。

标签

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

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

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

发表反馈意见