15 KiB
Android Studio C 盘空间清理
适用系统:Windows 10/11,PowerShell。
本文结合 2026-06-30 本机实测结果整理,重点服务 Android Studio、Gradle、Android SDK 占用排查和安全清理。
一、问题背景
Android Studio 开发环境会在 C 盘积累大量文件,常见来源包括:
| 现象 | 常见原因 | 影响 |
|---|---|---|
| C 盘空间不足 | Android SDK、Gradle 缓存、Android Studio 缓存持续增长 | 无法安装新软件或更新系统 |
| 构建速度变慢 | 缓存损坏、旧版本依赖堆积 | 编译失败或反复下载依赖 |
| IDE 启动变慢 | 索引、插件、日志、缓存过多 | Android Studio / VS Code 响应变慢 |
| 模拟器占用大 | system-images、AVD 镜像、快照文件堆积 | C 盘快速膨胀 |
本机实测:
| 时间 | C 盘剩余空间 | 说明 |
|---|---|---|
| 清理前 | 10.63 GB |
C 盘接近紧张 |
| 第一批安全缓存清理后 | 15.40 GB |
释放 4.77 GB |
| 第二批 Gradle 缓存清理后 | 22.05 GB |
追加释放 6.65 GB |
二、清理原则
2.1 先扫描,后清理
清理前必须先确认:
- 当前 C 盘剩余空间。
- 哪些目录占用最高。
- 目标目录是否是缓存、临时文件或可重新下载的数据。
- 是否需要备份。
- 是否会影响当前 Android / Gradle 项目构建。
2.2 删除前确认备份
本地删除操作执行前必须明确询问:
是否先备份?
如果用户明确回复“不备份”,再执行清理。
如果目录可能包含账号数据、聊天记录、工程源码、SDK 必需组件,不应直接删除。
2.3 清理风险分级
| 等级 | 类型 | 示例 | 建议 |
|---|---|---|---|
| 低风险 | 临时文件、下载缓存、可再生安装包缓存 | Temp、npm-cache、VS Code 扩展安装包缓存 |
可直接清理 |
| 中低风险 | 构建缓存 | .gradle\caches、.gradle\daemon、.gradle\wrapper |
可清理,但下次构建会重新下载 |
| 中风险 | SDK 可选组件 | NDK、system-images、旧版 build-tools | 需要确认开发需求 |
| 高风险 | 配置、账号、聊天、项目数据 | Tencent、kingsoft、Android Studio 配置、工程目录 | 不建议手动删除 |
三、常见占用目录
3.1 Android 开发相关目录
| 目录 | 变量表示 | 说明 | 本机实测 |
|---|---|---|---|
| Android SDK | %LOCALAPPDATA%\Android\Sdk |
SDK、平台、构建工具、模拟器镜像 | 7.72 GB |
| Android Studio 缓存 | %LOCALAPPDATA%\Google\AndroidStudio2025.2.2 |
IDE 索引、插件、缓存 | 4.92 GB |
| Gradle 缓存 | %USERPROFILE%\.gradle |
Gradle 依赖、Wrapper、Daemon | 清理前约 6.5 GB |
| Android Studio 程序 | %ProgramFiles%\Android |
IDE 安装目录 | 3.09 GB |
| Android 配置 | %USERPROFILE%\.android |
AVD 配置、adb key 等 | 本机较小 |
3.2 本机当前高占用目录
清理两批缓存后,C 盘主要占用如下:
| 路径 | 占用 | 判断 |
|---|---|---|
C:\Users |
52.19 GB |
用户数据最大头 |
C:\Program Files |
22.38 GB |
程序安装目录 |
C:\Windows |
22.06 GB |
系统目录,不建议手动动 |
C:\Program Files (x86) |
5.22 GB |
32 位程序 |
C:\ProgramData |
4.28 GB |
程序公共数据 |
Administrator\AppData 仍是重点:
| 路径 | 占用 | 说明 |
|---|---|---|
AppData\Local\Android |
7.72 GB |
Android SDK |
AppData\Local\Google |
7.43 GB |
Chrome + Android Studio |
AppData\Roaming\Tencent |
3.05 GB |
微信/企微/腾讯相关数据 |
AppData\Local\Packages |
2.28 GB |
Windows 应用数据 |
AppData\Local\Microsoft |
2.28 GB |
Edge、WinGet、系统应用缓存等 |
AppData\Roaming\kingsoft |
2.06 GB |
WPS 相关数据 |
AppData\Roaming\TDAppDesktop |
1.74 GB |
腾讯文档 |
四、PowerShell 扫描命令
4.1 查看 C 盘总空间
Get-PSDrive -Name C |
Select-Object `
@{Name='UsedGB';Expression={[math]::Round($_.Used/1GB,2)}}, `
@{Name='FreeGB';Expression={[math]::Round($_.Free/1GB,2)}}, `
@{Name='TotalGB';Expression={[math]::Round(($_.Used+$_.Free)/1GB,2)}} |
Format-List
4.2 扫描 C 盘根目录占用
$rows = @()
Get-ChildItem -LiteralPath 'C:\' -Force -ErrorAction SilentlyContinue |
Where-Object { -not ($_.Attributes -band [IO.FileAttributes]::ReparsePoint) } |
ForEach-Object {
$sum = 0
if ($_.PSIsContainer) {
$sum = (Get-ChildItem -LiteralPath $_.FullName -Force -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum).Sum
} else {
$sum = $_.Length
}
if ($null -eq $sum) { $sum = 0 }
$rows += [PSCustomObject]@{
Path = $_.FullName
SizeGB = [math]::Round(($sum / 1GB), 2)
}
}
$rows | Sort-Object SizeGB -Descending | Select-Object -First 25 | Format-Table -AutoSize
4.3 扫描 Android / Gradle 相关目录
$paths = @(
"$env:LOCALAPPDATA\Android\Sdk",
"$env:LOCALAPPDATA\Google\AndroidStudio2025.2.2",
"$env:USERPROFILE\.gradle",
"$env:USERPROFILE\.android",
"$env:ProgramFiles\Android"
)
$rows = @()
foreach ($p in $paths) {
if (Test-Path -LiteralPath $p) {
$sum = (Get-ChildItem -LiteralPath $p -Force -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum).Sum
if ($null -eq $sum) { $sum = 0 }
$rows += [PSCustomObject]@{
Path = $p
SizeGB = [math]::Round(($sum / 1GB), 2)
}
}
}
$rows | Sort-Object SizeGB -Descending | Format-Table -AutoSize
4.4 扫描 SDK 子目录
$sdk = "$env:LOCALAPPDATA\Android\Sdk"
Get-ChildItem -LiteralPath $sdk -Force -ErrorAction SilentlyContinue |
Where-Object { $_.PSIsContainer } |
ForEach-Object {
$sum = (Get-ChildItem -LiteralPath $_.FullName -Force -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum).Sum
if ($null -eq $sum) { $sum = 0 }
[PSCustomObject]@{
Path = $_.FullName
SizeGB = [math]::Round(($sum / 1GB), 2)
}
} |
Sort-Object SizeGB -Descending |
Format-Table -AutoSize
4.5 扫描 Gradle 子目录
$gradle = "$env:USERPROFILE\.gradle"
Get-ChildItem -LiteralPath $gradle -Force -ErrorAction SilentlyContinue |
ForEach-Object {
$sum = 0
if ($_.PSIsContainer) {
$sum = (Get-ChildItem -LiteralPath $_.FullName -Force -Recurse -File -ErrorAction SilentlyContinue |
Measure-Object -Property Length -Sum).Sum
} else {
$sum = $_.Length
}
if ($null -eq $sum) { $sum = 0 }
[PSCustomObject]@{
Path = $_.FullName
SizeGB = [math]::Round(($sum / 1GB), 2)
}
} |
Sort-Object SizeGB -Descending |
Format-Table -AutoSize
五、安全清理清单
5.1 第一批:低风险缓存
本机已执行,实际释放 4.77 GB。
| 路径 | 清理前 | 清理后 | 风险 |
|---|---|---|---|
%LOCALAPPDATA%\Temp |
1.40 GB |
0.05 GB |
低 |
%APPDATA%\npm-cache |
1.09 GB |
0 GB |
低 |
%APPDATA%\Code\CachedExtensionVSIXs |
1.12 GB |
0 GB |
低 |
%LOCALAPPDATA%\tdappdesktop-updater |
0.43 GB |
0 GB |
低 |
%LOCALAPPDATA%\timetrack-ui-updater |
0.29 GB |
0 GB |
低 |
%LOCALAPPDATA%\obsidian-updater |
0.28 GB |
0 GB |
低 |
%LOCALAPPDATA%\@getpaseodesktop-updater |
0.21 GB |
0 GB |
低 |
5.2 第二批:Gradle 缓存
本机已执行,实际释放 6.65 GB。
| 路径 | 清理前 | 清理后 | 风险 |
|---|---|---|---|
%USERPROFILE%\.gradle\caches |
4.81 GB |
0 GB |
中低 |
%USERPROFILE%\.gradle\daemon |
0.30 GB |
0 GB |
低 |
%USERPROFILE%\.gradle\wrapper |
1.39 GB |
0 GB |
中低 |
影响:
- 下次 Android / Gradle 项目构建会重新下载 Gradle 发行包和依赖。
- 第一次构建会明显变慢。
- 依赖重新下载完成后恢复正常。
六、安全清理脚本
6.1 第一批低风险缓存
执行前请先确认:已决定不备份,且目标路径与清单一致。
$targets = @(
"$env:LOCALAPPDATA\Temp",
"$env:APPDATA\npm-cache",
"$env:APPDATA\Code\CachedExtensionVSIXs",
"$env:LOCALAPPDATA\tdappdesktop-updater",
"$env:LOCALAPPDATA\timetrack-ui-updater",
"$env:LOCALAPPDATA\obsidian-updater",
"$env:LOCALAPPDATA\@getpaseodesktop-updater"
)
foreach ($target in $targets) {
if (-not (Test-Path -LiteralPath $target)) { continue }
$resolved = (Resolve-Path -LiteralPath $target -ErrorAction Stop).ProviderPath.TrimEnd('\')
$expected = $target.TrimEnd('\')
if ($resolved -ne $expected) {
throw "Refusing to clean unexpected path: $resolved"
}
Get-ChildItem -LiteralPath $resolved -Force -ErrorAction SilentlyContinue |
ForEach-Object {
Remove-Item -LiteralPath $_.FullName -Recurse -Force -ErrorAction SilentlyContinue
}
}
6.2 第二批 Gradle 缓存
$targets = @(
"$env:USERPROFILE\.gradle\caches",
"$env:USERPROFILE\.gradle\daemon",
"$env:USERPROFILE\.gradle\wrapper"
)
foreach ($target in $targets) {
if (-not (Test-Path -LiteralPath $target)) { continue }
$resolved = (Resolve-Path -LiteralPath $target -ErrorAction Stop).ProviderPath.TrimEnd('\')
$expected = $target.TrimEnd('\')
if ($resolved -ne $expected) {
throw "Refusing to clean unexpected path: $resolved"
}
Get-ChildItem -LiteralPath $resolved -Force -ErrorAction SilentlyContinue |
ForEach-Object {
Remove-Item -LiteralPath $_.FullName -Recurse -Force -ErrorAction SilentlyContinue
}
}
6.3 清理后复查
Get-PSDrive -Name C |
Select-Object `
@{Name='UsedGB';Expression={[math]::Round($_.Used/1GB,2)}}, `
@{Name='FreeGB';Expression={[math]::Round($_.Free/1GB,2)}}, `
@{Name='TotalGB';Expression={[math]::Round(($_.Used+$_.Free)/1GB,2)}} |
Format-List
七、Android SDK 按需清理
Android SDK 不建议直接整目录删除,应优先通过 Android Studio 的 SDK Manager 管理。
菜单路径:
Tools -> SDK Manager
7.1 可按需删除的 SDK 组件
| 组件 | 路径 | 是否可删 | 判断标准 |
|---|---|---|---|
| NDK | %LOCALAPPDATA%\Android\Sdk\ndk |
按需 | 不做 JNI/C/C++/Rust/Flutter Native 时可删 |
| system-images | %LOCALAPPDATA%\Android\Sdk\system-images |
按需 | 只用真机调试时可删 |
| 旧版 platforms | %LOCALAPPDATA%\Android\Sdk\platforms |
按需 | 不维护旧 Android 版本时可删 |
| 旧版 build-tools | %LOCALAPPDATA%\Android\Sdk\build-tools |
按需 | 项目未指定旧版本时可删 |
| sources | %LOCALAPPDATA%\Android\Sdk\sources |
可选 | 不需要查看源码时可删 |
7.2 不建议手动删除的 SDK 组件
| 组件 | 原因 |
|---|---|
platform-tools |
包含 adb,真机调试必需 |
当前项目使用的 platforms |
编译目标依赖 |
当前项目使用的 build-tools |
构建依赖 |
| 当前项目使用的 NDK 版本 | Native 编译依赖 |
7.3 SDK Manager 清理步骤
- 打开 Android Studio。
- 进入
Tools -> SDK Manager。 - 在
SDK Platforms中取消不需要的旧 Android 版本。 - 在
SDK Tools中勾选Show Package Details。 - 取消不需要的旧版 Build Tools、NDK、Command-line Tools。
- 点击
Apply,由 Android Studio 执行卸载。
八、Android Studio 缓存处理
8.1 IDE 缓存目录
本机 Android Studio 缓存目录:
%LOCALAPPDATA%\Google\AndroidStudio2025.2.2
实测占用约 4.92 GB。
不建议直接删除整个目录,因为它可能包含:
- IDE 索引缓存
- 插件缓存
- 本地历史
- 项目打开记录
- 配置状态
8.2 推荐操作
优先使用 Android Studio 内置功能:
File -> Invalidate Caches...
适用场景:
- 索引异常。
- IDE 明显卡顿。
- 频繁出现缓存相关构建问题。
影响:
- Android Studio 会重建索引。
- 首次重新打开项目会慢。
- 比手动删除整个目录安全。
九、不建议直接清理的目录
| 路径 | 原因 |
|---|---|
%LOCALAPPDATA%\Android\Sdk 整目录 |
会破坏 Android 开发环境 |
%LOCALAPPDATA%\Google\AndroidStudio* 整目录 |
可能丢配置和索引状态 |
%APPDATA%\Tencent |
可能包含微信/企微聊天和账号数据 |
%APPDATA%\kingsoft |
可能包含 WPS 文档、账号、模板数据 |
%APPDATA%\TDAppDesktop |
可能包含腾讯文档本地数据 |
%ProgramFiles%\WindowsApps |
Windows 应用系统目录 |
C:\Windows\WinSxS |
系统组件存储,本机 DISM 显示不推荐清理 |
C:\Program Files\Android |
Android Studio 程序目录,清理应通过卸载器 |
十、清理决策流程
1. 先扫描 C 盘空间
|
v
2. 找到占用最高目录
|
v
3. 判断目录类型
|-- 临时文件 / 缓存 / 安装残留 -> 可列入低风险清理
|-- Gradle 缓存 -> 可清理,但提醒下次构建会变慢
|-- SDK 可选组件 -> 询问是否需要 Native / 模拟器 / 旧版本
|-- 聊天、账号、配置、工程源码 -> 不直接清理
|
v
4. 删除前确认是否备份
|
v
5. 精确校验目标路径后执行清理
|
v
6. 复查 C 盘剩余空间和目标目录残留
十一、常见问题 FAQ
Q1:清理 Gradle 后项目无法立即编译?
原因:依赖和 Gradle Wrapper 被清理,需要重新下载。
处理:
cd <项目目录>
.\gradlew.bat build
如果下载慢,检查代理、Gradle 镜像源和网络。
Q2:清理后模拟器无法启动?
原因:可能删除了 system-images 或 AVD 镜像。
处理:
Tools -> SDK Manager -> SDK Platforms / SDK Tools
重新安装对应系统镜像。
Q3:Native 项目编译失败?
原因:NDK 被删除或版本不匹配。
处理:
- 查看项目
local.properties、build.gradle或gradle.properties中指定的 NDK 版本。 - 通过 SDK Manager 重新安装对应 NDK。
Q4:能不能直接删除整个 Android SDK?
不建议。除非确定不再做 Android 开发,或者准备完整重装 Android Studio 和 SDK。
Q5:能不能清理 WindowsApps 或 WinSxS?
不建议手动清理。
WindowsApps是 Microsoft Store / Windows 应用目录。WinSxS是系统组件存储,应通过系统工具或 DISM 判断。- 本机 DISM 结果显示:
推荐使用组件存储清理:否。
十二、下一步建议
当前本机已清理低风险缓存和 Gradle 缓存,C 盘剩余空间从 10.63 GB 提升到 22.05 GB。
后续如果还要继续释放空间,建议顺序:
- 用 SDK Manager 检查 Android SDK 是否存在不用的旧版平台、Build Tools、NDK、system-images。
- 检查是否仍需要本机所有 Android Studio / Java / WSL / 360 / 腾讯文档程序。
- 对 Tencent、kingsoft、TDAppDesktop 只做软件内清理,不直接删目录。
- 对 Android Studio 执行
Invalidate Caches,不要手动删除整个配置目录。
十三、关联记录
- 本次实际清理:低风险缓存释放
4.77 GB,Gradle 缓存释放6.65 GB。 - 当前 C 盘:总计
118.24 GB,剩余22.05 GB。 - 整理依据:本机 PowerShell 扫描结果、Windows 删除安全确认流程、Android Studio / Gradle 常见缓存机制。