跨端技术 | 青训营笔记

118 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天

1. 概述

随着业务的发展,产生了越来越多的业务场景,同时随着技术的发展,产生了越来越多的端,PC端(Windows、Mac),移动端(安卓、iOS). web端、IoT设备(车载设备、手表)等,这样的背景下产生很多痛点如:

  • 各端功能几乎一直,各端需要单独配置研发人员
  • 开发,维护成本高
  • 安卓,ios发版周期长

这时就产生我们的跨端技术

跨端技术方案需要实现的目标有:

  • 学习成本低
  • 多端一致性高
  • 稳定性高
  • 性能体验好
  • 支持动态下发,满足日益增加的业务需求

2.常见的跨端技术方案

2.1 hybrid 方案

基于WebView渲染,通过JSBridge 把一部分能力开发给JS调用

QQ截图20230204171252.png

优点

对前端开发者比较友好, 可以很快地实现页面跨端,同时保留调用原生的能力,通过搭桥接层和原生能力打通

缺点

跨端能力受限与桥接层,当调用之前没有的原生能力时, 就需要增加桥, 宁外浏览器内核的渲染独立于系统组件

2.2 原生渲染方案

使用JS开发,通过中间层桥接后使用原生组件来渲染UI界面

React Native 是一个由FaceBook 于2015年9月发布的一款开源的javaScript框架,他可以让开发者使用JavaScript和React来开发跨平台的移动应用

QQ截图20230204172008.png

2.3 自渲染方案

利用Skia重新实现渲染管线, 不依赖原生组件

Fullter 是Google 在2018 年世界移动大会公布的开源应用开发框架,仅通过一套代码库,就能构建精美的, 原生平台编译的多平台应用

QQ截图20230204173245.png

2.4 小程序方案

小程序DSL + JS 开发, 通过中间层桥接后调用原生能力, 使用WebView来渲染UI界面

字节小程序是一种全新的链接用与服务器的方式,它可以在宿主(抖音,头条)内被边界的获取和传播, 同时具有出色的使用体验

QQ截图20230204173914.png

2.5 跨端技术对比

技术方案试图层逻辑层优点缺点
hybrid 方案webViewwebview JS thread1.开发成本低
2.cSS全集
3.一致性好
1.性能中等
原生渲染方案原生组件JS Engine1.性能好1.cSS子集
2.一致性一般
自渲染方案SkiaDart VM1.性能最好
2.一致性好
1.CSS子集
2. Dart生态一般
3.开发成本较高
小程序方案webview + 原生组件JS Engine1.开发成本低
2.CSS全集
3.一致性好
1.性能较好