首页 > 其他分享 >huatuo热更环境安装与示例项目

huatuo热更环境安装与示例项目

时间:2023-11-01 10:12:16浏览次数:40  
标签:1.2 项目 huatuo 示例 dll 源码 安装

上一节我们分析了huatuo的原理与优势,相信大家迫不及待想体验一下huatuo热更新,本节我们来安装huatuo的开发环境,然后运行示例项目,来体验下huatuo做热更新。

huatuo 热更开发环境的安装

使用huatuo之前,我们先准备好开发环境,Unity版本,官方的huatuo版本采用的是unity 2020.3.33f1的这个版本,建议大家也用这个版本来做。安装好visual studio 2019开发环境,并且安装C/C++的开发工具集合。安装Unity的时候,我们一定要勾选上Windows IL2CPP,方便我们等下在Windows平台上测试。接下来下载huatuo相关代码, huatuo主要是改造了IL2CPP,所以依赖的代码库如下

(1)huatuo核心代码库,负责指令转换,解释执行,源码下载

(2)IL2CPP_huatuo: huatuo针对IL2CPP的修改与改动,源码下载

(3)huatuo-tutorial: huatuo热更新的示例项目,源码下载;

下载完成后,你将获得3个源码包,如图所示1.2-1:

1.png

图1.2-1

解压huatuo项目的源码包,解压il2cpp_huatuo项目源码包。解压后,将huatuo项目子文件夹”huatuo”,复制到il2cpp_huatuo项目的libil2cpp目录下。如图1.2-2所示:

2.png

图1.2-2

准备好libil2cpp的huatuo环境后,我们把这个文件夹”libil2cpp”拷贝到Unity引擎的IL2CPP对应的目录下,拷贝之前,记得先备份原来的。如图1.2-3,Unity编辑器2020.3.33 il2cpp中的libil2cpp。

3.png

图1.2-3

到此huatuo的开发环境就准备好了。

 

运行huatuo热更示例项目

Huatuo开发环境安装好了以后,接下来我们就可以运行实例项目,实例项目很简单,我们解压代码包huatuo_trial, 解压开来后用Unity 2020.3.33打开这个项目,项目的目录结构如图1.2-4:

4.png

图1.2-4

5.png

图1.2-5

进入文件夹”HuatuoData”后,运行init_local_il2cpp_data脚本,这样就生成了Localil2cppData文件夹。

6.png

图1.2-6

接下来我们就用Unity打开huatuo的实例项目,在测试热更新的时候,先配置一下项目的基本的配置(当然示例项目已经配置好了,但是我们自己项目还是要注意)如图1.2-7。

7.png

图1.2-7

由于huatuo是基于IL2CPP 来扩展解释执行IL的.dll。这个时候我们就需要把一些我们可能要热更的部分进行拆分,这里使用unity的ADF机制,每创建一个.asmdef文件,Unity就会为你生成一个新的.net项目工程,这样做的好处就可以分功能来进行代码热更(比如大厅+子游戏,可以把每个子游戏分成对应的.dll),同时分功能来编译,不至于修改功能A的代码要所有的项目都编译,导致后期开发越来越慢。

8.png

图1.2-8

这样我们就已经把项目分按功能划分成了几个工程,然后可以打包出来每个工程的基于IL的.dll库。这样就可以针对要热更的.dll来做加载。

我们正式项目的时候,可以把这些.dll利用AOT一起编译,如果要热更某个库,先判断一下是否服务器上有最新的.dll,如果有就可以在运行的时候加载这个,否者就跑默认的AOT后的代码就可以了(获得更好的AOT级别的性能,毕竟解释执行IL指令,性能也有开销)。

接下来我们来试试热更新, 示例项目扩展了一个菜单,可以打包出所有项目的IL指令代码的.dll, 这个菜单扩展为”Huatuo”---> “CompileDall”, 这样就可以把当前的所有项目的.dll全部打出来,不管你是否热更新。生成了IL的.dll后,我们如果将这些.dll打包成资源包,部署到服务器上,从资源包里加载IL代码到IL2CPP VM就可以实现热更了,所以又有一个菜单”Huatuo”---> “BuildBundles”, 会把这些.dll打出ab包。(这里是示例,不是规定必须要这样做,不同的项目可以更具你自己来定制,后续做框架时我教自己的策略,在这个案例中会把.dll打包到common ab包中,我们来看下common ab包的mainifest。)

