fat-cat

小程序(微信)运行机制

小程序(以微信为例)的核心运行机制是双线程架构 + 原生桥接通信 + 生命周期管理,它将逻辑与渲染彻底分离,通过微信客户端(Native)做安全沙箱与能力调度。

一、核心架构:双线程模型(最关键)

小程序采用逻辑层 + 渲染层分离的双线程设计,区别于传统网页的单线程(JS与渲染互斥)。

1. 逻辑层(App Service)

2. 渲染层(View)

3. 通信机制:Native Bridge(原生桥)

逻辑层与渲染层不能直接通信,所有数据/事件必须通过微信客户端(Native)中转:


二、启动与生命周期(冷/热启动 + 状态流转)

1. 启动类型

2. 状态流转

  1. 前台:用户可见、可交互,JS 线程正常运行。
  2. 后台:用户退出(胶囊/返回/切微信),小程序未销毁,JS 短暂运行(约 5 秒)。
  3. 挂起:后台 5 秒后,JS 线程暂停,内存保留,无法执行代码。
  4. 销毁:长时间未用、系统内存不足时,小程序被回收,下次打开需冷启动。

3. 生命周期钩子(核心)


三、代码包与更新机制


四、与传统网页/原生 App 的关键区别

特性 传统网页 微信小程序 原生 App
线程模型 单线程(JS/渲染互斥) 双线程(逻辑/渲染分离) 多线程原生调度
DOM 操作 直接操作 document 禁止,通过 setData 驱动 原生控件直接操作
运行环境 浏览器 微信客户端(JSCore + WebView) 系统原生环境
能力边界 浏览器 API 微信开放 API(支付/定位/扫码等) 系统全能力
启动速度 依赖网络与缓存 冷启动下载包,热启动秒开 安装后本地秒开

五、性能与限制要点