小程序和H5或者RN有什么区别?优越性在哪里?

长期以来,移动互联网界一直在寻找一种既能获得Native原生的体验,又可以低门槛快速开发的技术。在这个过程中出现了很多尝试,例如React Native(RN),RN本质上是轻量化Native开发,在Native基础上做减法;H5的特点是开发成本较低,可以做到比较灵活,但缺点在基础信息获取方面(如地理位置、手机信息、播放器等)和顺滑体验方面无法做到Native的效果;

就在这个背景下,微信小程序也给出了自己的方案,它的做法是在H5的标准上做Native能力的加法,赋予了小程序很多Native的能力,微信通过自行研发的小程序运行时,为小程序提供了大量的API层面能力支持,如地图、导航、画布、滚动视图等方面都能提供支持。

小程序的优越性体现在既保留了H5开发的便利和灵活性,又可以达到媲美Native体验,配合微信11亿用户的社交网络,越来越开发者选择微信小程序的技术的。

据小程序团队透露,目前已经50万+的开发者在从事实际的开发,小程序已经成为移动互联网领域“事实”的标准。伴随着这种趋势,阿里、百度分别在2017年的8月和2018年的3月启动了自己的小程序项目,围绕着支付宝和手机百度APP几个超级APP在移动互联网领域再次攻城略地。小程序已然成为近几年最炙手可热“现象级”技术。

小程序是如何运行的?它的工作原理是什么?

小程序的出现不是一蹴而就,而是在移动互联网近10年的业务、场景积累上逐步发展起来的。Web开发具有高效、灵活、门槛低的特点,但弊端在于所有的页面都依赖浏览器的渲染,浏览器的能力就是的web研发的上限和边界。为了克服这个问题,于是便有了JS-Bridge这种方式,将很多常用组件内置到应用中,当内嵌组件足够多的时候,再做一层封装,形成了JS-SDK,其本质没有差别。

小程序在JS-SDK的基础上,一方面进一步开放和拓展原生的能力给到Web前端调用,另一方面,页面渲染(Webview Render)的UI层和逻辑层,使用了两个独立的线程。如下图所示:

什么是小程序运行时?

小程序运行时本质上是一个处理Web页面渲染、数据逻辑交互的虚拟机,这个虚拟机提供了丰富的原生能力供小程序调用(API、组件、AI能力等),极大的拓展了Web应用的能力边界,尤其是在诸如滚动视图(scrool-view)、导航(navigator)、图片预览(cover-image)等组件的提供,使得前端开发人员在使用现有的web前端技术,就可以开发出接近原生体验的应用。

其实微信可以分成两部分:即时通讯部分(IM)和小程序的运行渲染引擎(运行时)。小程序的运行的离不开运行时,它作为一个基础支撑已经深度和微信整合。正是利用了微信11亿的巨大的社会协同网络,赋予了小程序方便的转发、分享能力,为商业应用创造了一个崭新的蓝海,所有人都可以利用的这个平台去更好的触达、服务客户。

当你获得这么一个引擎,你会如何改造你的App?

以往业务部门要发布一些新的功能的时候,用户必须要主动更新App,而且任何一个局部功能的变化升级需要去重新去应用市场再操作一次,成本很高。由于并不是所有的用户都去更新,造成IT团队需要花费大力气去维护多个不同的版本。这种方式造成用巨大的资源浪费和用户体验的不便利。

如果用小程序,这个问题会迎刃而解。首先,小程序可以独立的去更新,App作为了一个载体,很长的一段时间内,不需要被频繁更新。其次,每个小程序可以按照业务具体需要去独立发布各自的版本,不同的小程序之间的更新升级彼此独立、互不干扰。最后,由于小程序运行的沙箱机制,保证了不论是哪个小程序出现Bug、崩溃等情况,不会拖累应用本身,即便出现严重问题,也不过就是把它下线即可。

凡泰小程序运行时是面向全行业的“小程序解决方案”,它借鉴了被大家广发熟知的微信小程序概念,在技术上对微信小程序做兼容,开发工程师在现有的技能上可以直接上手。企业可以基于这套合规、安全的小程序运行时,配合整个小程序的上下架运营平台,自己就成为了一个“微信”。真正把这些技术赋能于现有的业务,App的更新也不再束手束脚,既松绑了业务,也松绑了IT研发。

那小程序对用户来说,会不会有门槛?

并不会。首先,小程序的体验和原生几乎没有差别,对用户的来说是“透明”,不细致观察,用户甚至都不知道自己在使用小程序。其次,因为用户其实每天都在接触各种各样的小程序,已经实际上已经嵌入到我们生活的方方面面。比如用户在使用微信坐地铁、买电影票就在用小程序;打开淘宝购物,许多商铺就是小程序;打开百度搜索,出现的还是小程序。

互联网公司实际上已经对用户完成了“教育”和普及。接下来券商可以考虑如何利用好小程序的技术,结合小程序的优势、特点,逐步把现有App的一些业务切换到小程序上来。每个业务单元可以基于小程序进行敏捷迭代,好的产品离不开10000小时定律,让产品团队可以不断的围绕业务场景去打磨、优化,以提供更好的体验和服务。同时借助小程序一次开发多次上架的特点,更好去利用微信的社交网络优势,在获客、触达、营销方面可以做更多的创新和尝试。

