首先,热更新技术作为一种App软件开发者常用的更新方式,简而言之就是用户在下载安装APP之后,会有APP的即时更新。

自从2017年苹果App Store针对热更新的下架事件发生之后,诸多开发者也在不断地进行探索与尝试最佳最优质的解决方案。其中「App+小程序容器技术」的热更新解决方案脱颖而出,受到了大众的认可,成功的成为了近几年来APP更新领域最佳最热门的技术解决方案。此方案都有:一码多端运行(跨平台),体验优于H5(松散耦合),避免 DOM 泄露(安全容器)等核心突出优势。

方案背景

2017年时App Store审核团队便针对App Store中“热更新”的App开发者发送邮件,要求移除所有相关的代码、框架或SDK,并重新提交审核,否则就会在AppStore中下架该软件。由于软件热更新绕过了苹果的审核,黑客开发者有可能会通过提交正常的版本之后,通过热更新的方式修改APP导致安全隐患,利用这个“后门”来窃取用户设备中的隐私信息。

并且在同一阶段,各行各业的业绩却需要应对千变万化的市场需求背景下加速增长。移动互联网背景下,APP这个主流触达用户的工具,变成为了商家流量竞争的主战场。技术作为业务的市场触达及活跃的保障手段,对于业务应用,尤其是高频引流及活跃的应用需要保持快速迭代更新。基于这个背景,可以说开发者们从未放弃探索及寻找热更新的最优技术解决方案。

什么是App热更新技术方案

实际上市面上App热更新技术方案可归纳为两大类:纯原生(Native)的,以及Hybird(混合开发)模式下的技术方案。

首先,纯原生(Native)的热更新技术解决方案典型的有Dexposed、AndFix、KKFix.....很多且应用也不错,但随着市场上“敏捷开发”,“一端开发,多端上架”等研发概念探索成型并有一些成功实践被广而告之以后,Hybird(混合开发)的移动研发模式便开始流行起来。

所以,我们下文可以着重讨论一下混合式App开发模式下的热更新方案。

混合App开发模式之「Native+小程序」

我们可以先了解一下混合APP的开发模式都包含哪些。

在微信把小程序火爆之前,H5也曾经在微信中“随处可见”。这些在类似微信的社交中心化平台上生存的业务应用,主要目的是给企业主的业务做引流和活跃。

直到现在,微信全网小程序数量超过700万,微信小程序日活超过4.5亿,真正进入了业务应用小程序流行的年代,于是开始有人研究「Native+小程序」的App开发模式。

有人就会疑惑道:既然已经开发了一套应用在微信上,为什么不能应用于App的研发管理上呢?这样是不是更服务敏捷开发的理念?

随后,就产生了混合App开发模式–「Native+H5」。

直到现在,微信全网小程序数量超过700万,微信小程序日活超过4.5亿,真正进入了业务应用小程序流行的年代,于是开始有人研究「Native+小程序」的App开发模式。

相比于「Native+H5」,「Native+小程序」的App开发模式优势在哪里呢?这就关键在于小程序相比于H5,有其自身的优势:

  • 与宿主环境结合更紧密: 如上所述,小程序是基于App端实现的应用,故只能在特定的平台内运行,可想而知其获取系统(App)的权限也会多于H5(H5是网页,只要有浏览器就可以使用)。
    用户体验更佳: H5网页是在浏览器内使用,如果网速不佳或者网页加载东西过多就会出现卡顿。 小程序只需在首次使用时是加载,也不会太精准,初次加载后页面再加载就会很流畅了。另外,组件及UI都是有预设组件,展示体验也会更佳。
  • 加载速度更快:小程序是基于App端实现的应用,自身对于App有一定的亲和度,使用时不像H5的网页加载方式,用户主观感觉会更流畅。
  • 开发成本更低:小程序技术是前端容器技术的一种应用,其组件及UI都有明确的规范,开发者不用考虑兼容性及类似H5开发时复杂工具及框架的选择。

考虑到以上几点,小程序应用能火起来,或者说各大平台竞相“弃H5从小程序”也不是没有其道理的。

上述说的只是说了小程序自身比H5具备更优的技术解决方案,那么放到混合App开发模式下比较,「Native+小程序」的App混合开发模式的优势可以总结为:

  1. 可以避免 DOM 泄露(不使用常用的 window 对象与 document 对象);
  2. 包尺寸有效减少,节省流量和存储
  3. 远超过 H5 的体验(支持本地缓存,Webview,有丰富的组件与支持库);
  4. 能获取更多系统权限,完成更加丰富的产品设计;

「Native+小程序」的App热更新技术方案

