Created
April 7, 2026 15:18
-
-
Save HereOrCode/a391021e6d6afaace20ab27493983be4 to your computer and use it in GitHub Desktop.
Completely remove Android Studio, SDK, emulators, Gradle caches, etc.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # | |
| # Completely remove Android Studio, SDK, emulators, Gradle caches, etc. | |
| # ⚠️ This operation is irreversible! Back up important projects before running. | |
| # | |
| # Usage: chmod +x cleanup_android_en.sh && ./cleanup_android_en.sh | |
| # | |
| set -euo pipefail | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| NC='\033[0m' | |
| echo -e "${RED}╔══════════════════════════════════════════════════╗${NC}" | |
| echo -e "${RED}║ ⚠️ Android Studio Full Uninstall Script (macOS) ║${NC}" | |
| echo -e "${RED}║ This will delete: ║${NC}" | |
| echo -e "${RED}║ - Android Studio application ║${NC}" | |
| echo -e "${RED}║ - Android SDK / NDK / CMake ║${NC}" | |
| echo -e "${RED}║ - AVD emulator images ║${NC}" | |
| echo -e "${RED}║ - Gradle caches and daemons ║${NC}" | |
| echo -e "${RED}║ - Kotlin / Maven / Google caches ║${NC}" | |
| echo -e "${RED}║ - Android Studio config/preferences/plugins/logs║${NC}" | |
| echo -e "${RED}╚══════════════════════════════════════════════════╝${NC}" | |
| echo "" | |
| # ---------- Calculate disk usage ---------- | |
| echo -e "${YELLOW}Calculating disk usage...${NC}" | |
| dirs_to_check=( | |
| "/Applications/Android Studio.app" | |
| "$HOME/Library/Android" | |
| "$HOME/.android" | |
| "$HOME/.gradle" | |
| "$HOME/Library/Caches/Google/AndroidStudio*" | |
| "$HOME/Library/Application Support/Google/AndroidStudio*" | |
| "$HOME/Library/Preferences/com.google.android.*" | |
| "$HOME/Library/Preferences/com.android.*" | |
| "$HOME/Library/Logs/Google/AndroidStudio*" | |
| "$HOME/Library/Caches/com.google.android.*" | |
| "$HOME/.konan" | |
| "$HOME/.m2/repository/com/android" | |
| "$HOME/.m2/repository/com/google/android" | |
| "$HOME/.m2/repository/io/github/jamaismagic" | |
| "$HOME/.m2/repository/org/jetbrains/kotlin" | |
| "$HOME/.m2/repository/org/jetbrains/compose" | |
| "$HOME/.m2/repository/androidx" | |
| ) | |
| total_bytes=0 | |
| for pattern in "${dirs_to_check[@]}"; do | |
| # shellcheck disable=SC2086 | |
| for d in $pattern; do | |
| if [ -e "$d" ]; then | |
| size=$(du -sk "$d" 2>/dev/null | awk '{print $1}') | |
| size_mb=$((size / 1024)) | |
| printf " %-60s %s MB\n" "$d" "$size_mb" | |
| total_bytes=$((total_bytes + size)) | |
| fi | |
| done | |
| done | |
| total_gb=$(echo "scale=2; $total_bytes / 1048576" | bc 2>/dev/null || echo "$((total_bytes / 1048576))") | |
| echo "" | |
| echo -e "${YELLOW}Estimated space to free: ${RED}~${total_gb} GB${NC}" | |
| echo "" | |
| # ---------- Confirm ---------- | |
| read -rp "$(echo -e ${RED}Delete everything listed above? This cannot be undone!${NC} [y/N]: )" confirm | |
| if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then | |
| echo "Cancelled." | |
| exit 0 | |
| fi | |
| echo "" | |
| # ---------- 1. Stop related processes ---------- | |
| echo -e "${GREEN}[1/8] Stopping Android Studio and Gradle daemons...${NC}" | |
| if command -v gradle &>/dev/null; then | |
| gradle --stop 2>/dev/null || true | |
| fi | |
| pids=$(pgrep -f "GradleDaemon" 2>/dev/null || true) | |
| if [ -n "$pids" ]; then | |
| echo "$pids" | xargs kill -9 2>/dev/null || true | |
| fi | |
| osascript -e 'quit app "Android Studio"' 2>/dev/null || true | |
| sleep 2 | |
| pids=$(pgrep -f "Android Studio" 2>/dev/null || true) | |
| if [ -n "$pids" ]; then | |
| echo "$pids" | xargs kill -9 2>/dev/null || true | |
| fi | |
| pids=$(pgrep -f "qemu-system" 2>/dev/null || true) | |
| if [ -n "$pids" ]; then | |
| echo "$pids" | xargs kill -9 2>/dev/null || true | |
| fi | |
| pids=$(pgrep -f "emulator" 2>/dev/null || true) | |
| if [ -n "$pids" ]; then | |
| echo "$pids" | xargs kill -9 2>/dev/null || true | |
| fi | |
| pids=$(pgrep -f "adb" 2>/dev/null || true) | |
| if [ -n "$pids" ]; then | |
| echo "$pids" | xargs kill -9 2>/dev/null || true | |
| fi | |
| # ---------- 2. Remove Android Studio application ---------- | |
| echo -e "${GREEN}[2/8] Removing Android Studio application...${NC}" | |
| rm -rf "/Applications/Android Studio.app" | |
| rm -rf "/Applications/Android Studio Preview.app" | |
| # ---------- 3. Remove Android SDK / NDK / AVD ---------- | |
| echo -e "${GREEN}[3/8] Removing Android SDK, NDK, emulator images...${NC}" | |
| rm -rf "$HOME/Library/Android" # SDK, NDK, cmake, emulator system images | |
| rm -rf "$HOME/.android" # AVD images, adb keys, debug keystore | |
| # ---------- 4. Remove Gradle caches ---------- | |
| echo -e "${GREEN}[4/8] Removing Gradle caches (~/.gradle)...${NC}" | |
| rm -rf "$HOME/.gradle" | |
| # ---------- 5. Remove Android Studio config and caches ---------- | |
| echo -e "${GREEN}[5/8] Removing Android Studio config, caches, logs...${NC}" | |
| # New paths (Arctic Fox+) | |
| rm -rf "$HOME/Library/Application Support/Google/AndroidStudio"* | |
| rm -rf "$HOME/Library/Caches/Google/AndroidStudio"* | |
| rm -rf "$HOME/Library/Logs/Google/AndroidStudio"* | |
| # Legacy paths (4.x and earlier) | |
| rm -rf "$HOME/Library/Application Support/AndroidStudio"* | |
| rm -rf "$HOME/Library/Caches/AndroidStudio"* | |
| rm -rf "$HOME/Library/Logs/AndroidStudio"* | |
| # Preferences | |
| rm -f "$HOME/Library/Preferences/com.google.android.studio.plist" | |
| rm -f "$HOME/Library/Preferences/com.google.android.studio"* | |
| rm -f "$HOME/Library/Preferences/com.android.tools"* | |
| # Saved Application State | |
| rm -rf "$HOME/Library/Saved Application State/com.google.android.studio.savedState" | |
| # Caches | |
| rm -rf "$HOME/Library/Caches/com.google.android.studio"* | |
| # ---------- 6. Remove Kotlin/Native and Maven Android caches ---------- | |
| echo -e "${GREEN}[6/8] Removing Kotlin/Native and Maven Android caches...${NC}" | |
| rm -rf "$HOME/.konan" | |
| # Only remove Android-related maven caches, preserving others | |
| rm -rf "$HOME/.m2/repository/com/android" | |
| rm -rf "$HOME/.m2/repository/com/google/android" | |
| rm -rf "$HOME/.m2/repository/io/github/jamaismagic" | |
| rm -rf "$HOME/.m2/repository/org/jetbrains/kotlin" | |
| rm -rf "$HOME/.m2/repository/org/jetbrains/compose" | |
| rm -rf "$HOME/.m2/repository/androidx" | |
| # ---------- 7. Remove project build caches ---------- | |
| echo -e "${GREEN}[7/8] Cleaning current project build caches...${NC}" | |
| SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" | |
| PROJECT_DIR="$(dirname "$SCRIPT_DIR")" | |
| if [ -d "$PROJECT_DIR/app" ]; then | |
| echo " Cleaning project: $PROJECT_DIR" | |
| rm -rf "$PROJECT_DIR/.gradle" | |
| rm -rf "$PROJECT_DIR/build" | |
| rm -rf "$PROJECT_DIR/app/build" | |
| rm -rf "$PROJECT_DIR/local.properties" | |
| fi | |
| # ---------- 8. Uninstall Homebrew Gradle (optional) ---------- | |
| echo -e "${GREEN}[8/8] Checking Homebrew Gradle...${NC}" | |
| if command -v brew &>/dev/null && brew list gradle &>/dev/null 2>&1; then | |
| read -rp "$(echo -e ${YELLOW}Uninstall Gradle installed via Homebrew?${NC} [y/N]: )" remove_gradle | |
| if [[ "$remove_gradle" == "y" || "$remove_gradle" == "Y" ]]; then | |
| brew uninstall gradle | |
| echo " Gradle uninstalled" | |
| fi | |
| fi | |
| # ---------- Done ---------- | |
| echo "" | |
| echo -e "${GREEN}╔══════════════════════════════════════════════════╗${NC}" | |
| echo -e "${GREEN}║ ✅ Cleanup complete! ║${NC}" | |
| echo -e "${GREEN}║ Freed approximately ~${total_gb} GB of disk space ║${NC}" | |
| echo -e "${GREEN}║ ║${NC}" | |
| echo -e "${GREEN}║ Removed: ║${NC}" | |
| echo -e "${GREEN}║ • Android Studio application ║${NC}" | |
| echo -e "${GREEN}║ • Android SDK / NDK / CMake ║${NC}" | |
| echo -e "${GREEN}║ • AVD emulator images ║${NC}" | |
| echo -e "${GREEN}║ • Gradle caches and config ║${NC}" | |
| echo -e "${GREEN}║ • Android Studio preferences/logs/caches ║${NC}" | |
| echo -e "${GREEN}║ • Kotlin/Native and Maven Android caches ║${NC}" | |
| echo -e "${GREEN}╚══════════════════════════════════════════════════╝${NC}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment