1. 为什么你的C盘总是莫名其妙变红每次打开资源管理器看到C盘飘红是不是血压瞬间飙升作为Android开发者这种情况我太熟悉了。上周我的256GB SSD又报警了一查发现.gradle文件夹居然占了60多GB这可不是个例我认识的开发同事里十个有八个都被这个问题困扰过。Android Studio在长期使用后会在系统盘悄悄囤积大量垃圾从各种Gradle版本、插件缓存到模拟器镜像文件这些东西就像家里的旧报纸明明用不上却越堆越多。最气人的是AS默认把这些都塞在C:\Users\用户名\目录下根本不管你C盘还剩多少空间。我拆解过这些空间杀手的主要构成Gradle版本仓库每个新项目都可能下载不同版本的Gradle这些版本会完整保存在wrapper/dists目录依赖缓存所有第三方库的aar/jar文件都会在caches/modules-2/files-2.1里留底构建日志daemon目录下的.log文件会记录每次构建的详细过程模拟器镜像每个AVD实例都会占用1-5GB不等删除模拟器时镜像经常残留2. 精准定位Gradle缓存分布2.1 Gradle版本仓库清理打开你的C:\Users\用户名.gradle\wrapper\dists目录你会看到类似这样的结构dists/ ├── gradle-7.4-bin │ ├── 6r7uqcg6dg1d2j2f73h8l0r5r │ └── gradle-7.4-bin.zip ├── gradle-8.0-bin │ └── 1ohdmm1d9d1v9h7k5v9v3v6v8 └── gradle-8.2-bin └── 2bm4d3d9d1v9h7k5v9v3v6v8这里每个子目录都对应一个完整的Gradle发行版。我建议保留2-3个最新版本即可比如现在主流是Gradle 8.x那7.x及以下的版本都可以安全删除。实测清理后我的dists目录从28GB降到了4GB。注意删除前确认没有项目在使用旧版本。可以在项目的gradle-wrapper.properties里查看distributionUrl配置。2.2 依赖缓存深度清理caches目录才是真正的重灾区特别是modules-2/files-2.1这个路径。这里存放着所有下载过的依赖库结构是这样的files-2.1/ ├── com.android.tools.build │ └── gradle │ └── 8.1.1 │ └── 423a2d3... ├── com.google.code.gson │ └── gson │ └── 2.8.9 │ └── 234b234... └── org.jetbrains.kotlin └── kotlin-stdlib └── 1.8.20 └── 345c345...清理策略先删除transforms-*目录构建缓存保留最近3个月的项目用到的库其他可以删除使用这个命令查看缓存大小du -h --max-depth1 ~/.gradle/caches | sort -hr3. 模拟器镜像彻底清除指南3.1 定位AVD存储位置模拟器镜像默认存放在C:\Users\用户名.android\avd。每个AVD包含两个关键文件config.ini配置文件userdata-qemu.img镜像文件常见误区是只在AS里删除AVD但镜像文件依然残留。正确做法在Android Studio的Device Manager删除AVD手动删除avd目录下对应的.avd文件夹检查android目录下的avd文件夹是否也被清理3.2 多版本镜像管理我建议使用同一API级别的通用镜像如Google APIs Intel x86 Atom而不是为每个AVD创建独立镜像。通过以下命令可以查看镜像占用空间ls -lh ~/.android/avd | grep -E \.img|\.avd4. 高级清理技巧与自动化方案4.1 使用Gradle自带清理命令在项目根目录执行./gradlew cleanBuildCache # 清理构建缓存 ./gradlew --stop # 停止所有daemon进程还可以配置gradle.properties自动清理org.gradle.cachingfalse org.gradle.daemonfalse4.2 编写自动化清理脚本创建clean_gradle.sh#!/bin/bash GRADLE_HOME~/.gradle echo 清理Gradle版本... find $GRADLE_HOME/wrapper/dists -mindepth 1 -maxdepth 1 -type d | grep -v 8. | xargs rm -rf echo 清理依赖缓存... find $GRADLE_HOME/caches/modules-2/files-2.1 -mindepth 3 -maxdepth 3 -type d -mtime 90 | xargs rm -rf echo 清理日志文件... find $GRADLE_HOME/daemon -name *.log -mtime 30 -delete设置每周自动运行chmod x clean_gradle.sh (crontab -l ; echo 0 3 * * 0 ~/clean_gradle.sh) | crontab -5. 预防空间爆仓的终极方案5.1 修改Gradle默认存储路径在环境变量中添加GRADLE_USER_HOMED:\gradle_cache或者在gradle.properties配置gradle.user.homeD:/gradle_cache5.2 使用符号链接转移目录如果不想改配置可以用mklink把.gradle目录转移到其他盘mklink /J C:\Users\用户名\.gradle D:\gradle_cache5.3 配置AVD自定义路径创建avd目录的符号链接mklink /J C:\Users\用户名\.android\avd D:\android_avd或者在创建AVD时指定自定义路径avdmanager create avd -n test -k system-images;android-33;google_apis;x86_64 -p D:\android_avd最近帮团队优化开发环境时发现一个有趣的现象90%的开发者从没清理过Gradle缓存而定期清理的开发者C盘空间至少能多出30GB。养成定期执行clean_gradle.sh的习惯后我的SSD再也没红过。记住空间就像时间挤挤总是有的——特别是当你清楚知道哪些文件可以安全删除的时候。