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

68 阅读2分钟

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

背景描述:

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

痛点

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

方案目标

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

跨段技术方案介绍

hybrid方案

  • 基于WebView渲染,通过JS Bridge把一部分系统能力开放给JS调用。
  • 移动端可以打开页面,进行展示。Eg:js没有的蓝牙、文件能力,系统把这些能力开放给WebView。

自渲染方案

  • 利用Skia重新实现渲染管线,不依赖原生组件。
  • Skia:开源的渲染引擎。
  • Eg:Flutter,自定义Widgets。

原生渲染方案

  • 使用JS开发,安卓、iOS提供组件,基于原生组件渲染,通过中间层桥接使用原生组件来渲染UI界面。
    OEM widgets方案,原生组件渲染效率较WebView高,但能力较WebView有限,只能使用安卓、iOS系统提供的能力。
  • Eg:React Native。

小程序方案

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

    技术方案视图层逻辑层优点缺点
    hybrid方案webviewwebview JS thread开发成本低,css全集,一致性好性能中等
    原生渲染方案原生组件JS Engine性能好css子集,一致性一般
    自渲染方案SkiaDart VM性能最好,一致性好css子集,Dart生态一般,开发成本较高
    小程序方案webview+原生组件JS Engine开发成本低,css全集,一致性好性能较好

基于小程序跨端实践

快速开发一个小程序

小程序性能优化

  • 留住用户,提升转化率,提升用户体验。

  • 性能指标:Loading,FP首屏,LCP最大内容绘制(优化目标)。