前言

因为一些小伙伴的私信和交流,感觉写的这些内容对别人还是有一些帮忙,所以打算剩下的几篇更新频率会快一些争取一星期一篇,应该还可以在写4篇的内容(包含小游戏和云开发服务),可以带你初步了解搭建微信小程序引擎运行环境从头开始的一些过程

核心篇分了几篇来描述,本文先从整体系统层面来概括小程序运行环境时的架构,明白它的整体大致流程,后面会接着更新细节内容

  • 总体架构图解
  • 架构分步详解
  • 启动流程过程
  • 消息通信流程
  • 消息处理机制

可以看出大致的一个层次结构

  • 展现层 UI Simulator Layer
  • 控制层 Control Layer
  • 消息处理层 Message Handler Layer
  • 服务层 Service Layer
  • 基础设施层 Infrastructure Layer
  • 本地层 Native Layer
  • 操作系统层 OS Layer

服务层 Service Layer

  • 先处理 Message 消息,在各层之间相互转发在返回结果
    • 网络服务 API
    • 存储服务 API
    • 微信数据服务 API
    • 事件跟踪服务 API
    • 小程序配置信息服务 API
    • 渲染状态服务 API
    • 分享服务 API
    • 文件操作服务 API
    • 其他

操作系统层 OS Layer

  • 主要是运行载体平台
    • Android
    • IOS

加载小程序系统配置文件

  • 配置信息
    • navigate 样式
    • appid Tabbar 信息
    • tabbar 列表
    • tabar 样式
    • APP 信息
    • Navigator 信息
    • 场景信息
    • 其他信息

通知 Socket Server 路由信息

  • Home page webview 创建之前,发送 onAppRoute 信息
  • Home page webview 创建后,发送 onAppRouteDone 信息

Page 通知 Service 渲染状态

  • __DOMReady 消息

这个算是一个微信小程序启动经历的一些过程,只能说参考分析,比较不是开发人员不能准确说做来那些事

可能大家看了上面的内容还是比较模糊,最核心的消息事件是怎么处理的,有那些事件是怎么进行分发的,下面我还是会先来从设计层面先来分析一下

下面还是先看下一个图(整个的消息通信机制)

实现小程序编译和运行环境系列(三)_小程序开发

这个图如果你们深入研究过这块内容的应该都可以看懂service webview socket之间的关联,下面我还是会简述一下

实现小程序编译和运行环境系列(三)_小程序_02