跨段技术概述|青训营笔记

136 阅读2分钟

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

一、跨端背景

1、背景描述:

随着业务发展,有许多业务场景也随之产生。同时随着技术的发展,许多端也随之产生:PC端(Windows、Mac、Linux),移动端(安卓、ios)、web端IoT设备 (车载设备、手表)等。

2、痛点:

在出现的平台多了之后,带来的痛点也随之多了起来。

1. 各端功能一致,但是要单独配置研发人员
2. 开发、维护成本高
3. 安卓、ios版开发周期长

二、跨段技术方案目标

1、研发效率高:学习成本低,多端一致性高
2、用户体验好: 稳定性高,性能体验好
3、动态化: 支持动态化下发,满足日益增长的业务需求

三、跨段技术方案介绍

1、Hybrid方案:
  • 简介:基于WebView渲染,通过JS Bridge把一部分系统能力开放给JS调用。
  • 视图层:webview 平台
  • 逻辑层:webview JS thread
  • 优点:开发成本低、CSS全集、一致性好
  • 缺点:性能中等

字节中许多应用都使用该方案,因为其可以高效率完成任务。

2、原生渲染方案:
  • 简介:使用JS开发,通过中间层桥接后使用原生组件来渲染UI界面。
  • 视图层:原生组件
  • 逻辑层:JS Engine
  • 优点:性能好
  • 缺点:CSS子集、一致性一般

image.png

React Native可以让开发者使用JavaScript和React去开发跨平台的移动应用。

3、自渲染方案:
  • 简介:利用Skia重新实现渲染管线,不依赖原生组件。
  • 视图层:Skia
  • 逻辑层:Dart VM
  • 优点:性能最好、一致性好
  • 缺点:CSS子集、Dart生态一般、开发成本较高 image.png

Flutter是Google发布的一个用于创建跨平台、高性能移动应用的框架。Flutter仅通过一套代码库,就能够构建原生平台渲染的多平台应用。

4、小程序方案:
  • 简介:小程序DSL+JS开发,通过中间层桥接之后调用原生能力,使用webview来渲染UI界面。
  • 视图层:webview+原生组件
  • 逻辑层:JS Engine
  • 优点:开发成本低、CSS全集、一致性好
  • 缺点:性能较好

不同方案适合于不同的场景,所以要根据应用场景来选择不同的跨端解决方案。