随笔分类 - Unity热更方案
摘要:背景 在一个工程中,业务的组成是由各个类文件相互调用所构成的,一旦这个工程进行了打包,所有的调用的关系都已成固定关系在最后的编译文件里面,所以针对当前这个版本的工程包业务功能也就是固定的。如果这个共工程后面要加新的功能,也就要重新添加/调整之前各个类文件的引用/调用关系,然后在进行打包编译,出一个新
阅读全文
摘要:Interpeter(解释器) 通俗的说解释器就是将程序员编写的代码一条条的转译执行,在解释执行代码的同时,也维护了一个栈去存放method的传入参数、局部变量、保存当前线程的context信息。 解释器的优势在于占用内存少(可以理解为解释一条扔一条),劣势就是执行效率低下。 JIT(动态编译器)
阅读全文
摘要:什么是热更 所谓热更就是在不卸载原程序的情况下动态更新 资源热更 在unity中这个就是常说的AB包,现在新出AdreassAB可寻址AB包,是此类问题的解决方案 代码热更 代码的情况就稍显复杂了,还是拿unity来说,打包时将C#编译成IL代码,在程序启动时拿到本机的IL通过VM去解释执行,运行程
阅读全文
摘要:mono mono 是JIT编译的,动态的一边将IL加到内存中,一边去编译解释(通过反射获取确定要使用类型),所以支持更多托管类库 mono VM受平台限制,有几个发布平台就要有几个对应的mono VM IL2CPP 可以看出这种方式通过IL2cpp.exe是直接将IL转译成C++文件(代码剪裁),
阅读全文