初识IL2CPP

这篇具有很好参考价值的文章主要介绍了初识IL2CPP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Unity中进行打包时,有两种打包方式选择:MonoIL2CPP

Mono和IL2Cpp是Unity的脚本后处理方式,通过脚本后处理实现Unity的跨平台

1.Mono


(1). Mono组成组件:

C#编辑器,CLI虚拟机,以及核心类别程序库

(2).跨平台过程

Mono通过C#编辑器把脚本打包成中间语言(IL)IL所在的文件就是.dll后缀的文件,
然后和其他dll文件一起在Mono虚拟机(MonoVM)中运行
在不同的平台上MonoVM将IL翻译成不同的平台语言

(3).MonoVM运行IL的3中方式:

1.JIT(just in time): 即时编译

程序运行过程中将ILbyte code(字节码)转译为目标平台的原生码
即生成新的代码又运行新代码,其实就是将对应的机器码映射到内存空间中,此时就需要对内存空间的读写权限

而ios封了内存的可执行权限,所以ios不能使用JIT的方式

2.AOT(Ahead of time):提前编译

程序运行前将.exe/.dll文件中的IL的byte code(字节码)部分转译为目标平台的原生码并且储存起来 程序运行过程中仍有一部分代码通过JIT即时编译

3.Full-AOT(Full ahead of time):完全静态编译

程序运行前,将所有源码编译成目标平台的原生码

其中:android 使用JIT的方式 IOS只支持Full-AOT的方式

图解:il2cpp,Unity,unity,游戏引擎

2.IL2Cpp

(1).IL2Cpp的组成部分:

AOT编译器(il2cpp.exe),运行时库

AOT编译器:把IL转换成CPP文件
运行时库:GC等

(2).跨平台过程:

IL2Cpp通过AOT编辑器,把IL语言转换成c++语言,然后通过运行机器平台的编译器 编译成对应平台能执行的原生汇编代码,再使用IL2Cpp VM 运行

图解:

il2cpp,Unity,unity,游戏引擎

 平台支持:Android平台支持Mono和IL2CPP的所有编译方式,而IOS只支持Mono的Full AOT模式和IL2CPP 。文章来源地址https://www.toymoban.com/news/detail-619715.html

如果有不对的地方希望能指出来 感激不尽。
另外,不熟悉的代码一定要写一下加深记忆 只用看的记不了太久。

到了这里,关于初识IL2CPP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 初识IL2CPP

    在Unity中进行打包时,有两种打包方式选择: Mono 和 IL2CPP Mono和IL2Cpp是Unity的脚本后处理方式,通过脚本后处理实现Unity的跨平台 (1). Mono组成组件: C#编辑器,CLI虚拟机,以及核心类别程序库 (2).跨平台过程 Mono通过C#编辑器把脚本打包成中间语言(IL)IL所在的文件就是.dll后缀的

    2024年02月14日
    浏览(36)
  • 一次Unity3D IL2CPP 打包错误

    目录 一、错误描述 二、问题分析 三、解决方法 四、效果验证 五、后记 采用IL2CPP生成的时候,出现了4个错误: (1)Building LibraryBeeartifactsWinPlayerBuildProgramei6vjku08_i_vm6.lump.obj failed with output: (2)BuildFailedException: Incremental Player build failed! (3)Build completed with a result of ‘

    2024年02月03日
    浏览(35)
  • Unity 安卓构建错误:IL2cpp 需要提取的资源提取失败

    Unity 安卓构建错误:IL2cpp 需要提取的资源提取失败 问题描述: 在 Unity 中进行安卓构建时,可能会遇到一个报错信息:“failed to extract resources needed by IL2cpp”。这个错误通常发生在将 Unity 项目构建为安卓应用程序时,而 IL2cpp 则是 Unity 用于将 C# 代码编译为本地代码的工具。

    2024年02月04日
    浏览(30)
  • 2023年Unity Il2CPP/MONO FPS逆向工程

    实战引擎 : Unity Il2CPP/Mono 学完可做 : 森林之子,后室,逃离塔科夫,BattleBit,Rust等 几乎通杀全部Unity引擎游戏 简介: 实战编程代码:C/C++ B站空间:https://space.bilibili.com/2134677790 课程详细目录 :2023年Unity Il2CPP/MONO FPS逆向工程 · 语雀 联系方式 :点击课程详细目录查看 效果图

    2024年02月13日
    浏览(32)
  • 解决Unity安卓编译错误: IL2CPP需要的资源提取失败

    解决Unity安卓编译错误: IL2CPP需要的资源提取失败 在开发Unity游戏时,我们经常会遇到各种各样的问题。其中一个常见的问题是,当我们尝试将游戏导出为Android应用程序时,可能会遇到一个名为\\\"Failed to extract resources needed by IL2CPP\\\"的错误。本文将介绍如何解决这个问题,并提供

    2024年02月03日
    浏览(28)
  • 反编译Unity IL2CPP APK:深入探索逆向工程技术

    反编译Unity IL2CPP APK:深入探索逆向工程技术 在移动应用开发领域中,Unity引擎被广泛使用以创建令人惊叹的游戏和应用程序。然而,有时候我们可能需要研究某些应用程序的内部机制或者了解其实现细节。本文将介绍如何反编译基于Unity引擎的IL2CPP APK,并提供相应的源代码和

    2024年02月06日
    浏览(34)
  • Unity2020 打包报错:windowUnity.IL2CPP.Building.BuilderFailedException

    在打包的时候报错:windowUnity.IL2CPP.Building.BuilderFailedException 解决方法:把IL2CPP换成mono,重新打包即可 依次点击:Edit-Player-Configuration-Mono 再次重新打包即可

    2024年02月16日
    浏览(32)
  • Unity WebGL 打包il2cpp.exe did not run properly!

    是中文问题,WebGL的illcpp对执行过程中一点点的中文都不允许存在。包括 硬盘的中文名称 参考 如何更改磁盘盘符的名字 我的文档中的用户名有中文 系统用户名有中文 win+L封锁之后解锁会出现当前系统用户是否有中文 打包路径中有中文 这个很好解决 环境变量中有中文 由于

    2024年02月16日
    浏览(37)
  • Unity IL2CPP包Crash闪退提示 Cause: null pointer dereference 解决办法

    最近打包到安卓测试时进logo后一直闪退,打开Android Logcat后发现抛出crash 看样子是空引用崩溃的 在网上找了几个方法来试试,到最后才发现是场景里有Missing物体 方法1.关闭StripEngineCode 在Project Settings选择Player页,在里面的Other Settings取消勾选Strip Engine Code 我试了这个对我没用

    2024年03月17日
    浏览(42)
  • 【软件逆向】如何逆向Unity3D+il2cpp开发的安卓app【IDA Pro+il2CppDumper+DnSpy+AndroidKiller】

    课程作业要求使用反编译技术,在游戏中实现无碰撞。正常情况下碰撞后角色死亡,修改为直接穿过物体不死亡。 il2CppDumper。 DnSpy。 IDA Pro。 AndroidKiller。 一、使用il2CppDumper导出程序集 将{my_game}.apk后缀修改为{my_game}.zip,使用解压工具解压至文件夹{my_game}。(my_game为apk的文件

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包