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

68 阅读2分钟

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

跨端技术方案目标

Hybrid方案

基于webview渲染,通过JS Bridge把一部分系统能力开放给JS调用

image.png WebViwe容器的工作原理是基于Web技术来实现界面和功能,通过将原生的接口封装、暴露给js调用,js编写的页面可以运行在系统自带的webview中。这样可以很快地实现页面跨端,同时保留了调用原生的能力,通过搭建桥接层和原生能力打通。但是,跨端的能力受限于桥接层,当调用之前没有的原生能力时,就需要增加桥。

原生渲染方案

使用js开发,通过中间层桥接后使用原生组件来渲染UI界面 原生组件:在安卓开发中使用Kotlin/java来编写视图;在IOS开发中使用Swift或Objective-C来编写视图。在React Native中,则使用React组件通过js来调用这些视图。运行时,React Native为这些组件创建相应的安卓和IOS视图。由于React Native组件就是对原生视图的封装,因此使用React Native编写的应用外观、感觉和性能与其他任何原生应用一样。将这些平台支持的组件称为原生组件。

image.png

image.png

image.png

  • JSI:一个用C++写成的轻量级框架,其作用是通过JSI,JS对象可以直接C++对象引用,并调用对应方法。有了JSI,JS和Native可以直接通信。JSI是整个架构的核心和基石,所有的一切都是建立在它上面
  • Fabric:是新的渲染系统,它将取代当前的UI Manager
  • Turbo Modules:其基本上是对这些旧的Native模块的增强,所以JS代码可以仅在需要时才加载对应的模块,这样可以显著缩短RN应用的启动时间。

自渲染方案

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

image.png

image.png

小程序方案

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

跨端技术方案对比

image.png

基于小程序跨端实践

  1. 下载小程序开发者工具
  2. 小程序开发、调试
  3. 小程序上传

性能优化意义

  1. 留住用户
  2. 提升转化率
  3. 提升用户体验

image.png