Urgent.News

What's breaking now, across thousands of outlets.

Tech

I built a cross-platform Android emulator manager with Tauri 2 + Rust — no Android Studio required

I got tired of three things at once: the Android emulator CLI is tedious, Android Studio is a multi-gigabyte install for just running AVDs, and every decent alternative is either closed-source or expensive. So I built Enmulator — a desktop app that manages Android Virtual Devices end to end, ships on Windows/macOS/Linux, and doesn't need Android Studio installed. It's Tauri 2 on the backend…

Android emulator development can be cumbersome, with Android Studio consuming large disk space and being unnecessary for running AVDs. Enmulator, a cross-platform desktop app, simplifies this process by managing Android Virtual Devices end-to-end. Built using Tauri 2 on the backend (Rust, 13 modules), React 18 on the frontend, and released under the GPLv3 license, Enmulator doesn't require Android Studio installation.

Key features include creating, starting, stopping, cloning, and deleting AVDs, as well as batch operations across multiple devices. Pre-loaded device profiles cover 16 brands, and the app offers device identity spoofing, root capabilities, per-device proxy, GPS mocking, screen recording, clipboard sync, live logcat, and a split-panel file explorer.

An added benefit is a headless REST API, enabling integration with CI or scripts. Tauri was chosen over Electron due to its lightweight nature, using the OS webview instead of bundling Chromium, resulting in smaller installer sizes and lower idle memory usage. The Rust backend handles adb calls, which are blocking, while moving them off the main thread with plain std::thread to maintain UI responsiveness.

The architecture consists of separate modules for SDK location, AVD management, emulator process handling, adb shell wrappers, fingerprint spoofing, build.prop patching, GPS, clipboard, screen recording, logcat streams, and the REST layer. The frontend features a create wizard, per-device cards, an identity panel, a file explorer, and quick actions, with state managed by the backend and UI commands sent over Tauri's IPC.

Challenges included developing reliable fingerprint spoofing and handling root integration via rootAVD, which patches the ramdisk in the system image for all AVDs using that image. Windows users may encounter console windows during adb/emulator spawning, which can be resolved by using the CREATE_NO_WINDOW flag. The project is a solo effort, and some advanced features may be rough around the edges.

Download the installers from the releases page, report issues via issues, and support the project by starring the repository.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Also reported by 1 other outlet

Read the original at dev.to →

More in Tech

React Performance Debugging: Find and Fix Unnecessary Re-Renders with Real Examples

Have you ever clicked a button in a React application and noticed that components you didn't touch were rendering again? Maybe a dashboard feels sluggish when updating a counter.

  • Unnecessary re-renders cause sluggish React performance
  • Four common causes: props/state changes, parent rendering, consumed context, external subscriptions
  • Memoize unstable object references with useMemo to fix re-renders

More from Thursday 15 October →