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

105 阅读3分钟

青训营笔记.png

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

一、重点内容介绍:

1、什么是跨端
2、跨端方案介绍

二、详细知识点

1、什么是跨端

跨端的背景

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

跨端具有以下痛点

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

跨端的目标

    1. 多端一致性,研发效率高,学习成本低
    1. 用户体验好,稳定性高
    1. 支持动态化和动态下发,满足业务需要

2、跨端方案介绍

Hybrid 方案

  • 基于 WebView 渲染,通过 JS Bridge 把一部分系统能力开放给 JS 调用
  • Webview容器的工作原是基于Web技术解决实现界面和功影,通过将原生的接口封装、暴露JavaScript调用。
  • 这样的优势是,对于前品开发者比较友好,可以很快的实现页面跨端,同时保留调用原生的能力。

原生渲染方案

  • 使用 JS 开发,通过中间层桥接后使用原生组件来渲染 UI 界面.
  • 在 Android 开发中是使用 Kotlin 或 Java 来编写视图;
  • 在 ios 开发中是使用 Swift 或 Objective-C 来编写视图
  • 在 React Native 中,则使用 React 组件通过 JavaScript 来调用这些视图

原生渲染方案 - React Native

  • React Native 是一个由 Facebook 于 2015 年9 月发布的一款开源的 JavaScript 框架.
  • 它可以让开发者使用 JavaScript 和 React 来开发跨平台的移动应用
  • React Native 的思路是最大化地复用前端的生态和 Native 的生态,和 WebView 容器的最大区别在于 View 的染体系.
  • React Native 抛弃了低效的浏览器内核渲染,转而使用自己的 DSL 生成中间格式,然后映射到对应的平台,相对 WebView 容器,体验会有一定的提升。
  • React Native 主要有JSI、Fabric、TurboModules 组成.

自渲染方案

  • 利用 Skia 重新实现渲染管线,不依赖原生组件
  • Flutter 是 Google 在 2018 年世界移动大会公布的开源应用开发框架,仅通过-套代码库,就能构建精美的、原生平台编译的多平台应用。

小程序方案

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

小结

通过今天课程的学习,我了解了什么是跨端,跨端出现的原因,以及他用于解决的业务痛点。
我还了解到了跨端的各种主流实现方案。
随着端越来越多,跨端的需求会越来越强烈,跨端技术方案也会不断迭代,不过我们的核心目标仍然是 write once, run anywhere。