9.png

图1.2-9

接下来测试下热更新, 编译完成.dll与打包ab包后,我们发布一个win的版本我们加它1.0,build的出来后,运行下过如下:

10.png

图1.2-10

第一版中打印,有######,接下来我去掉这个######,然后重新编译,打包Hotfix.dll到新common ab包,并直接复制common ab包到打包后的StreammingAssets下,如图:

 

11.png12.png

13.png

14.png

图1.2-10

15.png

今天的分享就到这里了, 关注我们, 接下来还会继续更新huatuo热更的系列教程。

 

下节预告: huatuo 热更示例项目源码分析

标签:1.2,项目,huatuo,示例,dll,源码,安装
From: https://www.cnblogs.com/bycw/p/17802406.html

相关文章

  • 为什么这么NB?huatuo革命Unity热更新
    最近huatuo(华佗)热更新解决方案火爆了unity开发圈,起初我觉得热更新嘛,不就是内置一个脚本解释器+脚本语言开发,如xLua,ILRuntime,puerts。Huatuo又能玩出什么花样,凭什么会这么NB,引起了那么多程序员的关注与称赞呢?带着这些问题我详细的看了huatuo的资料,阅读了示例项目+huatuo源码......
  • Nacos 安装部署
    Nacos-Server服务部署Nacos依赖Java环境来运行。如果是从代码开始构建并运行Nacos,还需要配置Maven环境。我们直接使用发行版,需要保证JDK版本在1.8以上。NacosServer有两种运行模式:standaloneclusterstandalone模式从https://github.com/alibaba/nacos/releases......
  • 如何在linux系统中安装python3.8.1 并卸载 python3.6.2 更新python3引导到3.8.1
    安装python3.8.1步骤1:检查Python版本在终端中输入以下命令来检查当前安装的Python版本:python--version步骤2:安装编译Python所需的依赖项更新系统软件包,并安装构建Python所需的一些工具和库。在终端中运行以下命令:sudoaptupdatesudoapt-getinstall-ybuild-essen......
  • linuxjava安装
    linux安装java1.8一、确认是否安装JDK,通过rpm-qa|grepjava命令查看然后https://www.oracle.com/java/technologies/downloads/#java8下载java二.进入user/local这个目录是管理员安装引用程序的目录三.进行文件上传然后把文件拖进新开的窗口里就ok了三.通过tar-......
  • drf的安装和简单使用
    #安装:pipinstalldjangorestframework==3.10.3#使用 1在setting.py的app中注册INSTALLED_APPS=['rest_framework']2在models.py中写表模型 classBook(models.Model):nid=models.AutoField(primary_key=True)......
  • Docker介绍和安装
    Docker简介为什么Docker会出现?如何确保应用能够在不同环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无须重新编写代码和进行故障修复?答案就是使用容器。Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案——————系统平滑......
  • hugepage 示例代码
    #include<fcntl.h>#include<sys/mman.h>#include<errno.h>#include<stdio.h>#defineMAP_LENGTH(500*1024*1024)//10MBintmain(){intfd;void*addr;//1.创建一个Hugetlb文件系统的文件fd1=open("/dev/hugepag......
  • 确定已安装的PowerShell版本
    内容来自DOChttps://q.houxu6.top/?s=确定已安装的PowerShell版本我如何确定计算机上安装了哪种版本的PowerShell,以及是否确实安装了它?使用$PSVersionTable.PSVersion来确定引擎版本。如果该变量不存在,可以安全地假设引擎版本为1.0。请注意,$Host.Version和(Get-Host).Vers......
  • 深度学习入门--认识深度学习以及安装工具
    感谢李沐老师的教学视频以及《动手学深度学习》,视频总时长47hhttps://zh-v2.d2l.ai/chapter_preface/index.htmlhttps://www.bilibili.com/video/BV1if4y147hS/?spm_id_from=333.999.0.0&vd_source=0cafd28c011c5492e6d7e39f1fd256d9课程介绍目标介绍深度学习经典和最新模......
  • linux 安装 python3.10
    aptupdateaptinstallbuild-essentialzlib1g-devlibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-devlibffi-devlibsqlite3-devwgetcurlllvmlibncurses5-devlibncursesw5-devxz-utilstk-devlibffi-devliblzma-devpython3-opensslgitwget......