「Native+H5」的App,其热更新的机制大致是:把需要频繁发版的业务应用H5化,并内嵌至 App 中。当含有页面链接的App版本过审以后,这些H5 页面可以随时远程热更新,用户在不更新App版本的基础上,就能使用最新版的业务应用。

那么「Native+小程序」的App,其热更新方案到底优势在哪里呢?

其实,其好处并不在于热更新本身,而是在于「Native+小程序」给企业技术和业务的价值更优,所带来的利用空间会更广阔。

在技术层面

小程序技术作为前端容器技术的技术实践之一,天生与云原生的理念亲和,且具备容器技术的优势:容器安全。

小程序技术的核心功能是视图层与逻辑层分离,这种分离有很多好处:

  • 因为JS在Service层执行,所以JS里面操作的DOM将不会对View层产生影响,所以小程序是不能操作DOM结构的,这也就使得小程序的性能比传统的H5更好。
  • 方便多个小程序页面之间的数据共享和交互。在小程序的生命周期中具有相同的上下文可以为具备原生应用程序开发背景的开发人员提供熟悉的编码体验;
  • Service和View的分离和并行实现可以防止JS执行影响或减慢页面渲染,这有助于提高渲染性能

业务方面

“容器化”就是将容器中的每个部分(应用、流程等等)都打包在自己的容器中,这有助于提升复用性、透明度以及改善资源隔离。

小程序作为容器技术之一,具备将业务应用打散再重整的能力,即应用松散耦合。产品经理、业务大大们,试想一下,原先的几十个业务模块,可以单独拆分出来,互不影响的运行,不同类型的业务模块,还可以嵌入到你所需要的兄弟App中进行引流或业务承接。

最后总结,其实市面上有很多的热更新技术解决方案,我们还是要考虑到怎么才能兼顾技术实现且最大限度的支撑高性能技术架构及业务发展,要有一个完整的想法。

技术产品实践范例

Finclip小程序开放平台,为企业提供“小程序运行能力”,它作为小程序运行的环境,为小程序提供安全沙箱、代码解析和渲染等服务。 为了让更多 APP 轻松拥有“小程序运行能力”。凡泰极客将“小程序运行时”实现成一个可私有化部署的 iOS 和 Android 版本的 SDK,可以被第三方集成。也就是说,任何 APP 通过嵌入FinClip小程序SDK即可瞬间获得运行小程序的能力。

仅需 5 行代码,即可让你的 APP 快速启动和运行小程序,而且小程序运行时 SDK,Android 端 1.3 兆,iOS端 1.8 兆,轻量无感,同时SDK采用多线程运行方式,极端情况下也不影响宿主 APP 的安全稳定运行。 快来体验吧~现在注册,即可免费上架99个小程序

企业实践范例

券商:合规安全下的内联外引,助力财富管理数字化转型

背景:

券商App中通常集成的业务功能繁多,传统技术实现方式是紧耦合,相对独立的业务功能也无法独立开发测试、独立发布;此外,券商App本身可运营能力弱,明明用户就在App上活跃着,也无法在线向其进行产品营销,无法通过活动进行触达

解决方法

  • 利用FinClip兼容微信小程序的特性,App各类功能进行小程序改造后部分也在合规前提下能够被分享至微信,并引导客户回流至App,提升App的活跃度。
  • 小程序轻量、便捷,并能灵活的“上下架”发布,满足高频的营销活动需求,并能够针对不同客群推荐不同的营销活动,实现千人千面营销,促进业务办理
  • 在App中集成FinClip小程序运行时SDK,从而获得小程序运行能力,逐步把传统紧耦合的功能小程序化,独立可上下架管理,和App载体松绑。

银行:加速生态融合,打造开放银行

背景:

数字化时代的信用卡,既需要满足传统线下消费场景,更需要关注日益上涨的线上消费需求。过去是用户带信用卡到线下消费,现在是银行将商户引进到App中,通过营销活动引导用户使用信用卡。银行数字信用卡如何低成本吸引商家进驻、如何在线运营促进用户消费?

解决办法:

  • 银行App可根据已有用户画像对用户进行精细化管理,灵活呈现不同小程序给用户使用,轻易实现对用户的个性化服务;
  • 银行App通过集成FinClip小程序运行时SDK,可引入外部优质的商家服务小程序,结合自身的金融服务能力,打造特色化金融服务,且丰富App使用场景,从而达到提升App用户活跃的效果。同时,可利用FinClip兼容微信小程序语法的特性,银行可快速、低成本引入微信生态中的小程序商家,降低运营成本。
  • "用完即扔”的营销活动类代码可以快速发布,满足高频运营活动要求。

