android ccache

本文介绍了ccache缓存技术如何在Android项目中加速C和C++编译过程,通过配置环境变量和设置缓存目录及大小,实现对重复编译任务的优化。在实际应用中,此技术能显著减少编译时间,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.chinaunix.net/uid-26973277-id-3277493.html

看了embedded android发现这个ccache的使用方式,可以加速我们c与c++的编译速度原理就是中间文件的一个缓存,是同一个.o文件的话就省去再次编译的速度。

介于android中c与c++文件数量能占到刚不到一半,所以这个速度还是能省下很多的。

看到原理大概也就是知道这个东西第一次编译是没有效果的,只有开启ccache后编译一次后就会有效果。
使用方式:

添加环境变量:

 1.$ export USE_CCACHE=1

 #建立缓存目录 

 2.$ export CCACHE_DIR=~/.ccache

设置缓存大小:

3.$cd android/

4.$prebuilt/linux-x86/ccache/ccache -M 20G

You can watch ccache being used by doing the following:

$ watch -n1 -d prebuilt/linux-x86/ccache/ccache -s
### Android 缓存管理与实现 #### 文件缓存机制 在 Android 中,文件缓存主要用于存储临时数据或频繁访问的数据以提高应用程序性能。通过 `getCacheDir()` 方法可以获取到应用专属的内部缓存目录路径[^1]。 对于大尺寸文件或者不适合放在内存中的资源,则建议采用外部公共存储空间下的特定子文件夹作为缓存位置;而敏感信息应当保存于内部私有区域以免泄露风险。当设备存储空间不足时,系统有权自动清理这些地方的内容来释放可用容量。 #### 内存缓存策略 除了基于磁盘/SD卡等持久化介质外,还存在运行期间驻留 RAM 的 LRU(Least Recently Used)最近最少使用算法驱动型缓存方案。此类方式借助 `LruCache` 类轻松创建并维护有限大小的对象池,在超出设定阈值之后会优先淘汰掉最久未被触及实例以便接纳新成员加入进来。 ```java // 创建一个带有最大条目数为 100 的 LruCache 实例 final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); final int cacheSize = maxMemory / 8; // 使用最大内存的八分之一作为缓存大小 LruCache<String, Bitmap> bitmapCache = new LruCache<>(cacheSize); public void addBitmapToMemoryCache(String key, Bitmap bitmap) { if (bitmap != null && !bitmapCache.containsKey(key)) { bitmapCache.put(key, bitmap); } } ``` 如果遇到诸如分配失败之类的内部错误情况,可能会导致缓存操作出现问题[^2]。因此开发人员应该始终考虑异常处理逻辑以及合理的重试机制设计,从而增强程序健壮性和用户体验满意度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值