Version: 6000.3
语言: 中文
在 Android 设备上收集性能数据
针对 Android 的优化

应用程序修补

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

修补应用程序

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

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

来自编辑器

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

  1. 打开“构建配置文件”窗口(菜单:“文件”>“构建配置文件”)。
  2. 平台(Platforms) 面板的平台列表中,选择 Android 或为 Android 平台创建构建配置文件
  3. 平台设置(Platform Settings) 部分中,启用开发版本开发版本包括调试符号并启用性能分析器。更多信息
    请参阅术语表
    .
  4. “构建到设备”设置中,选择“修补程序”,或者,如果要在 Unity 完成生成后运行修补程序,请选择“修补程序并运行”。

使用脚本 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 会:

  • 创建最小的APKUnity 输出的 Android 包格式。选择“文件”>“生成并运行”时,APK 会自动部署到你的设备。更多信息
    请参阅术语表
    包含所有已编译的 Java 源代码。
  • 获取自上次补丁以来已更改的文件,并将它们存储在应用程序缓存文件夹内的目录中,地址为:/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. 搜索支持网站,了解有关清除应用程序缓存的步骤。
在 Android 设备上收集性能数据
针对 Android 的优化