背景
在Unity4.6.1p5以后版本中,在PlayerSettings—>Other Settings—>Scripting Backend有mono和il2cpp两个选项,它们是Unity脚本后处理(Scripting Backend)的两种方式。
概念
IL2CPP 是 Unity一种新的脚本后处理(Scripting Backend)方式,针对.Net平台编译输出的IL(中间语言)进行处理。
IL2CPP主要由两部分组成:
- AOT静态编译编译器(il2cpp.exe)
- 运行时库(libil2cpp)
其中AOT将 IL转换为C++源码,再交给各平台的C++编译器进行编译,达到平台兼容的目的;运行时库则会提供诸如 垃圾回收、线程/文件获取、内部调用直接修改托管数据结构的原生代码 的服务与抽象。
IL2CPP脚本后处理技术示例图:

对比
Mono
- 构建应用非常快
- 由于Mono的JIT(Just In Time compilation ) 机制, 所以支持更多托管类库
- 支持运行时代码执行
- 必须将代码发布成托管程序集(.dll 文件 , 由mono或者.net 生成 )
- Mono VM在各个平台移植异常麻烦,有几个平台就得移植几个VM(WebGL和UWP这两个平台只支持 IL2CPP)
- Mono版本授权受限,C#很多新特性无法使用
- iOS仍然支持Mono , 但是不再允许Mono(32位)应用提交到Apple Store

最低0.47元/天 解锁文章
697

被折叠的 条评论
为什么被折叠?



