Android 的预构建 Expo 模块

编辑页面

了解预构建 Expo 模块如何将你机器上的 Android 构建时间最多缩短 25%。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

在构建 React Native 应用时,较长的构建时间会拖慢你的开发工作流并降低生产力。每当你对代码进行更改时,都可能需要等待构建过程完成,这会逐渐累积成相当可观的延迟。

Expo 提供了适用于 Android 的预构建 Expo Modules,以解决这一痛点。你的项目无需在每次构建时都从头编译 Expo Modules 源代码,而是可以使用这些模块的预编译版本,从而加快构建时间。

优势

  • 更快的本地开发:本地机器上的 Android 构建时间最多可减少 25%
  • 更好的开发体验:开发迭代过程中的等待时间更少
  • 自动优化:新项目开箱即用

预构建的 Android 版 Expo Modules 如何工作

在项目的 Android 构建过程中,请留意构建输出中包名旁边的 [📦] 表情符号前缀。这表示这些包使用的是预构建版本,而不是从源代码编译。

例如,在使用 SDK 53 的默认模板创建项目后,运行 npx expo run:android 命令时,你会注意到已预编译的包旁边带有 [📦 package-name 前缀:

配置

使用任一可用的 Expo 模板 创建的项目无需任何配置步骤

选择不使用预构建的 Expo Modules

你可以选择不使用预构建模块。当你需要自行修改模块源代码时,可能会需要这样做。在这种情况下,你可以通过向 package.json 文件中添加 buildFromSource 来配置 Expo Autolinking 配置:

package.json
{ "name": "your-app-name", "expo": { "autolinking": { "android": { "buildFromSource": [ ".*" ] } } } }

选择性排除

你也可以通过指定单个包名而不是通配符 ".*",来选择性地排除特定模块,同时保留其他模块使用预构建:

package.json
{ "name": "your-app-name", "expo": { "autolinking": { "android": { "buildFromSource": [ "expo-camera", "expo-web-browser", "expo-linking", ] } } } }

注意事项

  • 性能提升可能会因你的硬件配置而有所不同
  • 目前 EAS Builds 上的改进较为有限,但为未来的缓存机制奠定了基础