热更新是指软件不通过运营商店的软件版本更新审核,直接通过应用自行下载的软件数据更新的行为。
简单来说,就是在用户下载安装APP之后,打开App时遇到的即时更新。
热更新是一种各大手游等众多App常用的更新方式。
热更新的工作原理就是动态下发代码,它可以使开发者在不发布新版本的情况下,修复 BUG 和发布功能,让开发者得以绕开苹果的审核机制,避免长时间的审核等待以及多次被拒造成的成本。
热更新的发展历史
2017年3月,苹果就曾警告部分开发者违反了《苹果开发者计划许可协议》的3.3.2章节以及《App Store审查指南》2.5.2章节的规定,要求开发者删除热更新相关代码,并重新提交一个新的App版本以供审核。
2017年6月,AppStore审核团队针对AppStore中“热更新”的App开发者发送邮件,要求移除所有相关的代码、框架或SDK,并重新提交审核,否则就会在AppStore中下架该软件。
由于软件热更新绕过了苹果的审核,黑客开发者有可能会通过提交正常的版本之后,通过热更新的方式修改APP导致安全隐患,这违反了苹果的安全隐私政策。
另外苹果此举既能改善部分使用混编语言的App的流畅性,也能重新掌握一些渠道的App审核权限。
移动互联网背景下,APP这个主流触达用户的工具,变成为了商家流量竞争的主战场。技术作为业务的市场触达及活跃的保障手段,对于业务应用,尤其是高频引流及活跃的应用需要保持快速迭代更新。
基于这个背景,可以说开发者们从未放弃探索及寻找热更新的最优技术解决方案。
App热更新技术方案
为什么做热更新?
改善用户体验(节省流量、时间、操作程度),补丁形式,不用玩家重复下载游戏,就可以对游戏做热修复。
技术特点
在iOS中有两种App更新方式:一种是在AppStore内进行更新,更新时重新下载全部安装包;
另一种就是热更新,用户只有在打开App时才会发现热更新包,更新时只需下载安装更新部分的代码,再次打开时即可。
热更新最大的优点就是快,它可以绕过苹果方面的审核,更新通常只需一个晚上即可上线。
另一大优点就是更新包较小,一般都在1M左右,用户不连接WiFi也可随意下载。
市面上App热更新技术方案可归纳为两大类:纯原生(Native)的,以及Hybird(混合开发)模式下的技术方案。
我们在本文中主要探讨一下混合式App开发模式下的热更新方案。
混合App开发模式之「Native 小程序」
混合app开发正是结合原生和H5开发的技术,取长补短的一种开发模式,原生代码部分利用WebView插件或者其它的框架为H5提供了一个容器,程序主要的业务实现、界面展示是利用H5相关的Web技术进行实现的。
但是另外有技术比较新版本的兼容性比较差,还有即懂原生开发又懂H5开发的团队难找。
混合App开发模式–「Native H5」诞生了。
微信小程序上线已经近四年的时间,这四年小程序的发展非常的快,诞生仅一年的时间便达到10亿用户,日活超过4.5亿。
于是开始有人研究「Native 小程序」的App开发模式。
那么「Native 小程序」的App开发模式优势到底在哪里呢?关键在于小程序相比于H5,有其自身的优势:
1、加载速度更快:小程序是基于App端实现的应用,而且小程序支持Webview,有丰富的组件与支持库而h5没有。。
2、用户体验更佳: 小程序连接线上线下方面具有更多优势。无需下载安装,随时转发分享,可以为用户提供更好的服务体验,往后发展可继续开发自身app。
3、开发成本更低:小程序技术是前端容器技术的一种应用,小程序能够设计的页面比较齐全,其组件及UI都有明确的规范,开发者不用考虑兼容性及类似H5开发时复杂工具及框架的选择。
4、与宿主环境结合更紧密: 如上所述,小程序是基于App端实现的应用,故只能在特定的平台内运行,小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能。
基于上述信息,小程序应用能火起来,或者说各大平台竞相“弃H5从小程序”也不是没有其道理所在。
上述说的只是说了小程序自身比H5具备更优的技术解决方案,那么放到混合App开发模式下比较,「Native 小程序」的App混合开发模式的优势可以总结为:
· 可以避免 DOM 泄露(不使用常用的 window 对象与 document 对象);
· 包尺寸有效减少,节省流量和存储
· 远超过 H5 的体验(支持本地缓存,Webview,有丰富的组件与支持库);
· 能获取更多系统权限,完成更加丰富的产品设计;
「Native 小程序」的App热更新技术方案
「Native 小程序」的App,其热更新方案好在哪里呢?
首先,说说业务层面
小程序容器技术,目的是可以让app获得一种运行小程序能力的技术。
小程序作为容器技术之一,具备将业务应用打散再重整的能力,即应用松散耦合。产品经理、业务大大们,试想一下,原先的几十个业务模块,可以单独拆分出来,互不影响的运行,不同类型的业务模块,还可以嵌入到你所需要的兄弟App中进行引流或业务承接。
其次,说说技术层面
小程序技术作为web2.0近年来火爆的技术标准,从2017年微信首次推出小程序开始,经过四年发展,各大互联网巨头纷纷推出自己的小程序应用平台,小程序成为真正意义上的“互联网新技术标准”。
而且小程序技术还具备容器技术的优势:容器安全。
小程序技术的核心功能是视图层与逻辑层分离,这种分离有很多好处:
1、因为JS在Service层执行,所以JS里面操作的DOM将不会对View层产生影响,所以小程序是不能操作DOM结构的,这也就使得小程序的性能比传统的H5更好。
2、方便多个小程序页面之间的数据共享和交互。在小程序的生命周期中具有相同的上下文可以为具备原生应用程序开发背景的开发人员提供熟悉的编码体验; 3、Service和View的分离和并行实现可以防止JS执行影响或减慢页面渲染,这有助于提高渲染性能;
技术产品实践示例
Finclip小程序开放平台,为企业提供“小程序运行能力”,它作为小程序运行的环境,为小程序提供安全沙箱、代码解析和渲染等服务。 为了让更多 APP 轻松拥有“小程序运行能力”。
凡泰极客将“小程序运行时”实现成一个可私有化部署的 iOS 和 Android 版本的 SDK,可以被第三方集成。也就是说,任何 APP 通过嵌入FinClip小程序SDK即可瞬间获得运行小程序的能力。 仅需 5 行代码,即可让你的 APP 快速启动和运行小程序,而且小程序运行时 SDK,Android 端 1.3 兆,iOS端 1.8 兆,轻量无感,同时SDK采用多线程运行方式,极端情况下也不影响宿主 APP 的安全稳定运行。
快来体验吧~现在注册,即可免费上架99个小程序