# Android Studio 太占空间，先分清 SDK、镜像和虚拟设备

> 找到 Mac 上的 Android SDK、系统镜像和虚拟设备，按项移除不用的内容，留下还需要的测试数据。

Published: 2026-07-01 | Updated: 2026-10-31

Android Studio 占用的空间不只有编辑器，SDK 包、Android 系统镜像和每台虚拟设备存的是不同内容，删掉以后要付出的恢复成本也不同。先找出占用最大的目录，再通过 Android Studio 移除一个不用的包或设备，不急着手动删文件夹。

## 找到 SDK 和虚拟设备

打开 **Tools › SDK Manager**，记下 **Android SDK Location**，Google 的 [SDK Manager 说明](https://developer.android.com/studio/intro/update)介绍了这个入口，如果显示的位置和下面不同，以你自己的配置为准，文中的 Android Studio 标签沿用英文界面。

Google 的[模拟器目录说明](https://developer.android.com/studio/run/emulator-commandline)把共享系统镜像和虚拟设备可写数据分开，下面是常见位置，不是让你直接删除这些上级文件夹。

```text
~/Library/Android/sdk
~/Library/Android/sdk/system-images
~/.android/avd
```

| 目录 | 保存什么 | 先做什么 |
| --- | --- | --- |
| SDK 平台和工具 | 构建 Android 应用需要的包 | 在 SDK Manager 核对已安装的包 |
| 系统镜像 | 模拟器使用的 Android 版本和变体 | 看哪些虚拟设备还需要它 |
| AVD 数据 | 测试应用、设置和设备可写存储 | 在 Device Manager 检查对应设备 |
| 快照 | 保存的模拟器状态 | 只删不再需要的状态 |

文件夹大小只能帮你决定先查哪里，不等于可删容量，如果配置的位置在别处，就去看那个位置，不用创建不存在的默认目录。

## 移除不用的 SDK 包

在 SDK Manager 查看 **SDK Platforms**，用 [**Show Package Details**](https://developer.android.com/about/versions/15/setup-sdk) 区分平台和系统镜像，Google 的[包说明](https://developer.android.com/studio/intro/update)解释了各自用途，当前项目和设备测试范围还用得到的包先留下。

1. 记下准备移除的平台或镜像，以及 API 级别和变体。
2. 只取消那个包的勾选，再点 **Apply**。
3. 确认前读一遍移除列表，其他工具保持勾选。
4. 构建一个仍在维护的项目，再启动一台保留的虚拟设备。

如果构建提示需要刚移除的平台，回 SDK Manager 装回那个包，前提是包仍可下载、网络也可用，不要因为一个旧镜像很大就删掉整个 SDK。

## 清空设备数据还是删除设备

Google 的 [Device Manager 指南](https://developer.android.com/studio/run/managing-avds)给出了项目内的 **View › Tool Windows › Device Manager** 入口，用设备菜单里的 **Show on Disk** 找到实际文件，修改数据前先点 **Stop**。

想保留虚拟设备、重置里面的用户数据，用 **Wipe Data**，不再需要这台设备才用 **Delete**。操作前导出要留的测试数据和复现材料，因为重新创建一台设备不会恢复原来的状态。

这和在 SDK Manager 卸载共享系统镜像是两回事，判断镜像是否闲置前，先看剩余设备是否还在用，一台干净的新设备不是被擦除设备的备份。

## 只清快照，不擦除设备

Google 的[快照说明](https://developer.android.com/studio/run/emulator-snapshots)介绍了快照保存的系统设置、应用状态和用户数据，在模拟器的快照面板选中不要的快照，再用删除按钮，调试还需要的命名快照先留下。

Quick Boot 默认会保存启动状态，删掉这份快照可能换来一次冷启动，之后还会生成新快照，如果某份快照留着失败测试的现场，它就是有用数据，不能因为其他快照能重建就一起删。

保存的状态启动不了时，先在 Device Manager 试 **Cold Boot**，让模拟器不加载快照启动，不把重置设备数据当成排障第一步。

## 每改一处就核对结果

回到同一组 SDK 和 AVD 目录，确认目标包或设备已经移除，再运行保留的项目和设备，通过后才处理下一项，如果空间几乎没变，按上表查看是不是另一类数据占了大头。

SDK Manager 的移除和设备重置不保证能从 Mac 废纸篓找回，不能替代的数据先留独立副本。如果手动移动了文件，Apple 的[应用移除说明](https://support.apple.com/en-us/102610)指出，废纸篓里的内容在永久删除前仍占空间，检查期间先留在那里。

Gradle 另行判断，操作放在[开发缓存清理指南](https://mole.fit/zh/blog/how-to-clear-dev-caches-mac)，Apple 工具链则看 [Xcode 存储指南](https://mole.fit/zh/blog/how-to-clean-up-xcode-mac)，不把 Android 的路径套到另一套 SDK 上。

## Mole 会列出什么

Mole Mac 的**清理**会把符合条件的 Android 项目放在**开发工具**下，**Android 模拟器快速启动快照**只针对自动生成的 `snapshots/default_boot`，不是你保存的命名快照，**未使用的 Android 系统镜像**会列出没有已知 AVD 引用的镜像，默认不勾选，留给你确认，引用信息不完整时就不列出镜像。

删除前 Mole 会重新检查模拟器的运行状态，相关模拟器还在运行，或进程检查无法确认它已经停止时，会拒绝删除这些项目，系统镜像的引用也会在移除前重新核对。默认不勾选是让你确认，不代表选中后仍会保留数据，[Android Studio 卸载指南](https://mole.fit/tested-apps/android-studio)说明了怎样移除编辑器、留下 SDK 和签名密钥。

## 常见问题

### Wipe Data 会删掉系统镜像吗？

它重置的是所选设备的用户数据，共享系统镜像在 SDK Manager 单独管理，要移除镜像先核对剩余设备。

### 能直接删除整个 AVD 文件夹吗？

先保存要留的测试数据，再用 Device Manager 逐台删除设备，直接删上级文件夹难以核对，也不能保证找回旧状态。

### 为什么模拟器占用又涨回来了？

Quick Boot 会保存新快照，测试时应用也会写入新数据，先看是哪一类目录增长再决定要不要清，反复重置也会丢掉你可能正在排查的现场。

---

Canonical HTML page: https://mole.fit/zh/blog/android-studio-sdk-emulator-storage-mac
Blog index for agents: https://mole.fit/zh/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
