Version: 2021.2
Overriding an Android Manifest
Android 开发故障排除

构建 Android 应用程序

可以在两个位置配置影响应用程序构建方式的设置:

  • Player 设置 (Player settings) - 配置应用程序的运行时设置。有关 Player 设置的更多信息,请参阅 Android 平台的 Player 设置
  • 构建设置 (Build settings) - 配置构建系统参数并构建应用程序。

如果在 Player 设置中选择了 Split Application Binary 选项,则输出包中将包含 APK 和 APK 扩展文件 (OBB)。有关 OBB 文件的更多信息,请参阅 OBB 支持

要优化下载和安装大小,请在 Player 设置中启用 Split APKs by target architecture 选项。对于 Player 设置的 Target Architecture 列表中选择的每个设备架构,__Split APKs by target architecture__ 选项为其生成一组 APK 和 OBB。可以将这组 APK(以及可能启用的 OBB)上传到 Google Play 或其他应用商店,而不是上传 FAT APK(这种情况下,所有选定的架构都包含在单个 APK 中)。有关此功能的更多信息,请参阅 Android 开发者网站上的多 APK 支持。

配置构建设置

要配置和构建 Android 应用程序,请访问 Build Settings 窗口 (File > Build Settings)。在 Platform 中,选择 Android

要将 Android 设置为默认构建平台,请单击 Switch Platform 按钮。

指定构建设置后,单击 Build 按钮可创建构建版本。要构建应用程序,请单击 Build And Run 在指定的平台上创建并运行构建版本。

设置 功能
Texture Compression The Unity Android build system supports the following texture compression format options: Use Player Settings, DXT (Tegra), PVRTC (PowerVR), ETC (default), ETC2 (GLES 3.0), and ASTC. This setting can also be changed from a script or using the command-line switch ‘-setDefaultPlatformTextureFormat’. For advice on using these formats, have a look at the texture compression format overview.
ETC2 fallback 32 位、16 位以及 32 位半分辨率。
Build System
Internal(已弃用)- 使用内部 Unity 构建过程基于 Android SDK 实用程序生成输出包 (APK)。选择 Internal 会隐藏 Export Project 复选框。
Gradle - 使用 Gradle 构建系统来生成输出包 (APK)。支持直接 Build and Run 以及将项目导出到目录。这是 Unity 的默认构建系统。
Export Project 将项目导出为可以导入 Android Studio 的 Gradle 项目。
Build AppBundle (Google Play) 构建 Android App Bundle 以便分发到 Google Play。选择此选项还可以配置播放器设置 (Player settings) 中的 Warn about App Bundle Size 选项。
Run Device 一个可以测试构建结果的连接设备的下拉列表。如果是连接新设备或者在列表中未发现连接的设备,请单击 Refresh 按钮以重新加载列表。
Development Build 开发版包含调试符号并启用性能分析器 (Profiler)。选择 Development Build 后可以选择 Autoconnect Profiler、Script Debugging 和 Scripts Only Build 选项。
Autoconnect Profiler 允许性能分析器 (Profiler) 自动连接到构建版本。选择 Development Build 选项时才可选择此项。有关性能分析器的更多信息,请参阅“性能分析器概述”。
Script Debugging 允许脚本调试器远程连接到播放器。选择 Development Build 选项时启用此项。
Scripts Only Build 选中此选项可仅构建当前项目中的脚本。选择 Development Build 选项时启用此项。
Compression Method 在构建时压缩项目中的数据。选择以下方法之一:
Default - 默认压缩方法是 ZIP,此方法提供比 LZ4 和 LZ4HC 稍好的压缩结果,但数据解压缩的速度更慢。
LZ4 - 一种快速压缩格式,对开发构建很有用。使用 LZ4 压缩可以缩短提高 Unity 构建的游戏/应用程序的加载时间。有关更多信息,请参阅 BuildOptions.CompressWithLz4。
LZ4HC - LZ4 的高度压缩变体,构建速度更慢,但对于发行版构建可以产生更好的结果。使用 LZ4HC 压缩可以显著缩短 Unity 构建的游戏/应用程序的加载时间。有关更多信息,请参阅 BuildOptions.CompressWithLz4HC
SDKs for App Stores 选择要集成的第三方应用商店。要包含集成,请单击应用商店名称旁边的 Add。Unity Package Manager 自动下载并包含相关的集成包。

ETC2 回退

对于不支持 ETC2 的 Android 设备(不支持 GL ES3),可以通过选择 32 位、16 位或 32 位半分辨率格式来覆盖默认的 ETC2 纹理压缩。

