gpt4 book ai didi

unity-game-engine - 为什么使用 IL2CPP 后端构建会导致 Unity 中的 apk 大小更大

转载 作者:行者123 更新时间:2023-12-02 22:34:35 25 4
gpt4 key购买 nike

我正在使用 Unity 2018.2.3 和 .Net 4.6 脚本运行时。
我有两个游戏。当我使用 IL2CPP 后端构建时,apk 大小始终大于 Mono 后端。

第一场比赛:
单声道 APK 大小:12.9 MB
IL2CPP 的 APK 大小:13.7 MB

第二场比赛:
单声道 APK 大小:39 MB
IL2CPP 的 APK 大小:45 MB

为什么会发生这种情况?

最佳答案

发生这种情况有几个原因。

首先,使用 Mono 的 Android 构建在 APK 中提供托管程序集。这些程序集会在 Android 设备上即时编译为机器代码。另一方面,IL2CPP 提前将托管程序集编译为机器代码,并将机器代码传送到 APK 中。这些托管程序集中的 IL 字节代码比机器代码更紧凑,原因有两个:

  1. 只有实际执行的托管代码才会被 JIT 转换为机器代码。 IL2CPP 必须将其全部转换。
  2. 泛型都需要提前扩展。 IL2CPP 可以共享一些通用实现,但不是全部(特别是不具有值类型参数的通用实现)。 JIT 仅在使用时生成通用实现。

其次,默认情况下,Unity 会使用 IL2CPP 为 ARMv7 和 x86 架构生成机器代码。由于 IL2CPP 需要提前生成该代码,因此第一点中提到的较大代码的所有问题都会重复。例如,如果您不需要支持 x86,您可以修改播放器设置以避免构建它。

关于unity-game-engine - 为什么使用 IL2CPP 后端构建会导致 Unity 中的 apk 大小更大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52513334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com