A modern Java-based GUI tool to download, install, and manage Android SDK and emulators.
- Automated SDK Setup: Download and install Android SDK automatically with license agreement
- Card-Based Device UI: Modern card interface with pagination (10 devices per page)
- Smart Accordions: Auto-collapsing SDK configuration and expandable logs
- Cross-Platform: Works on Windows, Linux, and macOS
- Emulator Management: Create, start, stop, rename, and delete Android Virtual Devices (AVDs)
- Device Information: Display Android version, device type, and running status
- AVD Name Validation: Prevent invalid characters and spaces in AVD names
- Dark Theme Support: Automatically adapts to system theme (Gnome, KDE, Windows)
- Modern Architecture: Built with Java 21 and Maven
- Automated Releases: GitHub Actions pipeline for multi-platform builds
- Logging: Comprehensive logging with SLF4J and Logback
- Java 21 or higher
- Maven 3.8+ (for building from source)
- Internet connection (for SDK download)
Download the latest release from the Releases page and run:
java -jar android-emulator-manager-3.0.0.jargit clone https://github.com/NmurtasDev/AndroidEmulatorManager.git
cd AndroidEmulatorManager
mvn clean package
java -jar target/android-emulator-manager-3.0.0-jar-with-dependencies.jargit clone https://github.com/NmurtasDev/AndroidEmulatorManager.git
cd AndroidEmulatorManager
mvn clean package -Pwindowsgit clone https://github.com/NmurtasDev/AndroidEmulatorManager.git
cd AndroidEmulatorManager
jlink --output jre --add-modules java.base,java.desktop --strip-debug --compress=2 --no-header-files --no-man-pages
mvn clean package -Pwindows-standalonegit clone https://github.com/NmurtasDev/AndroidEmulatorManager.git
cd AndroidEmulatorManager
mvn clean package -Pmacos
# Output: target/AndroidEmulatorManager.app/git clone https://github.com/NmurtasDev/AndroidEmulatorManager.git
cd AndroidEmulatorManager
mvn clean package -Plinux
# Output: target/AndroidEmulatorManager/ (executable: bin/AndroidEmulatorManager)git clone https://github.com/NmurtasDev/AndroidEmulatorManager.git
cd AndroidEmulatorManager
mvn clean package -Plinux-deb
# Output: target/android-emulator-manager_3.0.0_amd64.deb| Platform | Profile | Output | Includes JRE |
|---|---|---|---|
| Windows | windows |
.exe (requires Java) |
❌ |
| Windows | windows-standalone |
.exe (standalone) |
✅ |
| macOS | macos |
.app bundle |
✅ |
| Linux | linux |
app-image | ✅ |
| Linux | linux-deb |
.deb package |
✅ |
| All | default | .jar (universal) |
❌ |
- Launch the application
- SDK Configuration (if not already configured):
- Expand the SDK Configuration accordion
- Click "Download SDK" and accept the Android SDK License Agreement
- Wait for automatic download and installation
- Create AVDs:
- Click "Create New AVD"
- Choose API level and device type
- Enter a valid name (letters, numbers, underscores, hyphens only)
- Manage Devices:
- View devices as cards showing Android version, device type, and status
- Use ▶ to start, ■ to stop, ✎ to rename, 🗑 to delete
- Navigate pages if you have more than 10 devices
- Monitor Activity:
- Click the Log accordion to view detailed operation logs
- Use "Clear" button to reset the log
- Default:
$HOME/Android/sdk(user home directory) - Custom: Use the "Sfoglia" button to select a different location
The tool follows Google's official Android SDK documentation.
AndroidEmulatorManager/
├── src/
│ ├── main/
│ │ ├── java/net/nicolamurtas/android/emulator/
│ │ │ ├── AndroidEmulatorManager.java # Main application
│ │ │ ├── service/ # Business logic
│ │ │ ├── ui/ # Swing UI components
│ │ │ └── util/ # Utilities
│ │ └── resources/
│ │ └── logback.xml # Logging configuration
│ └── test/
│ └── java/ # Unit tests
├── pom.xml # Maven configuration
└── README.md
This version introduces major architectural improvements over previous versions:
- ✅ Proper separation of concerns (UI, Service, Util layers)
- ✅ Modern Java 21 features (text blocks, records, switch expressions)
- ✅ Maven build system for dependency management
- ✅ Professional logging with SLF4J/Logback
- ✅ Security improvements (no command injection vulnerabilities)
- ✅ Better error handling and user feedback
- ✅ Unit tests for critical functionality
- ✅ Cross-platform compatibility tested on Windows, Linux (Gnome/KDE), macOS
- ✅ Card-based device interface with pagination
- ✅ Smart accordions for SDK and logs (auto-collapse/expand)
- ✅ Android SDK License Agreement dialog before download
- ✅ Real-time device info (Android version, device type, running status)
- ✅ AVD name validation to prevent errors
- ✅ Dark theme support with automatic system theme detection
- ✅ Rename AVD functionality directly from UI
- ✅ Automated releases via GitHub Actions on tag push
- ✅ Multi-platform builds (JAR, Windows EXE)
- ✅ Pre-release support for beta/RC versions
- ✅ CodeQL security scanning on every commit
This project uses automated releases via GitHub Actions. When a version tag is pushed, the pipeline automatically:
- Builds Universal JAR and Windows EXE
- Creates a GitHub Release (stable or pre-release based on tag format)
- Uploads all binaries automatically
- Generates release notes from commits
See RELEASE.md for detailed instructions on creating releases.
Quick example:
# For a stable release
git tag v3.0.0
git push origin v3.0.0
# For a pre-release (beta, RC, alpha)
git tag v3.0.0-beta
git push origin v3.0.0-betaThe pipeline detects pre-releases automatically (tags containing -) and marks them accordingly on GitHub.
Older versions (v1 and v2) are available in the OLD/ directory for reference.
- V1: Single file, saves SDK to user home
- V2: Single file, hardcoded path to
C:\Android\sdk - V3 (current): Modular architecture, card UI, accordions, automated releases, Java 21
Contributions are welcome! Feel free to open issues or submit pull requests.
MIT License - see LICENSE file for details
Nicola Murtas Adobe Experience Manager Developer 📧 [email protected] 🔗 nicolamurtas.net 🐙 GitHub
If you have suggestions, questions, or encounter any issues, please open an issue on GitHub or contact me directly.
Note: This tool requires Java 21. Tested on Windows 11, Ubuntu 22.04, and macOS Ventura.