版本:Unity 6 (6000.0)
语言:English
Unity Remote
Android 优化

应用补丁

构建 Android 应用可能需要大量时间。为了在开发过程中加快迭代速度,您可以对应用包进行补丁,而不是重新构建它。当您对应用包进行补丁时,Unity 仅处理自上次补丁以来您所做的更改的文件,并将它们发送到连接的 Android 设备。

应用补丁

要应用补丁,您可以使用 Unity 编辑器,或者如果您实现了您自己的构建管道,则可以使用脚本 API。

第一次应用补丁时,Unity 会在设备上设置补丁应用环境。这意味着第一次补丁比以后的补丁花费的时间更长。

从编辑器

要从 Unity 编辑器应用补丁

  1. 打开构建设置窗口(菜单:文件 > 构建设置)。
  2. 平台列表中选择Android平台。
  3. 启用开发构建开发构建包含调试符号并启用 Profiler。 更多信息
    请参阅 术语表
  4. 选择补丁,或者如果您希望在 Unity 完成构建后运行补丁,请选择补丁并运行
The Android Build Settings window.
Android 构建设置窗口。

使用脚本 API

如果您实现了您自己的构建管道,则可以使用脚本 API 来应用补丁。为此,请将BuildOptions.BuildScriptsOnlyBuildOptions.PatchPackage 选项传递给 BuildPipeline.BuildPlayer 方法。

例如

BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new[] { "Assets/Scene1.unity"};
buildPlayerOptions.target = BuildTarget.Android;
// Use Patch & Run for all builds for optimal turn-around times.
// (In prior versions, an initial regular Build & Run was necessary.)
buildPlayerOptions.options = BuildOptions.PatchPackage | BuildOptions.AutoRunPlayer | BuildOptions.Development;
BuildPipeline.BuildPlayer(buildPlayerOptions);

应用补丁的工作原理

当您应用补丁时,Unity 会

  • 创建一个包含所有已编译 Java 源代码的最小APKUnity 输出的 Android 包格式。当您选择文件 > 构建并运行时,APK 会自动部署到您的设备。 更多信息
    请参阅 术语表
  • 获取自上次补丁以来已更改的文件,并将它们存储在应用缓存文件夹内的目录中:/storage/emulated/0/Android/data/<PackageName>/pram-shadow-files/
  • 将原生库文件(包括使用Il2cppUnity 开发的脚本后端,您可以在为某些平台构建项目时将其用作 Mono 的替代方案。 更多信息
    请参阅 术语表
    编译的脚本)存储在应用的数据目录中:/data/data/<PackageName>/pram-shadow-files/lib/

应用启动时,它会检查 APK 内部的标记文件。如果存在标记,则应用会将其文件读取重定向到pram-shadow-files目录。

构建并运行不会清除任何补丁文件。相反,它会替换 APK 安装。这会禁用到pram-shadow-files目录的重定向。这意味着后续的补丁构建可以重复使用未更改的文件。

清除补丁文件

您可以使用 Android 存储设置清除应用的缓存。清除缓存会删除应用补丁构建过程安装的补丁文件。

清除应用缓存的步骤因 Android 设备而异。要查找您设备的步骤

  1. 请访问 获取设备制造商的帮助
  2. 找到您的设备制造商,然后点击链接到其支持网站。
  3. 在支持网站上搜索有关清除应用缓存的步骤。
Unity Remote
Android 优化