Choose your operating system:
Windows
macOS
Linux
在接下来的教程中,我们将了解打包 虚幻引擎4(UE4)项目以部署到Android设备上的方法。UE4中的Android打包流程简单易用,同时可输出多个文件,便于在手机上安装和卸载项目用于测试的项目。
基本设置
开始之前,需满足以下要求和项目设置:
需在计算机上设置 Android Studio。参见设置Android SDK和NDK。
Android设备必须已启用 开发模式(Development Mode) 和 USB调试(USB Debugging)。参见设置Android设备进行开发。
需配置Android的 项目设置(Project Settings),并接受Android SDK授权协议。参见Android快速入门指南。
若尚未创建项目,使用 第三人称模板 进行创建,并将 目标硬件(Target Hardware) 设为 移动设备/平板电脑(Mobile/Tablet),同时将质量设为 可缩放3D或2D(Scalable 3D or 2D)。
1.打包项目
在本章中,我们需将项目打包为.APK文件。
由于正在测试该游戏,因此目前在 开发 模式下打包。游戏完成后即可在 打包项目(Package Project) 菜单中选择 版本配置(Build Configurations),在 发布(Shipping) 下进行打包。
在 文件(File) 菜单中,前往 打包项目(Package Project)> Android,并选择要打包的纹理格式。由于所有设备均支持Android ETC1,因此本例中选择此格式。
点击放大图像。
不同设备支持不同纹理格式,具体基于其应用的硬件。欲了解各类格式详情,参见Android开发参考。
格式
描述
ETC2
所有OpenGL 3.x 类型的设备都支持,并且支持alpha压缩。
DXT
受Nvidia Tegra GPU支持。支持alpha压缩。
ASTC
最新的纹理压缩格式,通过指定块大小,允许对质量进行更多控制。支持alpha压缩。目前可在部分设备上使用。
如果你用的是老版本虚幻引擎,你还能访问以下格式。
Format
Description
ETC1
基于Android的所有设备均支持该格式,但其无法压缩透明纹理(未压缩保存)。若需要透明度来获得更好压缩效果,建议使用RGB和单独的透明纹理。
ETC1a
ETC1用于非透明纹理,ETC2用于透明纹理。若设备不支持ETC2,透明纹理将在运行时解压到RGBA中。此格式可在ETC1和ETC2设备上使用,但相较于ETC2,非透明纹理的ETC1质量可能偏低。
ATC
Qualcomm Adreno GPU支持此格式,其支持透明压缩。
PVRTC
PowerVR GPU支持此格式,其支持透明压缩。
将弹出提示,说明打包游戏的保存位置,其应默认为项目文件夹。新建文件夹并命名为 Android_Builds。
点击放大图像。
打包项目时,右下角将出现打包消息,显示打包进度。
打包成功后,编辑器右下角将显示打包成功消息。
导航至步骤2中创建的文件夹。其中有一个新文件夹,将以打包时所选纹理类型命名。在本例中,该文件夹命名为 Android_ETC2。
点击放大图像。
2.将打包项目部署到设备
现在项目已被打包为.APK文件,本章节中将介绍将版本部署到设备的方法。
完成本教程后,项目应显示在Android设备上,如下图所示:
此外,你将拥有打包的.APK文件和随附助手程序,以将其部署到其他设备进行测试。
打包App Bundle
Android App Bundle 是Google提供的一种发布格式,可用作打包.apks的替代方案。你可以创建一个Android App Bundle(.aab),然后将其上传到 Google Play商店,而无需为不同的设备子集创建不同的.apks。然后,商店的动态发布系统使用App Bundle的内容生成.apk,该文件在用户下载应用程序时,针对用户的特定设备进行优化。
除了大幅简化维护Google Play商店中的构建所涉及的工作之外,App Bundle编译可以发布最大150 MB的.apks,而非以前的100 MB。此限制适用于最终.apk,而不是用于生成.apk的App Bundle。
要创建App Bundle构建(build),请打开 项目设置(Project Settings),然后导航至 平台(Platforms) > Android 分段。在 App Bundle 分段中,启用 生成束(AAB)(Generate Bundle (AAB))。
现在,当你打包Android项目时,你将生成.aab文件,上传到Google Play。你还将生成用于测试目的的通用.apk。
因为Google Play商店的限制,Android App Bundle不能用.obb文件发布。
借助可用于配置App Bundle构建的其他设置,你可以微调App Bundle用于生成项目最终.apks时的敏感度。
设置 |
说明 |
---|---|
从Bundle生成通用APK(Generate Universal APK from Bundle) |
启用此设置将允许App Bundle为最终用户生成通用的.apk文件,该文件可以在任何类型的设备上运行。这不会影响为在计算机上进行测试而生成的通用.apk。 |
启用ABI拆分(Enable ABI Split) |
App Bundle将基于用户CPU使用的应用程序二进制接口生成单独的.apks。例如:arm64-v8a、x86、x86_64。 |
启用语言拆分(Enable language split) |
App Bundle将基于用户的语言生成单独的.apks。 将仅下载用户本地化用的字符串。 |
启用密度拆分(Enable density split) |
App Bundle基于图像分辨率和DPI生成单独的.apks。将仅下载与用户设备兼容的图标和启动屏幕。 |
例如,如果你启用ABI拆分但禁用语言拆分,则.aab会根据用户设备的兼容ABI为用户设备量身定制最终APK,但是每个用户都将收到所有语言的资源,无论其设备或语言设置如何。
默认设置下,最终的.apk将拥有最小的尺寸,而禁用这些设置则会产生较大的.apk。
有关如何将.apks或.aabs上传到Google Play商店的信息,请参阅Android发布。