浅谈小程序引擎思路

在谈论小程序引擎之前,我们需要了解小程序是如何在引擎中跑起来的。虽然各家厂商小程序的实现机制有所不同,但几乎都是依据微信小程序引擎所作的实现,同样保留了小程序的双线程模型。

当然,各个平台基础库还是不一样的,譬如微信小程序的开发框架是 mina 框架,百度小程序的开发框架是 swan 框架,视图层都有一套自己实现的 mvvm 框架;在逻辑层相对上保持了一致,都是 JavaScript 引擎隔离出沙箱环境,无非是基于 V8 或 JavaScriptCore。

小程序是介于 Native 与 Web 二者之间的应用形态,也是在移动互联网发展过程中,流量与生态竞争下最终融合的产物。它有访问 Native API 的能力,相较于 Native 开发门槛更低,支持云端同步更新,突破了更新版本后频繁发版的困局。当然,由于从另一种角度解决了更新焦虑与容量焦虑,具备热更新能力的手机应用更容易受到大多数用户的青睐。

在性能上,相较于常见的 H5 应用,小程序由于拥有安装包缓存及独立的渲染线程,加载速度更快,直接优化了 FMP (首屏渲染过慢导致的白屏问题),使得小程序的渲染性能普适性更强。另外,采用分包与预加载减少安装包体积,按需加载也更加灵活。

参照主流小程序的引擎架构,接下来我们从基础库架构、编译原理、通信机制及生命周期一一分析。

(未完待续)