• 为什么需要热更新?


    什么是热更

    所谓热更就是在不卸载原程序的情况下动态更新

    资源热更

    在unity中这个就是常说的AB包,现在新出AdreassAB可寻址AB包,是此类问题的解决方案

    代码热更

    代码的情况就稍显复杂了,还是拿unity来说,打包时将C#编译成IL代码,在程序启动时拿到本机的IL通过VM去解释执行,运行程序

    所以代码热更如果还是如资源热更一样加载新的C#文件,显然是不可行的,因为没有能编译C#的运行时环境

    这里说一下Lua,为什么它就能动态编译呢?首先lua是解释型语言,C#是编译型语言,再者lua有他自己的runtime compiler,可以直接解释运行

    而C#是需要先进行编译成中间语言IL而后才可以在VM中解释执行,当然如果C#也有他自己的runtime compiler,同样也可以直接解释运行

    那就是说如果C#也有他自己的runtime compiler,就会热更吗,非也,这就要提起C#的一个很重要的特性-反射,反射是可以获取一个未知的IL文件任何

    程序信息(类型,方法,参数等),所以这也是C#在一些热更方案中可行的基础(ILRuntime),同时也要有平台的支持,C#在安卓上可以实现热更新

    但在苹果上却不能,苹果对反射机制有限制,不能实现这样的热更。

  • 相关阅读:
    WP8.1通过StreamSocket连接C++服务器
    WP10通过StreamSocket连接C++服务器
    二维背包(两个限制条件)
    dp(多重背包)
    dp(完全背包)
    dfs(迷宫)
    bfs迷宫
    蚁人cp数
    二分(老死不相往来)
    前缀和(狼和野牛)
  • 原文地址:https://www.cnblogs.com/Jean90/p/16291646.html
Copyright © 2020-2023  润新知