You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Q基线代码存储:.repo目录应在构建前后复制?是否必要?

Android Q源码本地存储与repo目录相关疑问

背景

我是Android开发及Google git-repo新手,已查阅Stack Overflow相关帖子但未解决问题。目前正在将平台提供商的Android Q必要代码下载后存储到本地网络存储,以摆脱对互联网的依赖。原本以为只需下载完成(总大小108GB)后存储即可,但发现构建成功后,.repo/目录大小从65GB增至82GB。

核心疑问

  1. 应在构建前还是构建后复制.repo目录?
  2. 考虑到我们的修改将基于该基线源码,且会存储在单独仓库中,不会推送到提供商的仓库,是否有必要复制.repo目录?
  3. .repo目录为何会增大这么多?

构建流程

#1 下载代码(此步骤后总大小108GB)
repo init ...
repo sync ...
#2 应用开发工具包补丁
#3 提取专有对象
#4 构建

构建前各目录大小(单位:MB)

408     ./libnativehelper
444     ./shortcut-fe
896     ./pdk
7648    ./platform_testing
15756   ./build
26944   ./dalvik
30028   ./sdk
44816   ./bionic
85916   ./art
87584   ./libcore
95424   ./hardware
104184  ./toolchain
151840  ./development
170412  ./device
216760  ./bootable
322228  ./vendor
411160  ./test
451172  ./developers
516392  ./system
887852  ./packages
963208  ./kernel
1456688 ./cts
1716288 ./tools
1979908 ./frameworks
8136144 ./external
27217100        ./prebuilts
67886120        ./.repo
112983332       .

构建后各目录大小(单位:MB)

4       ./disregard
408     ./libnativehelper
444     ./shortcut-fe
896     ./pdk
7648    ./platform_testing
16140   ./build
26944   ./dalvik
30028   ./sdk
44816   ./bionic
85916   ./art
87584   ./libcore
95424   ./hardware
104184  ./toolchain
151840  ./development
170420  ./device
216788  ./bootable
411160  ./test
451172  ./developers
516392  ./system
887840  ./packages
1347492 ./kernel
1456688 ./cts
1716220 ./tools
1979884 ./frameworks
2656404 ./vendor
8136032 ./external
27217036        ./prebuilts
85571884        ./.repo
153949272       ./out
287336968       .

解答

1. 构建前还是构建后复制.repo目录?

建议在构建前复制.repo目录。构建过程会生成大量临时文件、构建缓存,甚至修改repo管理的元数据,导致.repo体积无意义膨胀。构建前的.repo是纯净的基线源码仓库元数据,体积更小,更适合作为基线备份。

2. 是否需要复制.repo目录?

  • 如果后续需要基于基线重新同步、切换分支、合并上游更新,必须保留.repo——它是repo工具管理多仓库的核心,包含所有子仓库的远程地址、分支信息、提交历史等关键元数据。
  • 若仅需基于当前基线做修改,且所有修改都存到独立仓库、无需再和上游交互,可以考虑不复制,但这种方式灵活性极差,后续无法用repo工具管理源码,只能手动维护子仓库。更稳妥的方式是保留.repo备份,避免后续回溯基线或同步上游时无据可依。

3. .repo目录为何增大?

构建后.repo变大主要有三个原因:

  • 构建缓存积累:部分构建步骤会将缓存数据写入.repo/cache目录,用于加速后续构建。
  • 元数据更新:构建时可能触发repo工具更新子仓库的本地提交记录、索引信息,生成构建相关的元文件。
  • 专有对象存储:构建流程中提取的专有对象,会被repo工具纳入管理,存储到.repo的仓库对象库中,直接导致体积增加。

内容的提问来源于stack exchange,提问作者user2669989

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 14:57:17