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 上的改进较为有限,但为未来的缓存机制奠定了基础