Android编译环境占用存储空间过大,有以下优化办法
1.浅克隆(节省300g以上 缺点更新代码每次都需要重做)
浅克隆是仅获取目标仓库的一个或几个最近的提交记录及其关联的数据,而不是完整的历史记录。浅克隆会创建一个包含有限历史深度的本地副本。
repo init --no-repo-verify -u ssh://username@xx.xxx.xxx.22:xxx/manifest_aosp -m android_platform.xml --depth=1
假如对已repo init 的环境,需要将未提交到远程的文件全部处理掉,接下来操作会丢失本地代码。
- 将.repo文件夹删除
- 再执行上面repo init
到此就和正常搭建编译环境操作一致,继续操作可参照正常环境搭建文档
出问题时将出问题的部分删除重新repo sync,也可强制repo sync --force-sync:
rm -rf xxx/xxxx
rm -rf .repo/project-objects/<project-hash>/xxxx.git
针对想要某个子模块不需要浅克隆,需要完整的提交记录则可以
- 进入.repo/projects/目标子模块.git(从目标目录进.git也可以)
- 输入git fetch --unshallow
- 回到平台的目录下repo start <branch_name> module_name
2.清理repo缓存(节省60g以上)
- repo forall -c ‘git gc --aggressive’
- repo sync -c 可以带上
-c
参数进行更严格的同步,尝试压缩refs并清除旧的packs
3.软链接(不节省)
将编译输出的out文件夹放置到足够空间的其他盘中,软链接方式链接到指定目录下