任何事物的发展都具有周期性,显然小程序的这波红利已经到来, 今天的创新可能就是明天的标配。当务之急,尽早上船拿到“船票”。

文章来源:凡泰极客微信公众号finogeeks

如果希望了解更多小程序运行时的细节或者具体应用场景可以访问凡泰小程序开放平台

小程序运行时如何助力传统APP转型?的更多相关文章

  1. 小程序学习三 一切的开始app() 小程序的注册

    现在打开 app.js //app.js App({ onLaunch(options) { //小程序初始化 // console.log("小程序初始化", options) ...

  2. 微信小程序开发——前端如何区分小程序运行环境

    前言: 之前用vue做h5项目,对于接口请求,都是根据前端访问域名来判断运行环境,然后自动适配对应的服务器地址的.这样的好处就是在开发.测试及发布上线全程都不需要手动去改接口请求地址,只要提前配置好就 ...

  3. c/c++编译时,指定程序运行时查找的动态链接库路径

    http://blog.csdn.net/tsxw24/article/details/10220735 c/c++编译时,指定程序运行时查找的动态链接库路径 分类: c/c++ linux 2013 ...

  4. C# 获取程序运行时路径

    Ø  前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. C# 中有很多类都可以获取程序运行时路径,我们没必要 ...

  5. java程序运行时内存分配详解

    java程序运行时内存分配详解 这篇文章主要介绍了java程序运行时内存分配详解 ,需要的朋友可以参考下   一. 基本概念 每运行一个java程序会产生一个java进程,每个java进程可能包含一个 ...

  6. Java程序运行时内存划分

    1.Java程序跨平台运行的原因 主要原因是:各种平台的JVM和字节码文件 Java源程序--具体平台的机器代码文件---被编译器翻译成平台无关的Class文件,又用特定JVM运行字节码文件,JVM在 ...

  7. 小程序开发时PC端调试返回结果和手机端IOS不一致问题

    IOS11登录时遇到一个请求与PC返回不一致情况, 在小程序调试时IOS上始终没有wx.request() 不能发送请求 尝试解决方法 打开微信小程序调试的设置, 将TLS设为可信任的域名 设置 -- ...

  8. 微信小程序来了 要杀死一切App

    从昨晚一些自媒体开始陆续爆料,到微信官方宣布,这一次只隔了短短几小时.就在刚刚,今天早晨,微信官方正式宣布“应用号”开始内测,并暂定名为“小程序”. 应用号变成小程序 腾讯高级副总裁张小龙也在其朋友圈 ...

  9. 小程序—银行、券商们下一代APP的进阶方向

    传统金融机构们的App——尤其以手机银行.手机证券为最,发展到今天,已经产生一系列的问题:从用户角度看,体验普遍不好.高度同质化:从业务运营角度看,几乎没有什么“运营”的抓手:从IT角度看,投入产出比 ...

随机推荐

  1. shell编程之字符串处理

    # .#号截取,删除左边字符,保留右边字符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 echo ${var#*//} # . ## 号截取,删除左边字符,保留右边字符,##*/ 表示 ...

  2. 单片机的 HexToStr HexToBcd BcdToStr 几个转换函数

    今天写单片机一个程序 要检查一些数据,想发到串口调试的软件上在电脑上查看 有些转换函数 想网上找一个 看看都是很多的垃圾文章 很多的程序都不能用,那些发文章的人也不用心 所以我还是自己动手写一下吧 写 ...

  3. [转载]-虚拟键值表-virtual key code

    转载  虚拟键值表, virtual key code Virtual-Key Codes VK_LBUTTON (01)Left mouse button VK_RBUTTON (02)Right ...

  4. hdu3038加权(扩展)并查集

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/3038/ 参考博客: https://blog.csdn.net/weixin_44580710/article/ ...

  5. 字符串-mask-每个元音包含偶数次的最长子字符串

    2020-03-08 00:23:04 问题描述: 给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出现了 ...

  6. iOS 静态:动态 Pod

    一.静态和动态 在项目中使用 pod 实现模块化,对于子模块和第三类库的导入方式存在两种:静态库.动态库. 当在 podfile 中指定 use_frameworks! 时,子模块和第三方类库将被打包 ...

  7. 深入理解Java AIO(三)—— Linux中的AIO实现

    我们调用的Java AIO底层也是要调用OS的AIO实现,而OS主要也就Windows和Linux这两大类,当然还有Solaris和mac这些小众的. 在 Windows 操作系统中,提供了一个叫做 ...

  8. [vijos1304]回文数<模拟>

    题目链接:https://vijos.org/p/1304 好久没写博客了,最近一直打不出题,感觉自己是废了,今天做了一道模拟水题,但还是半天没过,后来才发现是忘记考虐10以上的进制是带有字母的,然后 ...

  9. memcached-tool 工具

    perl memcached-tool server_ip:port stats 输出说明: pid memcache服务器的进程ID uptime 服务器已经运行的秒数 time 服务器当前的uni ...

  10. 树莓派中Docker部署.Net Core 3.1 (一)

    一.背景 受疫情影响,已经在家强制事假一个月了,除了刷简历外就是在家学习,闲来无事,最近买了几个树莓派4B的板子回来,准备用树莓派搭建个自动部署的平台和微服务示例,长话短说,节约时间,直接进入正题吧 ...