如何解决Android模拟器每次使用后存储空间持续占满的问题
Android模拟器存储空间反复占满解决方案
问题根因
userdata-qemu.img和userdata-qemu.img.qcow2是模拟器的用户数据镜像文件,其中qcow2格式为稀疏镜像,特性是写入数据时动态扩容,哪怕你在模拟器内删除了文件,宿主机上的镜像文件也不会自动收缩可用空间,因此会随着使用时长持续变大。
之前直接覆盖镜像导致模拟器损坏的核心原因是操作时模拟器相关进程未完全退出,镜像文件存在读写锁,冷拷贝/覆盖时容易出现文件损坏。
可行解决方法
方案1:开启自动丢弃数据(适合临时测试、不需要保留运行数据的场景)
- 打开Android Studio的Device Manager,找到对应模拟器,点击右侧下拉菜单选择「编辑」
- 点击「Show Advanced Settings」滚动到页面底部,勾选「Discard data when device exits」选项后保存配置
- 后续每次关闭模拟器都会自动清空本次运行产生的所有数据,直接回到初始配置状态,不会累积镜像体积
方案2:制作初始快照(需要保留初始配置、不想反复重装APP/登录账号的首选方案)
- 完成模拟器初始配置、登录谷歌账号、安装完所有常用测试应用后,正常关闭模拟器再重新启动,等待系统完全加载完毕
- 点击模拟器右侧侧边栏的相机形状「快照」按钮,选择「拍摄快照」,命名为类似
初始配置完成的标识,等待快照生成 - 后续模拟器存储空间占满时,直接打开快照列表,选中提前保存的初始快照点击「恢复」,即可在几秒内回到初始配置状态,无需擦除数据或重新创建设备
- 额外优化:可将该初始快照设置为模拟器默认启动项,每次启动直接加载快照,完全不会产生额外存储占用
方案3:手动收缩镜像体积(需要保留当前模拟器所有数据的场景)
- 完全关闭模拟器,结束所有adb、qemu相关后台进程,确保镜像文件无进程占用
- 进入模拟器镜像存储目录:
- Windows路径:
C:\Users\你的用户名\.android\avd\你的模拟器名称.avd - Mac/Linux路径:
~/.android/avd/你的模拟器名称.avd
- Windows路径:
- 调用Android SDK自带的qemu-img工具执行收缩命令:
qemu-img convert -O qcow2 userdata-qemu.img.qcow2 userdata-qemu.img.qcow2.new - 命令执行完成后,删除原有的
userdata-qemu.img.qcow2文件,将新生成的userdata-qemu.img.qcow2.new重命名为原文件名,重启模拟器即可完成体积收缩
存储空间占用截图如下:
内容的提问来源于stack exchange,提问作者ColonD
相关产品推荐
相关产品推荐

