小程序运行时的原理以及它将如何颠覆传统App

小程序运行时的原理以及它将如何颠覆传统App,第1张

长期以来,移动互联网界一直在寻找一种既能获得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,而且任何一个局部功能的变化升级需要去重新去应用市场再 *** 作一次,成本很高。由于并不是所有的用户都去更新,造成IT团队需要花费大力气去维护多个不同的版本。这种方式造成用巨大的资源浪费和用户体验的不便利。

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

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

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

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

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

目前在微信开发产品体系中, 有三个平台, 如下:

主要面对移动应用/网站应用开发者, 为其提供微信登录、分享、支付等相关权限和服务 同时可以绑定公众号, 小程序, 统一了不同产品的用户标识

开放平台可以创建或绑定的应用有:

开放平台给移动应用提供的功能有:

支持的移动 *** 作系统有:

给电脑网站提供 微信登录 的功能

绑定开放平台后, 获取用户基本信息可以获得用户的平台唯一的 unionid (关于 unionid ,可以参考: UnionID 机制说明 )

与公众账号类似, 绑定开放平台后, 获取用户基本信息可以获得用户的平台唯一的 unionid

第三方平台是 微信公众平台-第三方平台 的简称, 开放给所有通过开发者资质认证后的开发者使用

在得到公众号或小程序运营者(简称运营者)授权后, 第三方平台开发者可以:

关于代实现业务: 第三方平台在得到授权之后, 可通过接口获取公众号或小程序的 接口调用凭据 (authorizer_access_token), 进而获得代公众号或小程序实现业务的能力

对于公众号和小程序的授权流程, 可以参考:

公众平台是给个人、企业和组织提供业务服务与用户管理能力的服务平台

在公众平台中有多种类型的账号, 具体分类如下:

公众号主要通过公众号消息会话和公众号内网页来为用户提供服务的, 具体介绍如下:

公众号的开发辅助工具有:

小程序是微信为了让第三方服务在微信上有更好的体验而设计的一种新的产品

小程序提供的功能有:

本质上企业微信小程序是微信小程序的一个扩展子集,微信小程序的大部分能力都可以在企业微信上运行,同时企业微信扩展了部分和企业相关的能力以满足更多的场景需求。

商户平台主要提供的功能是支付

对于接入的商户类别, 可以分为两种:

在商户平台中, 支付平台的产品有:

不同场景适用的支付产品整理如下:

一要明白的就是,任何程序的发布,不可能是一点缺陷都没有的,五个手指还不一样长呢,主要看它是什么缺陷,影响程度有多大。微信小程序仅仅是一些服务端本身、服务后台的漏洞,这些都不影响微信小程序的应用,还可以慢慢完善的。

二不少人都很关心客户端会不会出现漏洞,现在为你们举例说明一下。漏洞很多跟系统版本有关系,以Android为例,如果你是自己修改了内核回复了漏洞,在低版本Android系统上是不用考虑这个漏洞影响力的。

三大家产生微信小程序可靠吗的疑问是正常的,因为大家并不全面了解微信小程序,在这里,就有必要为大家介绍一下。微信小程序是一种插件。插件框架的基本特点是:基础程序(微信)提供服务给插件(小程序)。在Android上,小程序使用X5内核接口;而在IOS上,小程序使用的是JS Core接口。接下来我们以IOS为例进行解释。微信是通过将一些服务(比如:绘图等)通过JS接口暴露给小程序。

四一些懂微信小程序的朋友们会说,它攻击微信、实现小程序之间的跨站攻击、攻击 *** 作系统,它们可能具有很强的攻击性,但是,这只是我们的假想。真实的场景下。它攻击的大多是一些脚本,攻击效果也不是那么强,最多就是获取一些信息。

五即使存在危险,我们也会采取措施的。微信小程序发布都是经过严格的审核,不符合条件的微信小程序是不会发布的。苹果手机曾经有过防御微信小程序攻击的软件,但随后就取消了,因为这是没有必要的。所以,你们会担心微信小程序会盗走我们的红包吗,答案当然是不会的。

最近微信小程序比较火,我赶快在书架上拿出三年前买的书,把上面的土擦干净,压压惊。

作为一个并不是资深的程序员。 从程序员的角度分析一下微信小程序,欢迎指点。

首先吐槽

微信小程序只发了200个邀请号,和我预想的一样,张小龙并没有翻我牌,难道就不能雨露均沾吗?

先来了解下什么是微信小程序。 转自知乎

微信也许重申了"我们是一款约炮软件"

微信还提供了一大堆接口和组件(不好意思,说了句废话)。

下面是禅叔的观点:

小程序原理就是用JS调用底层native组件,和React Native非常类似。恰恰又证明了,凡是能用JS开发的最终都会用JS开发。

证明:凡是能用JS开发的最终都会用JS开发

解:

据我多年经验,这句话是一个真命题。

