Android Studio Is Using 90 GB and You Wrote One App
Gradle caches, AVD disk images and a system image per API level. Android Studio has the worst space-to-usefulness ratio of any tool on a Mac, and here is how to reclaim it.
Xcode at least earns its footprint — if you build for Apple platforms you use it daily. Android Studio has the worst ratio on the machine, because most of the people carrying 90 GB for it wrote one React Native app in 2024 and have not opened it since.
Measure the damage:
du -sh ~/.gradle/caches 2>/dev/null
du -sh ~/Library/Android/sdk 2>/dev/null
du -sh ~/.android/avd 2>/dev/null
du -sh ~/Library/Caches/Google/AndroidStudio* 2>/dev/null
Gradle caches — usually 10–30 GB
Gradle caches every dependency, every build script it has compiled, and every version of the Gradle distribution itself that any project has ever requested.
du -sh ~/.gradle/*
You will typically see caches dominating, with wrapper — full Gradle distributions, ~150 MB each,
one per version any project pinned — in second place.
Safe to clear entirely:
rm -rf ~/.gradle/caches
Everything re-downloads on your next build. That build will be slow. Nothing is lost.
If you would rather be surgical, the module cache is the bulk of it and the build-script caches are the ones most likely to fix a mysterious build failure:
du -sh ~/.gradle/caches/modules-2 # downloaded dependencies
du -sh ~/.gradle/caches/build-cache-1 # cached build outputs
Old Gradle distributions are pure waste once no project references them:
du -sh ~/.gradle/wrapper/dists/*
AVDs — 8–12 GB each
Every Android Virtual Device you have created carries its own disk image, and Android Studio never suggests removing one.
du -sh ~/.android/avd/*
Delete through Device Manager inside Android Studio, or from the command line:
# List them
~/Library/Android/sdk/emulator/emulator -list-avds
# Delete one
~/Library/Android/sdk/cmdline-tools/latest/bin/avdmanager delete avd -n Pixel_6_API_34
A cheaper middle ground — wipe the accumulated data but keep the device configured:
~/Library/Android/sdk/emulator/emulator -avd Pixel_6_API_34 -wipe-data
Deleting an AVD loses whatever was installed and configured inside it: test accounts, seeded app data, granted permissions. Usually nothing, occasionally a morning’s work.
SDK system images — 1–3 GB per API level
The single largest thing under the SDK directory, and Android Studio downloads a fresh one every time you target a new API level.
du -sh ~/Library/Android/sdk/system-images/*
du -sh ~/Library/Android/sdk/platforms/*
Remove old ones through Settings → Languages & Frameworks → Android SDK → SDK Platforms, ticking “Show Package Details” so you can see individual system images rather than whole platform bundles.
Keep the image matching your minSdkVersion and your targetSdkVersion. Everything between them is
optional; everything below minSdkVersion is dead weight.
Also worth a look — the NDK, which is enormous and which most projects never use:
du -sh ~/Library/Android/sdk/ndk/* 2>/dev/null
Several gigabytes per version, and if your project has no native code you do not need any of them.
If you have stopped writing Android apps entirely
Be honest about this. Uninstalling Android Studio from Applications leaves every one of these directories behind, which is why people who removed the app years ago still find 60 GB here.
du -sh ~/.gradle ~/.android ~/Library/Android ~/Library/Caches/Google 2>/dev/null
If that total is large and you genuinely are not going back:
rm -rf ~/.gradle ~/.android ~/Library/Android
rm -rf ~/Library/Caches/Google/AndroidStudio*
rm -rf ~/Library/Application\ Support/Google/AndroidStudio*
One serious warning. ~/.android contains your debug keystore. If you have ever published an
app signed with a key stored there — some people keep release keystores in that directory too —
deleting it means you can never ship an update to that app, ever. Check before you run it:
ls -la ~/.android/*.keystore ~/.android/*.jks 2>/dev/null
Copy anything you find somewhere safe first. Debug keystores are regenerable; release keystores are not, and no amount of pleading with Google gets one back.
React Native and Flutter double it
If you came here through cross-platform tooling, you have both toolchains, plus their own caches:
du -sh ~/.gradle ~/Library/Android # Android side
du -sh ~/Library/Developer/Xcode/DerivedData # iOS side
du -sh ~/Library/Developer/CoreSimulator # iOS simulators
du -sh ~/.pub-cache 2>/dev/null # Flutter packages
du -sh ~/Library/Caches/CocoaPods 2>/dev/null # iOS dependencies
find ~ -type d -name node_modules -prune -print0 2>/dev/null | xargs -0 -n1 du -sh | sort -hr | head
One cross-platform app can reasonably account for 150 GB of tooling across those paths. This is not unusual and it is not your fault.
The rest of it
The full developer storage guide covers every source on a Mac, or go straight to DerivedData, Docker, iOS simulators and node_modules.