一文解释到底什么是“APP热更新技术”?相关推荐

  1. 乐变黄杲:当前如何选择App热更新服务

    在2017年6月这个时间点,我们有必要谈谈热更新这个技术到底何去何从. \\ 上半年苹果的两次警告,通知iOS开发者在6月12日前移除热更新相关代码,否则将会下架相关App,一时间风声鹤唳,那么App ...

  2. 关于APP热更新,一个降本增效的好方法

    热更新是一种App软件开发者常用的更新方式.简单来说,就是在用户下载安装App之后,打开App时遇到的即时更新.这样的更新方法不仅利于开发者方的降本增效,而且对于用户方的体验也非常友好.下面我们就来详 ...

  3. 移动端APP热更新方案(iOS+Android)

    出自:http://www.cnblogs.com/Creator/p/7007694.html 为什么要做热更新 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙 ...

  4. APP热更新方案(转)

    本文转载自[http://creator.cnblogs.com/] 博客地址:Zealot Yin 为什么要做热更新 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就 ...

  5. Unity3D热更新技术点——ToLua(上)

    注: 本文主要介绍tolua的基本原理及其在unity中的使用,希望阅读本文的读者有lua基础,可通过Lua教程 (其中也有IDE的推荐等)或其他途径先进行lua 的学习 热更新 在介绍tolua前, ...

  6. Android热更新技术的研究与实现Sophix

    所以阿里爸爸一直在进步着呢,知道技术存在问题就要去解决问题,这不,从Dexposed-->AndFix-->HotFix-->Sophix,技术是越来越成熟了. Android热更新 ...

  7. 苹果为什么要禁止 JSPatch 等热更新技术?

    声明:本文为作者投稿,CSDN 基于原文进行了完善,版权为原作者所有,未经作者允许,请勿转载. [CSDN有奖征稿啦]技术之路,共同进步,有优质移动开发.VR/AR/MR.物联网原创技术文章欢迎发送邮 ...

  8. iOS代码质量要求_Unity移动端代码热更新技术学习总结

    为什么需要热更新 游戏总是伴随着不断的开发与维护,我们不能要求玩家每次都将游戏客户端卸载重装,所以需要热更新技术来在不需要重装客户端的情况下下载更新游戏里的代码(其实资源也需要热更新,但是因为操作系统 ...

  9. iOS 热更新技术探索

    1.什么是热更新. 受限于iOS平台需要先审核在上线,一旦线上发现bug,想要修复还需要等到下次版本提交,这无形中会带给我们一些困扰,尤其是一些BAT量APP,所以热更新技术应运而生. 2.热更新解决 ...

最新文章

  1. matlab中repmat的用法,Matlab: sum的用法、每一行求和、repmat的用法、sum和repmat结合使用减少循环...
  2. ***CSS魔法堂:选择器及其优先级
  3. 厉害了,Servlet3的异步处理机制
  4. 子网规划与组网实验_交换机四种组网方式,你都清楚吗
  5. 游戏卡牌半小时拍出8700万天价,法院紧急叫停!
  6. OpenShift 4 之Service Mesh教程(1)- 创建ServiceMesh环境,部署Istio的微服务
  7. 深入理解java虚拟机---JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)(十二)
  8. 手把手教你制作一块Linux开发板(基于Planck-pi)
  9. 华为hs8145v5如何改桥接_华为 光猫 HS8546V5 改 桥接模式 简易教程
  10. windows下基于selenium保存网页为图片
  11. 《2017中国云计算评测报告》
  12. Pycharm导入已有的本地安装包
  13. 基于新浪微博的男女性择偶观数据分析(下)
  14. 利用账号密码模拟登录新浪微博
  15. esxi虚拟服务器网络搭建,小姜学网络(使用VMware ESXi 5.5搭建VMware虚拟化平台一)...
  16. Python:使用cv2模块快速生成素描
  17. Python爬虫之findall和lxml
  18. cisco硬件维修(交换机路由器防火墙模块电源维修)
  19. 当前中国计算机硬件发展情况,中国计算机硬件技术发展与展望.doc
  20. 29 WebGL绘制立方体并为立方体每个表面指定颜色

热门文章

  1. 毕业论文常见问题 (以计算机专业为例)
  2. 有没有可以记录生活的手机软件?
  3. ON1 Resize 2021 for mac(图像缩放软件)
  4. 当头棒喝,过托福准留学生被吓蒙
  5. TimesTen学习(四)Data Manager守护进程
  6. rpm 安装ElasticSearch
  7. 饿了么、口碑、盒马生鲜合并,阿里新零售双线策略初显
  8. 泥塑课——Python
  9. 华为系(手机/电脑)护眼模式设置
  10. Uni-app微信小程序开发