You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native使用的C++/Java图形库是什么?

React Native 对应 Flutter Skia 的图形渲染方案说明

首先要明确核心架构差异:Flutter 是完全自绘的跨平台引擎,全平台统一打包 Skia(后续迭代替换为 Impeller)作为渲染底层,直接光栅化绘制到屏幕,不依赖系统原生控件。而 React Native(下文简称 RN)从初始设计就走「映射原生控件」的路线,不存在和 Skia 完全对等的、跨平台统一内置的独立图形渲染库,这也是你读源码时逻辑零散、找不到统一渲染层的核心原因。

默认渲染链路的平台实现

你在源码中找到的android.graphics.Canvas就是安卓端的实际绘制载体,RN 默认渲染逻辑完全依托系统自带的渲染能力,没有独立封装渲染引擎:

  • 安卓端:所有 RN 声明的组件(View、Text、Image 等)最终都会映射为安卓原生 View 体系下的对应实例,布局计算完成后,直接调用系统提供的android.graphics.Canvas完成绘制,最终走安卓系统自身的 HWUI 硬件加速管线完成光栅化上屏,RN 层不接管最终的像素绘制步骤。
  • iOS 端:对应依托系统自带的 Core Graphics(Quartz 2D)、Core Animation 框架,RN 组件映射为 UIKit 的 UIView 子类,最终由 iOS 系统原生渲染管线完成上屏,RN 同样不内置独立的2D渲染库。

对齐 Skia 逻辑的自绘方案

RN 官方默认链路没有内置统一自绘引擎,但生态和官方迭代中已经出现了和 Flutter Skia 渲染逻辑完全对齐的实现:

  • 新架构 Fabric 渲染层:仅重构了组件挂载、更新、布局的通信逻辑,把旧架构的异步桥接替换为基于 JSI 的同步可中断更新,底层最终还是调用各平台原生画布API,没有替换为独立跨平台渲染引擎。
  • react-native-skia:是目前最接近 Flutter Skia 渲染逻辑的生产可用方案,直接把 Skia 源码编译进 RN 各端的原生二进制中,跳过原生控件映射逻辑,直接通过 Skia 完成自绘,性能表现和 Flutter 自绘链路基本对齐,目前广泛用于 RN 端的高性能自定义绘制、复杂动画、图形编辑类场景。
  • 其余类似react-native-svg、Reanimated 绘制类能力,本质还是桥接各平台系统自带的画布API实现,不属于独立跨平台渲染引擎。

你觉得 RN 引擎实现比 Flutter 难理解是非常正常的:Flutter 的渲染链路是完全垂直闭环的,从 Dart 层组件构建、布局、绘制,到 C++ 层引擎的光栅化、上屏,全链路由引擎自身控制,分层清晰没有外部依赖。而 RN 的渲染链路是多段拼接的:JS/TS 层负责组件描述和业务逻辑,JSI/桥接层负责跨语言通信,最终的绘制、光栅化、上屏全量交给各平台原生系统框架完成,链路横跨JS runtime、跨语言通信层、原生系统渲染管线多个独立模块,自然理解门槛更高。

内容的提问来源于stack exchange,提问作者Yahia Zaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:45:40