一文了解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

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

参考

相关推荐
万能的小裴同学7 小时前
Android M3U8视频播放器
android·音视频
q***57748 小时前
MySql的慢查询(慢日志)
android·mysql·adb
JavaNoober8 小时前
Android 前台服务 "Bad Notification" 崩溃机制分析文档
android
城东米粉儿9 小时前
关于ObjectAnimator
android
zhangphil10 小时前
Android渲染线程Render Thread的RenderNode与DisplayList,引用Bitmap及Open GL纹理上传GPU
android
火柴就是我11 小时前
从头写一个自己的app
android·前端·flutter
lichong95112 小时前
XLog debug 开启打印日志,release 关闭打印日志
android·java·前端
用户693717500138412 小时前
14.Kotlin 类:类的形态(一):抽象类 (Abstract Class)
android·后端·kotlin
火柴就是我12 小时前
NekoBoxForAndroid 编译libcore.aar
android
Kaede613 小时前
MySQL中如何使用命令行修改root密码
android·mysql·adb