跳至正文

微信小程序/小游戏运行环境小结

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开源代码的商业产品。

欢迎关注微信公众号“楚游香”,获取更多文章和交流。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注