一、小程序的运行环境
微信小程序运行在三端:iOS(iPhone/iPad)、Android 和 用于调试的开发者工具。
三端的脚本执行环境以及用于渲染非原生组件的环境是各不相同的:
在 iOS 上,小程序逻辑层的 javascript 代码运行在 JavaScriptCore 中,视图层是由 WKWebView 来渲染的,环境有 iOS8、iOS9、iOS10;
在 Android 上,
旧版本,小程序逻辑层的 javascript 代码运行中 X5 JSCore 中,视图层是由 X5 基于 Mobile Chrome 57 内核来渲染的;
新版本,小程序逻辑层的 javascript 代码运行在 V8 中,视图层是由自研 XWeb 引擎基于 Mobile Chrome 67 内核来渲染的;
在 开发工具上,小程序逻辑层的 javascript 代码是运行在 NW.js 中,视图层是由 Chromium 60 Webview 来渲染的。
注:小程序不支持使用eval执行js代码、不支持new Function创建函数
二、小程序运行机制:
1、前台/后台状态
2、启动:冷启动/热启动
3、销毁机制:进入后台一定时间或者占用系统内存过高
4、退出状态:onSaveExitState/exitState获取上次销毁之前的一些数据
三、小程序的更新机制
1、冷启动时,如果检测有新版本,则会异步下载新版本,同时启用本地版本。等下次冷启动时会运行新版本
2、最差的情况下,也会在发布之后24小时之内下载新版本到用户,用户下次打开时会先更新最新版本再打开