1 运行环境

微信小程序分为逻辑层和渲染层,分别运行在各自的线程中。两个线程之间的通信经由微信客户端(Native)做中转,逻辑层发送网络请求也经由Native转发。

渲染层使用WebView进行渲染,逻辑层采用JSCore运行JS脚本。因为一个小程序可能存在多个界面,所以渲染层也可能有多个WebView线程。

小游戏则是在小程序的基础上提供了WebGL接口的封装,使渲染能力和性能有大幅提升。

在普通网页开发中,开发者需要面对各式各样的环境,PC端有Chrome、IE、QQ浏览器等,移动端有Safari、Chrome以及系统中的各种WebView。而小程序帮助开发者抹平了这些差异,只要专注于微信环境就可以了。

小程序通过把复杂的各式环境封装起来,给上层开发者提供了简单、统一的接口,换句话说,就是小程序框架把麻烦的各种平台适配工作都做完了。

小程序在各个平台采用的脚本执行和渲染环境也各不相同,如下。

运行环境 逻辑层 渲染层
iOS JavaScriptCore WKWebView
Android V8 XWeb(腾讯自研,基于Mobile Chrome内核)
PC Chrome内核 Chrome内核
小程序开发工具 NW.js Chrome WebView

2 相关技术

2.1 NW.js

NW.jsElectron类似,是一个用JS语言开发跨平台桌面应用的框架,比较有名的WhatsApp、钉钉、微信开发者工具都用它开发,但现在发展比Electron落后很多。

2.2 浏览器内核

WebKit是个历史很悠久的浏览器内核,它源于KDE开源项目,兴盛于苹果的Safari浏览器。WebKit由两部分组成,一部分是WebCore排版引擎,用来解析HTML语言和CSS框架;另一部分是JavaScript Core引擎,用来执行JS脚本。Google在WebKit开源项目基础上,继承了WebKit的WebCore部分,但是把JS引擎替换成了自家的V8引擎,大大提高了JS脚本的执行速度。同时,Google还对WebKit源代码重新梳理,提高了代码的可读性,并且编译效率更高,从而拥有了自己的开源项目--Chromium。

目前国内比较知名的QQ浏览器、360浏览器、搜狗浏览器等都是基于Chromium内核开发的。

2.3 Chrome和Chromimu

Chrome和Chromimu不是等同关系,Chromimu是个开源的浏览器内核,但Chrome浏览器不是开源的,只是一个基于Chromimu开源代码的商业产品。

