Android SDK 文件夹占用大量磁盘空间。我们是不是需要保留所有系统映像?

Posted

技术标签:

【中文标题】Android SDK 文件夹占用大量磁盘空间。我们是不是需要保留所有系统映像?【英文标题】:Android SDK folder taking a lot of disk space. Do we need to keep all of the System Images?Android SDK 文件夹占用大量磁盘空间。我们是否需要保留所有系统映像? 【发布时间】:2015-08-28 01:26:21 【问题描述】:

很多系统映像堆积在我的磁盘上的 android sdk 文件夹中。我几乎不使用模拟器。可能每 6 个月一次。我的大部分开发都是直接在设备上进行的。我想检查的是,删除系统映像(至少对于旧的 APIS,即

还有,下面看到的 google apis 文件夹。我应该为所有版本保留它还是只保留最新版本就足够了?

以上截图来自 WinDirStat 工具。 - https://windirstat.net

【问题讨论】:

谢谢! google_apis 文件夹呢....我也可以删除它们吗?这会影响我在设备上的调试吗? 如果有人感兴趣,镜像上的磁盘空间分析器称为WinDirStat。 旁注:就像在 Linux 机器上执行 du -sh* 一样简单! 在 linux 上查看最大的目录:du -m ~/src/android-sdk-linux |排序 -n|tail -100 @lijo 更新了问题 【参考方案1】:

系统映像是预装的 Android 操作系统,并且仅供模拟器使用。如果您使用真实的 Android 设备进行调试,则不再需要它们,因此您可以将它们全部删除。

删除它们的最简单方法是使用 SDK 管理器。打开 SDK Manager 并取消选中那些系统映像,然后应用。

也可以随意移除其他无用的组件(例如旧的 SDK 级别)。

【讨论】:

感谢您的详细回答 abforce ... 说明了这一点。最后一个疑问。在上面的屏幕截图中每个 android 版本中看到的 google_apis 文件夹也只需要系统映像,对吗?它们也可以删除吗? 我们可以将这些文件移动到不同的驱动器吗,如果可以,那么在移动图像后需要完成的所有设置 @sameer 您可以移动它,然后将您的 IDE 指向 SDK 管理器所在的位置。我试过一次,但它导致我的 Eclipse 每次都需要 5 分钟才能打开......删除系统映像为我节省了 40GB 的 SSD! 我的sdk管理器中有很多Android SDK Build-tools,删除旧版本可能会导致任何错误或影响性能?【参考方案2】:

您不需要保留系统映像,除非您想在桌面上使用模拟器。与它一起,您可以删除其他不需要的东西以清除磁盘空间

添加作为我自己问题的答案,因为我不得不多次向团队中的人讲述这个问题。因此,此答案可作为与其他好奇者分享的参考。

在过去的几周里,有几位同事问我如何安全地删除不需要的东西以释放磁盘空间(他们大多数是初学者)。我将他们重定向到这个问题,但他们回到我身边寻求步骤。因此,对于 android 初学者来说,这里有一个分步指南,可以安全地删除不需要的东西。

注意

不要盲目地直接从磁盘中删除您“认为”不需要占用的所有内容。我这样做过一次,不得不重新下载。 确保您拥有所有活动项目的列表,其中包含模拟器类型(如果有)和 API 级别以及继续正常工作/编译所需的构建工具。

首先,请确保您不会使用模拟器,并且会一直使用 您在物理设备上进行开发。如果您需要 模拟器,记下您需要的 API 级别和模拟器类型。 不要删除那些。其余的请按照以下步骤操作:

安全清除磁盘上 Android SDK 文件夹中不需要的东西的步骤

    打开独立 Android SDK 管理器。 要打开,请执行以下操作之一:
在android studio或eclipse中点击工具栏上的SDK Manager按钮 在 Android Studio 中,转到设置并搜索“Android SDK”。点击 Android SDK -> “打开独立 SDK 管理器” 在 Eclipse 中,打开“Window”菜单并选择“Android SDK Manager” 导航到您计算机上的 android-sdk 目录位置并运行“SDK Manager.exe”

.

    取消选中所有以“系统映像”结尾的项目。每个 API 级别都会有多个。如果您需要一些,并且已经确定列表已经选中,以免丢失它们并不得不重新下载。

.

    可选(可能有助于节省更多磁盘空间): 释放更多空间,您也可以完全取消选中不需要的 API 级别。 再次小心,以避免重新下载您实际使用的内容 在其他项目中使用。

.

    最后确保您至少有以下(检查下图)剩余的 API 级别能够与您的物理设备无缝协作。

最后,干净的 android sdk 安装组件在 SDK 管理器中应该如下所示。

【讨论】:

在 SDK 管理器中移除 系统映像 是最干净的解决方案。这至少应该有更多的赞成票,甚至是公认的答案。 感谢@Levit,这是我稍后发布的我自己的问题的答案,因为我认为人们会从了解这种方法中受益。我标记为接受的答案是那个时候真正帮助我的答案。 这很有帮助,谢谢。我建议对您的步骤进行的唯一修改是第 2 步。您要检查要删除的项目,然后单击右下角的删除包按钮。再次感谢! 非常感谢,我不知道 sdk 正在下载模拟器图像(我的 mac 一直在哭,空间不足,直到我看到这篇文章)。 考虑更新您的答案,因为较新版本的 Android Studio 现在将 Android SDK 存储在此位置:C:\Users\ username \AppData\Local\Android\Sdk。另外,不知道是我一个人还是新版Android Studio中没有Standalone Android SDK Manager。【参考方案3】:

我在 C:\Users\ggo\AppData\Local\Android\Sdk\system-images 文件夹中有 20.8 GB (6个安卓图像: - 机器人 10 - 机器人 15 - 机器人-21 - 机器人-23 - 机器人 25 - 机器人 26 )。

我已经压缩了 C:\Users\ggo\AppData\Local\Android\Sdk\system-images 文件夹。

现在只需要 4.65 GB。

到目前为止,我没有遇到任何问题......

压缩率似乎从 2/3 到 6 不等,有时甚至更多:

【讨论】:

你是怎么压缩的? 右键单击要压缩的文件夹(此处为system-images文件夹)=>属性=>高级=>启用“压缩内容以节省磁盘空间”=>确定=>应用=>选择“应用更改为此文件夹、子文件夹和文件”(应默认选中),然后单击“确定”。 (可能最好在压缩之前退出Android Studio并关闭当前正在运行的模拟器,因为某些文件可能会被锁定)。 这会影响性能,所以只对很少使用的文件这样做(不包括已经压缩的文件,如照片、视频、zip、jar 等)。【参考方案4】:

我推荐两个步骤来解决臃肿的 SDK 问题。

首先,我删除了除两个版本之外的所有 Android 版本:

    当前版本,例如6.0 Marshmallow 在撰写本文时。 此版本旨在测试和开发当前 Nexus 手机以及其他几个品牌正在运行的最新和最强大的版本。

    旧版本,例如4.04 冰淇淋三明治。 这是为了为绝大多数手机提供兼容性。您失去了较新版本的一些功能,但您获得了最低的兼容性公分母。

其次,我删除了模拟器,只保留了以上两个。我告诉它不要将完整的系统状态存储到磁盘,它确实警告你会占用大量空间,尽管它确实使启动更快。早上去泡咖啡之前先启动模拟器 :)

