构建 Android 应用可能需要大量时间。为了在开发过程中加快迭代速度,您可以对应用包进行补丁,而不是重新构建它。当您对应用包进行补丁时,Unity 仅处理自上次补丁以来您所做的更改的文件,并将它们发送到连接的 Android 设备。
要应用补丁,您可以使用 Unity 编辑器,或者如果您实现了您自己的构建管道,则可以使用脚本 API。
第一次应用补丁时,Unity 会在设备上设置补丁应用环境。这意味着第一次补丁比以后的补丁花费的时间更长。
要从 Unity 编辑器应用补丁
如果您实现了您自己的构建管道,则可以使用脚本 API 来应用补丁。为此,请将BuildOptions.BuildScriptsOnly 和 BuildOptions.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 会
/storage/emulated/0/Android/data/<PackageName>/pram-shadow-files/
。/data/data/<PackageName>/pram-shadow-files/lib/
。应用启动时,它会检查 APK 内部的标记文件。如果存在标记,则应用会将其文件读取重定向到pram-shadow-files
目录。
构建并运行不会清除任何补丁文件。相反,它会替换 APK 安装。这会禁用到pram-shadow-files
目录的重定向。这意味着后续的补丁构建可以重复使用未更改的文件。
您可以使用 Android 存储设置清除应用的缓存。清除缓存会删除应用补丁构建过程安装的补丁文件。
清除应用缓存的步骤因 Android 设备而异。要查找您设备的步骤