微信小程序/小游戏运行环境小结相关推荐

  1. 实现微信小程序编译和运行环境系列(初始篇)

    实现微信小程序编译和运行环境系列(初始篇) 前言 最近一段时间在研究实现微信小程序和小游戏编译打包和运行环境平台开发 目前基本可以支持微信基础库2.8.2功能迭代了 所以想通过记录分享一下自己的认知过 ...

  2. 实现微信小程序编译和运行环境系列 (进阶篇)

    动手实现微信小程序和小游戏编译打包和运行环境平台 (进阶篇) # 前言 距离上一篇初始篇过了一段时间,在初始篇里面主要分享了微信小程序工具 和微信小程序的文件组成,以及小程序架构的基本大纲和描述,看了 ...

  3. 微信小程序开发教程||微信小程序 小程序简介||微信小程序 开始||微信小程序 小程序代码构成

    微信小程序 小程序简介 小程序简介 小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序技术发展史 ​小程序并非凭空冒出来的一个概念.当微信中的 ...

  4. 微信小程序(小程序模型与宿主环境)

    目录 (1)小程序模型 (2)模型基本工作方式 (3)数据驱动 (4)通信模式 (5)WebView (6)JsCore (7)宿主环境 前言 小程序可以调用宿主环境/微信提供的微信客户端的能力,这就 ...

  5. 微信小程序(小游戏)的示例

    在这里给大家介绍微信小程序(小游戏)的示例. 1. 首先当然是需要下载官方开发工具. 2. 接着我们需要创建一个项目 在这里需要需要点击体验小游戏.即可生成一个demo 3. 已结生成了项目,我们可以 ...

  6. 微信小程序(游戏)----拼图游戏(设计思路)

    微信小程序(游戏)----拼图游戏(设计思路) 设计思路 1.将一张海报等分成 N*N 的矩阵 方法一:利用两个组件循环完成,view组件和image组件,view组件作为盒子规定大小--超出部分不显 ...

  7. 导入微信小程序显示未选择环境或未指定环境,解决办法

    导入微信小程序显示未选择环境或未指定环境 如下图所示: 解决办法:重新导入,选择云开发(需删掉以前的导入记录) 1.点击云开发申请通过 2.右键cloudfuncrions, 3.点击同步云函数列表 ...

  8. 微信小程序基础之开发环境搭建

    初心-杨瑞超个人博客诚邀您加入qq群(IT-程序猿-技术交流群):757345416 概述 开发小程序的第一步,你需要拥有一个小程序帐号,通过这个帐号你就可以管理你的小程序.跟随这个教程,开始你的小程 ...

  9. 微信小程序:游戏助手王者战力查询扫码登录多功能小程序源码

    这是一款游戏多功能助手小程序 内由王者战力查询(支持微信QQ双端查询,安卓IOS) 游戏扫码登录(内支持多种游戏扫码登录) 短视频去水印功能(支持各大平台) 游戏改名助手(支持空白名生成,符号名生成) ...

  10. 微信小程序(小游戏)后台开发

    小程序开放接口功能,目的是方便小程序接入第三方服务器,比如,商城类小程序,小游戏,需要保存订单数据,玩家信息等.那就需要服务器和数据库, 开发者对于各方关系必须要理清,那就是小程序,用户,开发者服务器 ...

最新文章

  1. Android Environment 的作用以及常用的方法
  2. zabbix snmp trap 监控
  3. 算法 判断一个数是不是2的n次幂
  4. linux内核网络协议栈--数据包的接收过程(二十二)
  5. Lintcode--3(366)--斐波那契数列
  6. java怎样访问servlet_如何访问URL并从java servlet获取响应?
  7. python绘制折线图显示数据_漂亮图表也可用python信手拈来!一文教你学会用Python绘制堆积折线图...
  8. 常见c#正则表达式类学习整理
  9. PyQt5学习--基本窗口控件--QMainWindow
  10. 【java笔记】map集合
  11. [算法]数组排序之后相邻数的最大差值
  12. 环境试验的认识和环境可靠性测试
  13. 虚拟机黑裙加载硬盘_适合练手,在虚拟机中安装黑群晖,想要组建NAS服务器的看这里...
  14. c语言pow函 新闻,c语言pow函数(C语言pow函数)
  15. ValueError: only one element tensors can be converted to Python scalars
  16. 取消Wince App 应用启动动画和隐藏分区注册表项
  17. 蓝牙BQB认证所需资料和流程
  18. 阿里云服务器镜像操作系统如何选择?阿里云镜像注意事项
  19. React学习的小总结(一)
  20. win10win键无反应_Win10系统桌面右键如何解决弹出菜单慢/无反应?

热门文章

  1. 模拟点击事件php,利用js脚本模拟鼠标点击事件
  2. Microsemi Libero使用技巧1——查看芯片资源占用情况
  3. Cesium专栏-气象雷达动图(附源码下载)
  4. MPC与LQR的详细对比分析
  5. ROM刷机包下载站领导者:刷机之家
  6. [Python嗯~机器学习]---用python3来分析和预测加州房价
  7. MSP430 BSL编程原理
  8. php 模态框效果,评论:超酷的模态框效果 - Nifty
  9. recyclerview简单实现立体魔方动画切换效果
  10. 世界十大投资风云人物,你知道几个?