小程序原理

Last Edited Time
Feb 9, 2022 07:32 AM
date
Jun 10, 2021
slug
miniapp
status
Published
tags
MiniApp
Notebook
必读系列
summary
小程序原理学习总结
type
Post
📑烧鸡同学阅读记录
已读
题目
一句话评论
Tags
URL
创建时间
- 第一阶段:真机预览 - 第二阶段:chrome 远程调试之 CDP - 第三阶段:chrome 跑 js bundle
MiniApp
Debug
Dec 22, 2022 09:38 AM
基于 Flutter 的小程序设计
Tutorial
MiniApp
Aug 23, 2022 03:34 AM
使用 flutter 编写一些组件,JS 的执行放到 V8 里
Flutter
Hybrid App
MiniApp
Jul 12, 2022 03:20 AM
跨端渲染原理
原理解析
V8
Browser
MiniApp
Canvas
Jan 29, 2022 02:37 AM
跨平台渲染引擎架构,技术选型为 skia
原理解析
Canvas
Browser
MiniApp
Cross-plantform
Jan 29, 2022 02:37 AM
混合渲染技术,小程序原理
Hybrid App
Tutorial
MiniApp
Flutter
Jan 8, 2022 09:47 AM
- w3c 小程序标准 github
MiniApp
W3C
Dec 13, 2021 02:34 AM
小程序调试原理
微信小程序架构分析 (上)
相信不少上手试用了微信小程序开发者工具的开发者都会对其实现有些疑惑, 本文试图对其架构模型进行一些解析。如有错误之处,欢迎留言指出。 本文分为以下几个部分: 微信开发者工具默认禁用了右键打开调试面板功能,我们可以修改开发者工具部分代码移除该限制。 执行完以上操作就可以右键打开页面的调试面板了,需要特别注意的是, 使用 view 页面的面板后会导致 wxml 面板不可用,touch 事件无法响应等种种问题,请慎重使用。 通过代码可以发现,在配置目录下添加 config.json 文件,然后加入{isDev:true} 可以启用开发者工具所谓的调试模式, 但是我在配置后程序无法正常启动,只好暂时先放弃这种方式。 小程序自身分为两个主要部分独立运行:view 模块和 service 模块。在开发者工具中,它们独立运行于不同的 webivew tag 中。 view 模块负责 UI 显示,它由开发者编写的 wxml 和 wxss 转换后代码以及微信提供相关辅助模块组成。 一个 view 模块对应一个 webview 组件(也就是我们常规理解的一个页面), 小程序支持同时多个 view 存在。view 模块通过 WeixinJSBridge 对象来跟后台通信。 service 模块负责应用的后台逻辑,它由小程序的 js 代码以及微信提供的相关辅助模块组成。 一个应用只有一个 service 进程,它同样也是一个页面(至少在开发者工具内如此,上线后可能运行于 WeixinJSCore
微信小程序架构分析 (上)
一起脱去小程序的外套 - 微信小程序架构解析
微信小程序的公测掀起了学习小程序开发的浪潮,天生跨平台,即用即走、媲美原生体验、完善的文档、高效的开发框架,小程序给开发者带来了很多惊喜。通过这篇文章和大家一起分析小程序的架构,分享开发经验。 1、小程序特点 2、小程序演示 视频地址: https://v.qq.com/x/page/w0353d7co6y.html 3、小程序为什么那么快 4、小程序入口 微信小程序的框架包含两部分View视图层、App Service逻辑层,View层用来渲染页面结构,AppService层用来逻辑处理、数据请求、接口调用,它们在两个线程里运行。 视图层使用WebView渲染,逻辑层使用JSCore运行。 视图层和逻辑层通过系统层的JSBridage进行通信,逻辑层把数据变化通知到视图层,触发视图层页面更新,视图层把触发的事件通知到逻辑层进行业务处理。 小程序启动时会从CDN下载小程序的完整包 视图层由 WXML 与 WXSS 编写,由组件来进行展示。 将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。 1、View - WXML WXML(WeiXin Markup Language) wxml编译器:wcc 把wxml文件 转为 js执行方式:wcc index.wxml 2、View - WXSS WXSS(WeiXin Style Sheets) wxss编译器:wcsc 把wxss文件转化为 js执行方式: wcsc index.wxss 3、View - WXSS Selectors WXSS目前支持如下选择器: 4、View - Component 小程序提供了一系列组件用于开发业务功能,按照功能与HTML5的标签进行对比如下: 小程序的组件基于Web
一起脱去小程序的外套 - 微信小程序架构解析
微信小程序技术原理分析
互联网生态演进:超级 APP + 小程序成为「轻应用时代」下的新生态。 一方面微信、支付宝等各家小程序平台遍地开花,另一方面移动开发插件化技术逐渐没落,移动应用构建的方式在悄悄的发生变化。对于企业应用形态而言,也在逐步发生变化,超级 APP(移动门户)+ 轻应用是一种新的流行趋势。微信、支付宝是互联网生态下的"移动门户",手机银行是金融典型的 ToC "移动门户"。 小程序方式构建应用是大趋势,被越来越多的企业用户看到其中的优势,构建一个跨多端平台的小程序开发平台是一种思路,帮助企业用户构建一个具备小程序能力的"移动门户"也是一种思路。本文主要调研微信小程序运行时的基本原理,从而构建一个适合我们自己平台的小程序运行框架。 小程序的渲染层和逻辑层分别由两个线程管理:渲染层的界面使用 WebView 进行渲染;逻辑层采用 JSCore 运行 JavaScript 代码。一个小程序存在多个界面,所以渲染层存在多个 WebView。这两个线程间的通信经由小程序 Native 侧中转,逻辑层发送网络请求也经由 Native 侧转发,小程序的通信模型下图所示。 小程序的双层架构思想可以追溯到 PWA,但又有所扬弃。 小程序框架与 PWA 相比,小程序的开发者可以更聚焦于业务逻辑,而无需关注静态资源的缓存。小程序包的缓存和更新机制交由小程序框架自动完成,开发者可以在适当时机通过 API 影响这一过程。小程序的渲染层由多个 WebView 组成的页面栈构成,这与 PWA 相比有着更接近移动端原生应用的用户体验。同时,小程序的开发者也能更从容地处理多页面间跳转时页面状态的变化。 类似于微信 JSSDK 这样的 Hybrid 技术,微信小程序的界面主要由成熟的 Web 技术渲染,辅之以大量的接口提供丰富的客户端原生能力。同时,每个小程序页面都是用不同的 WebView 去渲染,这样可以提供更好的交互体验,更贴近原生体验,也避免了单个 WebView 的任务过于繁重。此外,界面渲染这一块我们定义了一套内置组件以统一体验,并且提供一些基础和通用的能力,进一步降低开发者的学习门槛。值得一提的是,内置组件有一部分较复杂组件是用客户端原生实现的同层渲染,以提供更好的性能。 为什么要这么设计呢? 为了管控和安全,微信小程序阻止开发者使用一些浏览器提供的,诸如跳转页面、操作 DOM、动态执行脚本的开放性接口。将逻辑层与视图层进行分离,视图层和逻辑层之间只有数据的通信,可以防止开发者随意操作界面,更好的保证了用户数据安全。 微信小程序视图层是 WebView,逻辑层是 JS
微信小程序技术原理分析