如何使用React Native开发Android instant app?
React Native 集成 Android Instant App 操作方案
前置说明
你现有可正常运行的原生Instant App模块和完整RN项目的前提下,按以下步骤操作即可完全用JS开发Instant App的功能,无需额外编写原生业务代码:
操作步骤
- 第一步:配置instantapp模块依赖
打开instantapp/build.gradle,把原有app模块里所有React Native相关的依赖、编译配置全部同步到instantapp模块的build.gradle中,注意不需要的原生依赖全部移除,避免体积超出Instant App的15MB大小限制。 - 第二步:配置JS打包规则
JS代码修改完成后,执行以下命令将RN打包生成产物同步到instantapp模块:
npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output instantapp/src/main/assets/index.android.bundle --assets-dest instantapp/src/main/res/
如果你的RN入口文件不是index.js,把命令里的entry-file参数对应修改即可。
- 第三步:配置Instant App入口Activity
修改instantapp模块的入口Activity代码,配置RN渲染逻辑:继承ReactRootView和ReactInstanceManager,指定加载本地assets里的bundle文件,不需要额外写原生业务逻辑,所有UI和交互都可以在JS侧实现。 - 第四步:体积裁剪优化
开启instantapp模块的ProGuard混淆,添加RN官方的混淆规则,移除所有未使用的RN原生模块、第三方原生SDK,确保最终打出来的Instant App包体积小于15MB。 - 第五步:调试运行
修改JS代码后重新执行第二步的打包命令,再在Android Studio中选择instantapp模块直接运行调试即可,功能验证通过后可以正常打Instant App的正式包。
注意事项
Instant App对权限、体积限制较严格,不要使用需要申请特殊权限的RN功能,也不要引入带大量原生代码的RN第三方库,避免出现兼容性问题或者体积超出限制无法运行。
内容的提问来源于stack exchange,提问作者s-hunter
相关产品推荐
相关产品推荐

