一文了解Android的build目录结构

如下图所示,在 Android 开发中,使用 Gradle 构建会生成 build 目录。这篇文章将解释 build 目录下文件的作用。

generated 文件

generated目录中包含了在构建过程中自动生成的各种文件。如下所示,常见的目录有 kspressource

bash 复制代码
build/generated
├── ksp
├── source
├── res
  • ksp目录:存放 ksp 生成的代码
  • res目录:存放自动生成的资源文件,比如使用 AGP 的 resValue 方法增加的资源值
  • source目录:存放自动生成的源代码文件,比如BuildConfig.java 文件(包含构建配置信息)等

intermediates

intermediates 目录包含了构建过程中的中间产物,例如编译后的字节码文件、资源处理后的中间文件等。如下所示,常见的目录有 apkmerged_manifest

bash 复制代码
build/intermediates
├── apk
├── merged_manifest
  • apk目录:Android studio 点击 run 之后生成的 apk 会放在build\intermediates\apk目录下
  • merged_manifest目录:最终生成的AndroidManifest.xml 会存放在这个目录。当因为多个模块之间的AndroidManifest.xml合并失败导致编译失败时,可以看看这个目录下的 AndroidManifest.xml 文件是哪里出了问题。

kotlin

如果项目使用了 Kotlin 语言,build 目录下会有 kotlin 编译相关的子目录,用于存放 Kotlin 编译过程中的产物。

output

output目录包含了构建过程的最终输出文件。如下所示,常见的目录有 apklog

bash 复制代码
build/output
├── apk
├── log
  • apk目录:在output/apk中包含的是使用 Android studio中的 Build Bundle(s)/APK(s)生成的apk文件
  • log目录:包含构建过程的日志文件,比如可以在模块的 build/outputs/logs/ 目录中查找名为 manifest-merger-buildVariant-report.txt 的日志文件。该文件记录了AndroidManifest.xml的合并过程

tmp

该目录用于存放构建过程中使用的临时文件,这些文件通常在构建完成后会被清理。

参考

相关推荐
Lei活在当下2 小时前
【业务场景架构实战】8. 订单状态流转在 UI 端的呈现设计
android·设计模式·架构
小趴菜82272 小时前
Android中加载unity aar包实现方案
android·unity·游戏引擎
qq_252924192 小时前
PHP 8.0+ 现代Web开发实战指南 引
android·前端·php
Jeled2 小时前
Android 本地存储方案深度解析:SharedPreferences、DataStore、MMKV 全面对比
android·前端·缓存·kotlin·android studio·android jetpack
2501_915918419 小时前
掌握 iOS 26 App 运行状况,多工具协作下的监控策略
android·ios·小程序·https·uni-app·iphone·webview
寒山李白10 小时前
关于Java项目构建/配置工具方式(Gradle-Groovy、Gradle-Kotlin、Maven)的区别于选择
java·kotlin·gradle·maven
2501_9159090612 小时前
iOS 混淆实战,多工具组合完成 IPA 混淆与加固(源码 + 成品 + 运维一体化方案)
android·运维·ios·小程序·uni-app·iphone·webview
*才华有限公司*13 小时前
安卓前后端连接教程
android
氦客13 小时前
Android Compose中的附带效应
android·compose·effect·jetpack·composable·附带效应·side effect