Unity3d:应用程序修补

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

应用程序修补

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

平台兼容性

平台应用程序修补
人造人受支持
铬操作系统支持

修补应用程序

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

首次修补应用程序时,Unity 会在设备上设置修补应用程序环境。这意味着第一个补丁比将来的补丁需要更长的时间。

来自编辑器

要从 Unity 编辑器修补应用程序,请执行以下操作:

  1. 打开“生成设置”窗口(菜单:文件>“生成设置”)。
  2. “平台”列表中选择 Android 平台。
  3. 启用开发构建
  4. 选择补丁,或者,如果要在 Unity 完成构建后运行补丁,请选择修补并运行
“Android 构建设置”窗口。
“Android 构建设置”窗口。

使用脚本 API

如果实现自己的生成管道,则可以使用脚本 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 会:

  • 创建一个包含所有已编译的 Java 源代码的最小 APK。
  • 获取自上次修补程序以来已更改的文件,并将其存储在应用程序缓存文件夹内的目录中,地址为 :。/storage/emulated/0/Android/data/<PackageName>/pram-shadow-files/
  • 将本机库文件(包括使用 Il2cpp 编译的脚本)存储在应用程序的数据目录中,地址为 :。/data/data/<PackageName>/pram-shadow-files/lib/

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

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

清除补丁文件

您可以使用 Android 存储设置来清除应用程序的缓存。清除缓存会删除应用程序修补生成过程安装的修补程序文件。

清除应用程序缓存的步骤因 Android 设备而异。要查找适用于您设备的步骤,请执行以下操作:

  1. 转到向设备制造商获取帮助。
  2. 查找您的设备制造商,并点击其支持网站的链接。
  3. 在支持站点中搜索有关清除应用程序缓存的步骤。

3D建模学习工作室整理翻译,转载请标明出处!

上一篇:Unity3d:Unity Remote (mvrlink.com)

下一篇:Unity3d:资产服务器(团队许可证) (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号