android sdk开启ccache加快编译时间

需求

android 4, 其sdk的git工程大小为9G,
android sdk编译时间

  1. make clean后的编译35分钟;
  2. debug与user版本交叉编译时需要先make clean,否则编译出来的镜像会启动不了,一次编译需要35分钟;
  3. 已经编译过,不make clean前提下再次编译时间8分钟。

需求是缩短编译时间,方法是开启ccache功能

方法

编译前执行以下命令

# 开启
export USE_CCACHE=1
# 设置缓存目录,可自行指定
export CCACHE_DIR=~/.ccache
# 限制缓存大小,可酌情修改,硬盘大就设置大些,比如20G或50G
prebuilts/misc/linux-x86/ccache/ccache -M 10G

# 注意如果是android10及以上,是不存在prebuilts/misc/linux-x86/ccache/ccache的,需要sudo apt-get install ccache安装,然后再多加个环境变量CCACHE_EXEC
export CCACHE_EXEC=/usr/bin/ccache
 ccache -M 10G

查看是否工作,在编译的同时,执行下命令
watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s
或者10以上为 watch -n1 -d ccache -s

输出如下,可以看到cache size那里说明了当前cache的大小,在编译过程中它会不断增加的:
cache directory /home/x/.ccache
primary config /home/x/.ccache/ccache.conf
secondary config (readonly) /etc/ccache.conf
stats zero time Wed Sep 1 07:59:53 2021
cache hit (direct) 0
cache hit (preprocessed) 0
cache miss 25534
cache hit rate 0.00 %
called for preprocessing 20
cleanups performed 0
files in cache 77113
cache size 4.0 GB
max cache size 50.0 GB

优点

  1. make clean后编译时间为8到13分钟,减少20多分钟;
  2. debug与user版本交叉编译也可使用缓存功能,编译时间8到13分钟;
  3. 已经编译过的,不make clean前提下再次编译无法使用到ccache缓存功能,暂未研究

作者:帅得不敢出门

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android编译命令包括以下几个常用命令: 1. make clean: 执行清理操作,等同于 rm -rf out/,用于清理之前的编译结果。 2. make sdk: 编译AndroidSDK,生成Android SDK的相关文件。 3. make update-api: 更新API,用于在framework API发生变动后更新API文件,API文件位于frameworks/base/api目录下。 4. make dist: 执行Build,并将输出文件拷贝到/out/dist目录,用于生成构建的输出文件。 5. make all: 编译所有内容,不管当前产品定义中是否包含。 6. make help: 显示帮助信息,列出主要的make目标。 7. make <local_target>: 编译指定的模块,<local_target>为模块的名称。 8. make clean-<local_target>: 清理指定模块的编译结果。 9. make dump-products: 显示所有产品的编译配置信息,包括产品名、支持的地区语言、包含的模块等。 10. make PRODUCT-xxx-yyy: 编译指定的产品,PRODUCT-xxx-yyy为产品的名称。 11. make bootimage: 生成boot.img,用于制作系统启动镜像。 12. make recoveryimage: 生成recovery.img,用于制作系统恢复镜像。 13. make userdataimage: 生成userdata.img,包含用户数据的镜像。 14. make cacheimage: 生成cache.img,缓存分区的镜像。 这些命令可以帮助进行Android编译和构建工作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Android编译命令](https://blog.csdn.net/zhanghao19960914/article/details/129070496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [i.mx6 Android5.1.1 build解析](https://blog.csdn.net/weixin_30725467/article/details/94764116)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值