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

101 阅读2分钟

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

本课重点概要

  1. 跨端背景
  2. 跨端定义
  3. 跨端技术方案

本课课程内容

背景

产生了越来越多的端,PC端(Windows\Mac)移动端(安卓IOS)、web端、IOT设备(车载电视、手表)

痛点

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

目标

  1. 提高研发效率,提升多端一致性
  2. 提高用户体验
  3. 支持动态化下发

技术方案

Hybrid方案

基于webview渲染,通过js bridge把一部分系统功能给JS使用

image.png

优点:

  • JavaScript编写的页面可以运行在系统自带的WebView中。
  • 对于前端开发者比较友好,可以很快地实现页面跨端
  • 同时保留调用原生的能力,通过搭建桥接层和原生能力打通

缺陷:

  • 跨端的能力受限于桥接层,当调用之前没有的原生能力时,就需要增加桥。
  • 另外,浏览器内核的渲染独立于系统组件,无法保证原生体验,渲染的效果会差不少。

原生渲染方案

使用JS开发,通过中间层桥使用原生组件渲染UI

其中广泛使用的是React Native方案:

使用React+js的移动端开发方案

在运行时,React Native 为这些组件创建相应的 Android 和 iOS 视图。由于 React Native 组件就是对原生视图的封装,因此使用 React Native 编写的应用外观、感觉和性能与其他任何原生应用一样。

image.png

自渲染方案

利用Skia重新渲染,不依赖原生

其中应用广发的是Flutter

flutter可以仅仅通过一套代码库构建精美的多平台应用

image.png

小程序方案

使用小程序DSL+JS开发,通过中间层桥调用原生能力,使用webview渲染UI

image.png

方案对比

image.png