如果空间太大,请完全移除模拟器。从 Ebay 购买几部旧手机,它们将为您提供所需的所有测试平台。它们甚至不必功能齐全——例如,许多应用不需要 SIM 卡和蜂窝网络连接。

我的 Android 环境在我的 128 gig Macbook Air 上占用了 32 gig。不能一直这样做。总有一天他们会生产 TB 级的 Macbook Airs,但在那之前,他们必须瘦身。

【讨论】:

原始问题确实说“我的大部分开发都是直接在设备上进行的。”但对于我们所有使用模拟器的人来说,这是唯一 回答问题“我们需要保留所有系统映像吗?”。【参考方案5】:

这是我为日常 Android 开发(包括生产代码)保留的最少内容。仅包括从 API 25 到 API 27(Nougat 到 Android P)的最新版本,您可以很好地使用它。

为了进一步减少,只需保持以下任何一个版本相同,并保持较低版本,即 API 16,下载的文件相同,如下所示。

【讨论】:

【参考方案6】:

有安全删除系统映像的方法

在工具栏中进入 SDK 管理器:

进入 Android SDK:

在“SDK Platforms”选项卡中,取消选中您要卸载的平台:

点击确定并确认删除:

【讨论】:

【参考方案7】:

通过删除所有模拟器,有时内存不会减少到我们的预期。 所以在你的c盘中打开下面提到的路径

C:\Users用户名.android\avd

在这个 avd 文件夹中,您可以看到您之前创建的所有 avd。因此,您需要删除所有将删除模拟器抓取的所有未使用空间的所有 avd。比为您创建新的模拟器更有效。

【讨论】:

【参考方案8】:

除了其他答案之外,以下目录还包含 Mac 上适用于 Android Studio 2.3.3 的可删除系统映像。我能够毫无问题地删除 android-16 和 android-17 目录,因为我没有任何使用它们的模拟器。 (我保留了正在使用的 android-24。)

$ pwd
/Users/gareth/Library/Android/sdk/system-images

$ du -h
2.5G    ./android-16/default/x86
2.5G    ./android-16/default
2.5G    ./android-16/google_apis/x86
2.5G    ./android-16/google_apis
5.1G    ./android-16
2.5G    ./android-17/default/x86
2.5G    ./android-17/default
2.5G    ./android-17
3.0G    ./android-24/default/x86_64
3.0G    ./android-24/default
3.0G    ./android-24
 11G    .

【讨论】:

【参考方案9】:

在这个文件夹里有所有的模拟器图像。如果您不使用模拟器,则可以删除此文件夹。

【讨论】:

以上是关于Android SDK 文件夹占用大量磁盘空间。我们是不是需要保留所有系统映像?的主要内容,如果未能解决你的问题,请参考以下文章

记一次linux磁盘清理 - 已经删除的文件占用了大量磁盘空间

linux磁盘空间不足怎么办磁盘清理方法

修改Android Studio的SDK和虚拟机AVD存储目录,减少C盘磁盘占用

纱线缓存占用大量空间

sh 此脚本清除Docker.qcow2文件,该文件使用Docker For Mac占用大量磁盘空间。您可以指定一些您想要的Docker镜像

sh 此脚本清除Docker.qcow2文件,该文件使用Docker For Mac占用大量磁盘空间。您可以指定一些您想要的Docker镜像