此选项允许选择未压缩的图像质量和未压缩的纹理占用的内存量。32 位 RGBA 纹理是最高质量的格式,占用的磁盘空间是 16 位格式的两倍,但 16 位纹理可能会丢失一些有价值的颜色信息。32 位半分辨率格式可进一步降低内存需求,但纹理可能会变得模糊。

Minification

You can use ProGuard minification to decrease the size of the application and improve performance. To enable this ProGuard minification:

  1. Open the Player Settings window (menu: Edit > Project Settings > Player), and select Android.
  2. In the Publishing Settings section, under Minify, select ProGuard for either release builds, debug builds, or both.

Note: ProGuard might strip out important code that your app needs, so use these options carefully.

To generate a custom proguard.txt file, enable the User ProGuard File setting in the Publishing Settings section of the Player Settings. This immediately generates the proguard.txt file in your Project’s Assets/Plugins/Android/ folder.

To learn more about ProGuard, see the ProGuard manual.

构建系统

Unity 支持两个 Android 构建系统:__Gradle__ 和 Internal

Android 构建过程所涉及的步骤如下:

  • 准备和构建 Unity 资源。

  • 编译脚本。

  • 处理插件。

  • 将资源拆分为放入 APK 和 OBB 的各个部分(如果已选择 __Split Application Binary__)。

  • 使用 AAPT 实用程序构建 Android 资源(仅限内部构建)。

  • 生成 Android 清单。

  • 将库清单合并到 Android 清单中(仅限内部构建)。

  • 将 Java 代码编译为 Dalvik 可执行文件格式 (DEX)(仅限内部构建)。

  • 构建 IL2CPP 库(如果已选择 __IL2CPP Scripting Backend__)。

  • 构建并优化 APK 和 OBB 包。

Gradle 构建系统

Gradle 构建系统使用 Gradle 来构建 APK 或以 Gradle 格式导出项目,然后可以将其导入 Android Studio。选择此构建系统时,Unity 将执行与 Internal 构建系统相同的步骤,但不包括使用 AAPT 进行资源编译、合并清单以及运行 DEX。然后,Unity 生成 build.gradle 文件(以及其他所需的配置文件),并调用 Gradle 可执行文件,在此过程中向其传递任务名称和工作目录。最后,由 Gradle 构建 APK。

有关更多详细信息,请参阅 Gradle for Android

Internal 构建系统

Internal 构建系统使用 Android SDK 实用程序创建 APK,从而构建并优化 APK 和 OBB 包。有关 OBB 文件的更多信息,请参阅 OBB 支持

导出项目

如果需要加强对构建管线的控制,或者要进行 Unity 通常不允许的更改(例如,微调 Unity 自动生成的清单文件),则可以导出项目并将其导入 Android Studio。仅当已选择 Gradle 作为 Build System 时,才能导出项目。

要导出项目,请执行以下操作:

  1. Build System 下拉菜单中,选择 Gradle
  2. 选中 Export Project 复选框。选中 Export Project 时,__Build__ 按钮将重新标记 Export 并会禁用 Build And Run 按钮。
  3. 单击 Export 按钮,然后选择导出项目的目标文件夹。

导出完成后,打开 Android Studio 并导入项目。有关将项目导入 Android Studio 的更多信息,请参阅 Android 开发者文档的迁移到 Android Studio (Migrate to Android Studio) 部分。

Build 或 Build and Run

Build Settings 窗口提供两个选项:__Build__ 和 Build and Run。使用任一选项都会将输出包(APK 以及可能启用的 OBB)保存到所选的路径。可以将这些包发布到 Google Play 应用商店,也可以借助 Android Debug Bridge (ADB) 手动将它们安装到设备上。有关手动安装应用程序的更多信息,请参阅 Android 开发者文档的运行应用程序 (Run your app) 部分。有关 ADB 命令的信息,请参阅 Android 开发者文档的 Android Debug Bridge 部分。

选择 Build and Run 会将输出包保存到指定的文件路径,同时还会在连接到计算机的 Android 设备上安装该应用程序。

如果启用 Split Application Binary 选项,则会将 OBB 文件推送到设备上的正确位置。如果选中 Development Build__,Unity 还会设置性能分析器 (Profiler) 隧道并启用 CheckJNI。此后将启动该应用程序。Split Application Binary__ 设置位于 Player 设置的 Publishing Settings 部分。

提示__:请指定包的输出路径,然后使用 Ctrl+B__ (Windows) 或 Cmd+B (macOS) 键盘快捷键来根据保存的输出路径执行 Build and Run


  • 2018–11–19 页面已修订

  • 5.5 版中的更新功能

  • 更新了 Build Settings 配置选项

  • Updated the Build Settings Texture Compression options

Overriding an Android Manifest
Android 开发故障排除