资讯专栏INFORMATION COLUMN

技术文:微信小程序在微信APP里如何运行的?

Object / 1617人阅读

摘要:小程序是如何在微信里运行的呢微信里包含运行引擎。那么调用的小程序相关怎么实现的呢答案是最终会被翻译成实现在微信里的原生接口。微信小程序最大的好处是不需要做设备适配,只要微信能运行,小程序就能运行。

小程序是如何在微信 App 里运行的呢?

微信 App 里包含 javascript 运行引擎。

微信 App 里包含了 WXML/WXSS 处理引擎,最终会把界面翻译成系统原生的控件,并展示出来。这样做的目的是为了提供和原生 App 性能相当的用户体验。

我们来模拟下小程序加载运行的过程:

用户点击打开一个小程序

微信App从微信服务器下载这个小程序

分析 app.json 得到应用程序的配置信息(导航栏,窗口样式,包含的页面列表等)

加载并运行 app.js

加载并显示在 app.json 里配置的第一个页面

这个只是从开发者眼中看到的一个简化版的过程,实际过程应该比这要复杂得多,涉及到浏览器线程(就是运行我们的逻辑层代码 app.js 等的线程)和 AppService 线程之间的交互。从官方网站上的一个图片可以看出端倪:

微信 App 是如何与小程序的逻辑层 javascript 交互的呢?可以简单地归纳如下:

JavaScript 是脚本语言,可以在运行时解释并执行。微信 App 里包含了一个 JavaScript 引擎,由它来负责执行逻辑层的 JavaScript 代码。那么 JavaScript 调用的小程序相关 API 怎么实现的呢?答案是最终会被翻译成实现在微信 App 里的原生接口。比如开发者调用 wx.getLocation(OBJECT) 获取当前地理位置,微信 App 里的 JavaScript 引擎在执行这个代码时,会去调用微信 App 里实现的原生接口来获取地理位置坐标。

从以上流程可以看出,微信小程序的运行环境应该更类似于 ReactNative,而不是纯Html5。两者最大的不同在于,ReactNative 的界面是由原生控件渲染出来的,而 Html5 的界面是由浏览器内核渲染出来的。两者在性能上有较大的差异。

微信小程序最大的好处是不需要做设备适配,只要微信能运行,小程序就能运行。

「H5程序俱乐部」是一个专注微信小程序学习交流,相关外包/招聘需求信息发布的微信公众号。

「H5程序俱乐部」微信号:wxappclub 或者 微信扫一扫关注

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/55770.html

相关文章

  • 信小程序集成 Jenkins

    摘要:总结本文以微信小程序常规的发布流程为切入点,循序渐进地介绍了如何集成实现微信小程序预览上传功能。 showImg(https://raw.githubusercontent.com/yingye/Blog/master/images/wechat-jenkins.png); 本文首发于 https://github.com/yingye/Blo... ,欢迎各位关注我的Blog,正文以...

    young.li 评论0 收藏0
  • 业内首个 React Native转信小程序引擎 Alita 正式发布

    摘要:得益于运行阶段处理逻辑的设计,支持将使用的应用转换成微信小程序。我们也在考察这一新的跨端方案和微信小程序融合转化的可行性。 作者:京东ARES多端技术团队 前言 Alita是一套由京东ARES多端技术团队打造的React Native代码转换引擎工具。它对React语法有全新的处理方式,支持在运行时处理React语法,实现了React Native和微信小程序之间的主要组件对齐,可以用...

    陆斌 评论0 收藏0
  • 微信应用号在前端开发圈火了,而Docker其实早已火遍后端

    摘要:昨晚月日微信应用号萌萌哒的化身小程序才刚开始宣布内测,今天朋友圈就刷屏了真是一石激起千层浪,各种分析预测文章铺天盖地而来,让人应接不暇。微信小程序实现了千千万万前端工程师开发的梦想,想不火都难。 showImg(https://segmentfault.com/img/remote/1460000006981816?w=900&h=500); 昨晚(9月21日)微信应用号萌萌哒的化身—...

    WalkerXu 评论0 收藏0
  • 来自于信小程序一封简讯

    摘要:月晚间,微信向部分公众号发出公众平台微信应用号小程序的内测邀请,向来较为低调的微信在这一晚没人再忽视它了。除了微信的小程序和苹果的应用,此前也在自己的通讯工具上推出了简单的应用开发接口,让用户直接通过聊天窗口完成打车和订餐等操作。 9月21晚间,微信向部分公众号发出公众平台-微信应用号(小程序)的内测邀请,向来较为低调的微信在这一晚没人再忽视它了。 来自个人博客:Damonare的个人...

    lavor 评论0 收藏0
  • 技术信小程序和服务器通信-WebSocket

    摘要:好,我们来实现调用该服务的微信小程序代码首先我们需要用方法去连接目标服务器,因为我们开发环境用的是非安全的,所以这边的参数是打头的,在以后微信的实际运行环境中,你的服务端必须使用,所以连接就会是的了。 本文主要讲一下如何建立一个基于node.js的WebSocket服务器,并在小程序中使用这个提供实时服务的服务器。 node.js中已经有很多现成的第三方库,用于构建WebSocket服...

    sanyang 评论0 收藏0

发表评论

0条评论

Object

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<