热更新技术与移动应用开发模式选择的探讨


浏览:1069 次

为了照顾萌新童鞋,一开始就轻松引入了热更新的概念。

一般来说,热更新是指软件没有通过应用商店的软件版本更新审核,而是直接更新应用本身下载的软件数据的行为。用户下载并安装app后,打开app时遇到的即时更新是许多app(如移动游戏)的常见更新方法。

众所周知,王者荣耀经常使用热更新的方式,让用户直接在app中下载数据包来获取更新,这样就避免了用户下载app的时间和流量。

热更新的技术价值

从app开发者的角度来看,“热”意味着在不发布版本的情况下更新、修复bug和发布功能,这样开发者就可以绕过app商店的审核机制,避免长时间等待审核和重复拒绝带来的成本。

在热更新出现之前,类的动态加载可以通过反射注释、反射调用和反射注入来实现。热更新的本质是替换。如果需要在运行时替换新类和资源文件的加载,则可以将其视为热操作。

热更新技术选择

事实上,每个互联网巨头都有自己的热更新技术。目前,有代表性的技术可以分为两类:类加载和低级替换。

1.类加载

只需将bug修复中涉及的类文件插入到阵列的前面,即可达到热修复的效果。

类加载方案的及时性很差,需要再次冷启动才能有效,但修复模型很广泛,限制很少。由Qzone超级补丁和微信修补程序代表

2.基础置换

基础替换是一个本地方案。它的操作是以本机方式修改Filed指针,以实现方法的替换,这样它就可以在不重新启动的情况下立即生效,并且不会消耗app的性能。

基础替换方案有许多限制。它可以在不重新启动的情况下生效。它可以快速、立即加载。由阿里系统的AndFix和Sophix代表

如果对每个热更新方案进行进一步比较,可以使用此图进行总结:

热更新是一种热操作。这是一种改变app运行行为的技术。它的本质是用钩子操作代替,钩子操作在代码中是一种侵入性操作。出于安全考虑,谷歌和苹果不支持热更新,这种黑科技出现在中国的特殊国情中。

是否有更简洁可靠的热更新机制?

答案是肯定的。

轻量级热更新机制

也正是因为国内互联网企业和开发者的持续内卷,以及商业载体小程序形式的兴起。自2017年微信上线并开通小程序以来,支付宝、百度、字节等头部厂商均投入了小程序的研发体系。目前,小程序已经得到了市场的广泛认可,高质量的操作体验也改变了用户最初第一时间下载app使用商业服务的习惯。

但你想过吗?小程序也是一种热更新机制。对于微信、支付宝等平台,可以通过后台上下架的方式管理小程序承载的业务,而且这种方式完全没有代码入侵。与上述集中式热更新模式相比,它有明显的优势,但也有门槛。

并非每家公司都拥有微信和支付宝等大型制造商的研发技术和成本,使其app能够运行小程序。他们需要掌握复杂的编译和渲染技术。

目前,市场上有一些成熟的小程序容器技术可以帮助任何app实现这一功能。例如,FinClip使其自己的app能够通过SDK集成来运行小程序。更简单地说,这是一种“原生+小程序”混合开发模式。通过这种开发模式,小程序可以在自己的app中运行,臃肿的app功能可以被分解。功能模块可以解耦以实现模块化开发。每个业务模块互不影响。可以通过管理后台实现实时动态更新和发布。

据推测,H5也可以实现。为什么要使用applet容器。

很简单,H5白屏口吃等问题的频繁出现对用户体验有很大影响,这对于追求用户体验的app来说是非常独特的

相关资讯:
APP项目开发流程

APP项目开发流程

查看
软件外包开发过程

软件外包开发过程

查看
软件外包项目开发过程

软件外包项目开发过程

查看
如何找到一家满意的软件项目外包公司

如何找到一家满意的软件项目外包公司

查看
寻找优质APP外包公司

寻找优质APP外包公司

查看