跳到主要内容

运行时体积

最后更新:2026 年 1 月

Web (JS)

Web 运行时体积的主要部分是 WASM 库,下表展示了相关数据。

使用 brotli -9 压缩:

运行时未压缩压缩后
canvas-lite707KB222KB
canvas1728KB567KB
webgl22179KB648KB

React

参见上方 Web (JS) 了解详情。

React Native

参见下方 AndroidApple 了解详情。

Apple

下表展示了添加 RiveRuntime 到项目后的下载和安装体积影响,计算方法为对比添加 RiveRuntime 前后的空 iOS 应用的 App Thinning 报告。

平台下载体积影响安装体积影响
Universal~1.67MB~4.66MB

Android

目标架构下载体积安装体积
ARM-v8a2.40MB7.03MB
ARM-v7a2.32MB6.00MB

组件构成

Rive Android 的二进制体积由以下组件组成:

  • Kotlin 代码编译为 DEX 文件
  • Rive Android 原生共享库 (librive-android.so)
  • C++ 标准库(共享 .so 文件 —— ARM-v8a 下载体积 394KB,安装体积 1.2MB)
  • 以下 Android 依赖:
依赖用途
Compose: runtime, ui, ui-androidCompose 支持
Lifecycle: runtime-ktx 和 runtime-composeCompose 中的生命周期感知
Startup: startup-runtime自动初始化
ReLinkerRive 原生库加载
Volley网络加载

体积分摊与 R8

上表中的体积是向空应用添加 Rive 后的数据。如果您的应用已使用 Jetpack Compose,则 Compose 依赖不会额外占用体积。C++ 标准库同样会在所有包含原生代码的依赖之间共享。

此外,编译 Release 版本时,R8 会对应用进行代码缩减,移除未使用的代码和资源,进一步减小体积影响。请确保 Gradle 文件包含 isMinifyEnabled = true

未来优化方向

以下是可以考虑用于进一步减小库体积的方案:

  • 将 Miniaudio 替换为 Oboe 实现音频支持
  • 模块化运行时的 Compose 支持,将 Compose API 与旧版 API 分离
  • 将 Volley 改为可选依赖
  • 调整 C++ 编译标志以优先体积而非速度(需进行性能测试)

第三方依赖

Rive C++ 公共运行时包含以下开源第三方依赖,它们对二进制体积有贡献:

依赖用途
HarfBuzz文本渲染
Miniaudio音频支持
SheenBidi双向文本支持
Yoga布局引擎
Luau Interpreter脚本支持