语言的设计者是有两个派系的,有些人认为程序员语言应该防止程序员干蠢事,另一些认为程序员应该可以用编程语言干一切他们想干的事。 C/Java语言是前一个阵营的代表, JS是后一个阵营的代表。

往往第一个阵营的语言强调性能, int就是int,double就是double 还第二个阵营就是强调便利性 ,int是var , double还是var。

选择语言的时候,其实就是在做选择题。是选择便利还是选择性能。

往往新出的语言便利性都很强,是因为硬件性能提高了,从而可以为了便利性放弃性能要求。

编程语言的主要矛盾就是程序开发的便利性和硬件水平的矛盾。

如果能够穿越回到70年代(首先在中南海西面买块地), 那时候你坐在庞大的计算机面前写代码的时候,无意间小手一抖,多敲俩空格,然后程序oom。

不要感觉上面的事情不可思议,那时候内存低的可怜,每一个字符都是严格定义的,不允许任何浪费。能运行java虚拟机都是天方夜谭,怎么可能会有java语言。

节俭是一种美德,浪费不一定是坏事情

随着硬件性能的提高,出现了越来越多的编程语言,新出的语言往往性能上浪费,便利性上提高。要是按照几十年前的标准衡量,有一些使用新语言开发的热门应用程序对硬件资源浪费非常惊人。

不仅编程语言有这种现象,这实际是一种普遍的历史趋势, 随着技术的发展,每一代人都在做上一代人觉得浪费的事情。你可以想象下30年前打个长途电话,而现在,别说长途电话了, 有的人都就坐飞机去约炮了,这个在以前很难想象。

浪费可以分成好的浪费和坏的浪费。用更多的浪费换来简单的设计,并不是什么坏事。

如何才能充分利用新硬件更强大的性能最有利地“浪费”他们?

这时候问题就回到了开始, 证明:凡是能用JS开发的最终都会用JS开发

JS这种语言扩展性极强, 性能比起其它语言只能呵呵了。 但是硬件速度会提高很快。

Paul Graham算过,如果摩尔定律一直成立。一百年后计算机的运行速度是现在的74乘以10的18次方倍。(准确地说是73 786 976 294 838 206 464倍)

终有一天,你会在选择的时候忽略性能,选择便利性。

以前上学的时候,经常去网吧玩大话西游和传奇。而现在随便一个页游就能做出这种游戏效果。10年前你很难想象在网页上能玩这种游戏。

你现在就可以尝试想象一下若干年后,打开网页能玩魔兽世界。这并不是不可能实现的。

强调性能的语言还能否生存

我们都知道C/C++ 就是强调性能的语言, 我们做游戏或者视频播放的都是要求性能的。他们会不会被新的语言取代呢?

我可以郑重证明,不会的。

虽然上面我说的Java语言属于强调性能的第一阵营的语言。但是相对于C/C++ 它显然是增强了便利性。

语言是发展的,是迭代的, 随着硬件性能提高,基本上每个节点下都会产生新的语言,相对于之前的语言浪费性能,增强便利性。

但是很难取代之前的语言,对性能要求高的程序依然会出现的, 即使以后可以在网页上玩魔兽世界,但是还会出现 超级魔兽世界,泰坦世界, 宇宙世界 等等一大堆新的对性能要求较高的游戏。

微信小程序会取代其它APP吗?

问题回到我们的主题微信小程序上,微信小程序会取代其它APP吗?

我的观点很明确,

现在不会取代,以后会,但是以后会出现以后的微信取代不了的;以后的以后会取代以后的,但是以后的以后会出现以后的以后的微信取代不了的

其实也不难解释,10年前我们不能在网页上玩传奇, 但是现在可以。但是现在又有了魔兽世界,也许10年后网页上就能玩了,但那时候肯定还会出现 超级魔兽世界之类的游戏不能在网页上玩。

作为一个程序员,我们需要学什么?

有的人会担心,微信小程序出来了, 做Android、iOS开发的会不会失业啊。

其实你大可放心,只要你会学习,永远不会失业,你不学习,就算微信小程序没有推出你也会失业。

就目前而言,小程序始终是小,场景有限。还不能完全取代APP , 还可以通过小程序引导用户下载APP。就像简书一样,网页端能浏览不代表不开发APP软件。

但是要认清大的趋势, 这段时间就是用来给你学习的。

具体怎么学啊?

看文档学习呗, 首先了解JS语法基础, 了解React Native原理,学习JS , RN,H5,CSS,运营,测试,产品设计规范,图形设计,神经网络,OpenGL

总之,根据具体文档,用到什么学什么。

作为一个程序员,你可以忘了学习的高数,可以忘了学习的英语,可以忘了学习的线性代数 但是千万别忘了学习。

以上就是关于小程序运行时的原理以及它将如何颠覆传统App全部的内容,包括:小程序运行时的原理以及它将如何颠覆传统App、微信开发之微信产品体系介绍、小程序到底安不安全等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9633159.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存