术语扫盲

jar包:JAR 文件格式以流行的 ZIP 文件格式为基础,用于将许多个文件聚集为一个文件。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。
obb:(Opaque Binary Blob)文件格式,是安卓游戏通用数据包。
在一些大型游戏上较为常见,同时还附以Data文件,亦或是md5.dat文件。
出现产生原因:由于某些平台对于apk上传的大小有限制,例如google play上对apk的大小貌似限制为50M,还有一个原因就是某些平台会根据apk的大小收费,超过限定值大小开始根据超出的部分收费,为了避免这种情况,也就诞生了安卓的数据包。
所以最好是把一个很大的apk进行分包,unity的分包只要勾选如图的split application binary就可以进行分包了,产生出apk和对应的obb数据包文件。
apk:APK(全称:Android application package,Android应用程序包)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。 一个APK文件内包含被编译的代码文件(.dex 文件),文件资源(resources), 原生资源文件(assets),证书(certificates),和清单文件(manifest file)。
jvm:

  1. java文件经过编译后变成 .class 字节码文件
  2. 字节码文件通过类加载器被搬运到 JVM 虚拟机中
  3. 虚拟机主要的5大块:方法区,堆都为线程共享区域,有线程安全问题,栈和本地方法栈和计数器都是独享区域,不存在线程安全问题,而 JVM 的调优主要就是围绕堆,栈两大块进行

    概述

    构建的内容分为2个部分:
  • 代码
  • 资源

游戏资源的全流程包括:导入、创建、构建、分发、加载
Unity构建 - 图1

手动方式构建

在 Build Settings 窗口中可以选择目标平台,调整构建设置,以及启动构建过程。要访问 Build Settings 窗口,请选择 File > Build Settings…。指定构建设置后,可单击 Build 创建构建版本,或单击 Build And Run 在指定的平台上创建并运行构建版本。
Unity构建 - 图2

必要配置项

  1. Scenes in Build

勾选并添加到 Scenes in Build 列表中的场景将包含在构建中。
场景列表将用于控制场景的加载顺序。可以通过向上或向下拖动来调整场景的顺序。

  1. 平台列表

Platform 区域列出了您的 Unity 版本可用的所有平台。某些平台可能会显示为灰色,表示它们不属于您的版本,或者用于邀请您下载平台特定的构建选项。选择其中一个平台将控制将构建哪个平台。如果更改目标平台,则需要按“Switch Platform”按钮应用更改。此过程可能需要一些时间进行切换,因为可能需要使用与目标平台匹配的格式重新导入资源。当前选定的平台会在平台名称右侧显示 Unity 图标。
所选平台将显示可针对该构建进行调整的选项列表。

平台通用选项

Scripting Backend选择

Mono:
IL2CPP:使用 IL2CPP 脚本后端时,可以控制 il2cpp.exe 如何生成 C++ 代码。

安卓平台

构建系统

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

  1. 准备和构建 Unity 资源。
  2. 编译脚本。
  3. 处理插件。
  4. 将资源拆分为放入 APK 和 OBB 的各个部分(如果已选择 Split Application Binary)。
  5. 使用 AAPT 实用程序构建 Android 资源(仅限内部构建)。
  6. 生成 Android 清单。
  7. 将库清单合并到 Android 清单中(仅限内部构建)。
  8. 将 Java 代码编译为 Dalvik 可执行文件格式 (DEX)(仅限内部构建)。
  9. 构建 IL2CPP 库(如果已选择 IL2CPP Scripting Backend)。
  10. 构建并优化 APK 和 OBB 包。

Unity 支持两个 Android 构建系统:GradleInternal
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 支持

代码方式构建

流水线方式构建