美文网首页
原生App实现小程序框架(一)

原生App实现小程序框架(一)

作者: ArthasMay | 来源:发表于2020-12-03 11:37 被阅读0次

前言

最近几年小程序的生态越来越完善,各家的流量App也都在搭建自己的小程序生态。 抛开小程序的业务生态,单纯从技术的角度来说,小程序的远程派发和容器化的跨平台的技术实现对本人日常的架构思考和设计有很大的启示作用。
在最近的工作中,我一直思考着一种客户端容器化架构,让Flutter、Web这两种跨平台的技术实现可以运行在像简化的Docker容器中,原生App提供容器的运行时。

  • Flutter: 优点是贴近原生的渲染体验和有限的系统能力,缺点是iOS的Skia和Flutter Engine需要通过Framework的方式打包进App(动态库需要签名),不仅对包体积的影响较大,而且丧失了远程派发的能力
  • Web: 成熟多样的标准, 从Cordova、Ionic到RN和Weex这类基于web标准的跨平台技术层出不穷,最后到如今的小程序。

为什么选择实现一个简单的小程序?

  • 提供一个轻量级的可远程派发的backup的技术实现
  • 现行Web框架的再拓展(可以加强和原生的体验)

涉及的知识(iOS)

  1. JavaScriptCore(JSVM、JSContext)
  2. 渲染和逻辑分开的技术架构(WKWebView渲染、MiniProgramJSContext的逻辑执行)
  3. 对基于WebView的Hybrid框架进行优化(MessageHandler的通信优化)
  4. 客户端起本地服务提供小程序Runtime服务(本地提供Vue和wx组件的render脚本)

实现效果

小程序效果实现-gif.gif

整体架构设计

渲染和逻辑双线程架构设计

架构设计点:

  1. WebView(iOS中承载的是WKWebView)负责加载和渲染HTML或者WXML(自定义DSL的模板)。同时本人在这边是通过Vue运行时实现render和数据绑定的,所以Webview这边的JSC这条线程还运行着Vue Runtime 和Vue拓展组件。
  2. 在每个MiniProgram启动的时候二外提供了一个JSContext,对应一个新的JavaScriptCore虚拟机,用于执行MiniProgram的逻辑js
  3. WebView的JSContext,这里简称WJSC,小程序相关的Context,这里简称JSC。这里需要两个通信的Bridge:WJSCBridge负责渲染页面和Native的交互,JSCBridege负责MP运行时和原生的交互和hook生命周期


    MiniProgram容器架构设计

相关文章

  • 原生App实现小程序框架(一)

    前言 最近几年小程序的生态越来越完善,各家的流量App也都在搭建自己的小程序生态。 抛开小程序的业务生态,单纯从技...

  • 微信小程序基础教程(一)

    文章主要介绍: 框架 开发工具 原生微信小程序的目录结构 原生微信小程序的基本写法(装修中) 使用uni-app开...

  • uni-app判断各大平台的语法

    uni-app是一款强大的前端框架,它除了pc端其他都可以实现,打包原生app。手机h5页面,微信小程序, 但是有...

  • 小程序中遇到的坑

    小程序 如何去写小程序: 原生的小程序 腾讯的wepy框架 美团的mpvue框架 京东的taro框架 h5适配移动...

  • 微信小程序开发

    原生框架目录结构 pages文件夹中就是小程序的页面 app.js是项目的入口文件、全局文件 app.json文件...

  • 1、小程序开发文档-框架

    框架 小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP体验的服务。 框架提供...

  • 在原生的APP 中实现类似微信小程序的功能

    在原生的APP 中实现类似微信小程序的功能 引言: 无意间浏览群聊信息,发现了一个比较厉害的框架,引用群友的一句话...

  • 微信小程序(Mini Program)技术栈与框架简介

    关键字:微信小程序、Mini Program、技术栈、框架、WePy、MPVue 原生技术栈 原生小程序开发目录示...

  • 原生小程序和 mpvue对比(开发前)

    一.介绍 原生小程序:利用微信官方给出的框架,组件,API开发的小程序。 mpVue :利用Vue.js前端框架开...

  • 小程序的结构和配置

    1. 小程序结构目录 小程序框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的...

网友评论

      本文标题:原生App实现小程序框架(一)

      本文链接:https://www.haomeiwen.com/subject/fffiiktx.html