资讯动态

Ignite 原生 Android 工程指南:manual 工作流下的 android 目录与 CNG 取舍

发布时间:2026/9/13 4:26:45 来源:尧图企业网站定制
Ignite 原生 Android 工程指南manual 工作流下的 android 目录与 CNG 取舍【免费下载链接】igniteInfinite Reds battle-tested React Native project boilerplate, along with a CLI, component/model generators, and more! 9 years of continuous development and counting.项目地址: https://gitcode.com/GitHub_Trending/ig/ignite导读本文围绕 Ignite 官方文档 docs/boilerplate/android.md 展开系统讲解在创建新应用时选择manual工作流或执行pnpm prebuild:clean后项目根目录出现的android原生工程的结构、生成方式、与 Expo CNGContinuous Native Generation工作流的取舍以及如何用 Android Studio 调试、用 EAS 构建 Android 应用。读完本文你将掌握 Ignite 项目中 Android 原生层的来源、改法与运行调试的全流程。android 目录从哪里来manual 工作流与 prebuild在 Ignite 中创建新应用时可以选择如何管理原生代码。CLI 会在交互过程中弹出如下选择见 src/commands/new.tsVia Expos Continuous Native Generation - Recommended [Default]即cng默认选项Manual - commits android/ios directories即manualcng是默认工作流原生目录不提交到版本库由 Expo Prebuild 在构建时按需生成。而选择manual时android以及对应的ios目录会被创建并保留在项目根目录作为可直接提交、可直接用 IDE 打开的真·原生工程。从源码看manual 工作流还会从.gitignore中移除android和ios两行使原生目录纳入版本控制见 src/commands/new.ts。即使最初选择了cng在项目根目录执行以下命令也会重新生成并保留原生目录pnpm prebuild:clean该命令在 boilerplate/package.json 中定义为npx expo prebuild --clean。--clean会删除并重建原生工程确保原生目录与当前的app.json/app.config.ts配置严格一致。这个 android 目录是什么android目录是一个已针对 React Native 预先配置好的 Android Studio 工程。它并非空壳而是由 Expo Prebuild 依据项目配置自动生成的原生 Gradle 工程包含app、gradle、build.gradle、settings.gradle等标准结构可直接被 Android Studio 打开在模拟器或真机上运行。生成它的配置来源有两个文件静态配置 boilerplate/app.json其中的android字段定义了应用标识与图标资源例如package包名com.helloworld、icon./assets/images/app-icon-android-legacy.png、adaptiveIcon前台/背景自适应图标、allowBackup: false、edgeToEdgeEnabled: true等顶层还声明了newArchEnabled: true新架构与jsEngine: hermesHermes 引擎这些都会直接影响生成的 Gradle 配置。动态配置 boilerplate/app.config.ts通过module.exports动态合并ios与plugins等字段是 TypeScript 形式的扩展配置入口。也就是说对android目录的手工改动本质上是在生成结果上打补丁。这正是下一节要讨论取舍的原因。官方推荐优先使用 Expo CNG原文档明确给出建议一般情况下推荐使用 Expo CNGContinuous Native Generation工作流详见 docs/expo/CNG.md。CNG 与手动管理原生目录相比核心优势有三点无需直接与 Gradle 和 CocoaPods 打交道原生构建脚本由 Expo Prebuild 自动维护升级成本显著降低由于没有手改的原生代码挡路React Native / Expo 升级时不会因原生层冲突而阻塞生态支持完善大量流行库都有现成的 config plugin必要时也可以自行编写 config plugin 来自动生成原生配置。而manual工作流的适用场景是你确实需要手工修改原生代码。此时保留android目录直接编辑即可。用 Android Studio 运行与调试原生代码无论目录来自 manual 工作流还是prebuild:clean它的用法与其他 React Native 项目完全一致用 Android Studio 打开项目根目录下的android文件夹等待 Gradle 同步完成选择一个模拟器AVD或连接真机点击 Run 运行应用调试原生代码时可参考 React Native 官方文档中Debugging native code一节在 Android Studio 中为 Java/Kotlin 代码设置断点、附加调试器。除此之外Ignite 在 boilerplate/package.json 中为 Android 日常开发准备了一组脚本# 在设备上安装并启动开发版应用等效 expo run:android pnpm android # 将 Metro、Reactotron 等端口反向转发到真机便于真机调试 pnpm adbadb脚本实际执行的是adb reverse tcp:9090 tcp:9090 adb reverse tcp:3000 tcp:3000 adb reverse tcp:9001 tcp:9001 adb reverse tcp:8081 tcp:8081覆盖了 Reactotron9090、常用本地服务3000/9001与 Metro8081是真机调试的常用前置步骤。用 EAS 构建 Android 应用当原生目录就绪后还可以借助 Expo Application ServicesEAS在本地或云端构建 Android 安装包。Ignite 在 boilerplate/eas.json 中预置了多种构建 profile并配套了对应的 npm 脚本脚本对应 EAS profile用途build:android:simdevelopment模拟器可用的开发版Gradle 命令为:app:assembleDebugbuild:android:devicedevelopment:device真机可用的开发版build:android:previewpreview内部分发的预览版buildType: apkbuild:android:prodproduction面向商店的生产版以本地构建开发版为例pnpm build:android:sim # 等价于 eas build --profile development --platform android --local对于原生层存在手工定制的项目这种构建流程与manual工作流天然契合——因为构建所需的正是在android目录中手工调整过的工程。小结android目录是 Ignite 项目在 manual 工作流或prebuild:clean下生成的原生 Android Studio 工程预配置齐全、可直接运行与调试。日常开发中Ignite 更推荐 CNG 工作流以避免直接维护 Gradle只有需要手工定制原生代码时才保留该目录。若需继续深入可阅读 docs/boilerplate/ios.mdiOS 侧对应工程、docs/expo/CNG.mdCNG 工作流详解或在 boilerplate/app.json 与 boilerplate/app.config.ts 中查看驱动原生生成的完整配置。【免费下载链接】igniteInfinite Reds battle-tested React Native project boilerplate, along with a CLI, component/model generators, and more! 9 years of continuous development and counting.项目地址: https://gitcode.com/GitHub_Trending/ig/ignite创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价