跨端技术学习 | 青训营笔记

58 阅读2分钟

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

跨端背景

随着业务的发展,产生了越来越多的业务场景,同时随着技术的发展,产生了越来越多的端,PC端 (Windows、Mac),移动端(安卓、iOS). web端、loT设备(车载设备、手表)等
常见难点:

  • 开发成本高
  • 安卓,ios发版周期长

跨端技术方案目标

  1. 研发效率高,学习成本低,多端一致性高
  2. 用户体验好,稳定性高
  3. 支持动态下发,适用变化性需求

跨端技术方案介绍

Hybird方案

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

image.png

原生渲染方案

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

image.png

自渲染方案

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

image.png

小程序方案

使用小程序DSL+JS开发,通过中间层桥接后调用原生能力,使用webview来渲染UI界面
字节小程序
字节小程序是一种全新的连接用户与服务的方式,它可以在宿主(抖音、头条等App)内被便捷地获取和传播,同时具有出色的使用体验。

image.png

跨端方案对比

  • hybrid方案。视图层:webview,逻辑层:webview JSthread,优点:开发成本低,CSS全集,一致性好,缺点:性能中等。
  • 原生渲染方案。视图层:原生组件,逻辑层:JS engine,优点:性能好,缺点:CSS子集,一致性一般
  • 自渲染方案。视图层:skia,逻辑层:Dart VM,优点:性能最好,一致性最好,缺点:CSS子集,开发成本高
  • 小程序方案。 视图层:webview+原生组件,逻辑层:JS engine,优点:开发成本低,一致性好,CSS全集,缺点:性能不高