Version: Unity 6.0 (6000.0)
语言 : 中文
收集 Android 设备上的性能数据
针对 Android 的优化

应用程序补丁

为 Android 构建应用程序可能需要较长时间。为了在开发过程中加快迭代速度,您可以选择为应用程序包打补丁,而不是重新构建整个应用程序。在打补丁时,Unity 仅处理自上次补丁以来修改过的文件,并将它们发送到连接的 Android 设备。

为应用程序打补丁

要为应用程序打补丁,可以使用 Unity 编辑器,或者(如果实现了自己的构建管线)脚本 API。

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

通过编辑器

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

  1. 打开构建设置 (Build Settings) 窗口(菜单:文件 (File) > 构建设置 (Build Settings))。
  2. 平台 (Platform) 列表中选择 Android 平台。
  3. 启用开发构建 (Development Build)
  4. 选择 Patch,或者,如果要在 Unity 构建完成后运行补丁,请选择 Patch And Run
Android构建设置窗口。
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 源的最小__ APK__Unity 输出的 Android 包格式。选择文件 (File) > 构建并运行 (Build & Run) 时,APK 会被自动部署到设备。更多信息
    See in Glossary
  • 获取自上次补丁以来已更改的文件,并将它们存储在应用程序的缓存文件夹中的目录中,位置为:/storage/emulated/0/Android/data/<PackageName>/pram-shadow-files/
  • 将本机库文件(包括使用 Il2cpp 编译的脚本)存储在应用程序的数据目录中,地址为:/data/data/<PackageName>/pram-shadow-files/lib/

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

构建并运行 (Build & Run) 不会清除任何补丁文件。而是替换 APK 安装。这会禁用对 pram-shadow-files 目录的重定向。这意味着后续补丁构建可以重用未更改的文件。

清除补丁文件

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

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

  1. 转到设备制造商的帮助页面
  2. 查找您的设备制造商,并点击其支持网站的链接。
  3. 在支持网站上搜索清除应用程序缓存的步骤。
收集 Android 设备上的性能数据
针对 Android 的优化