- Home
- Android emulators
- Cuttlefish
Cuttlefish
What it is
Cuttlefish is a configurable virtual Android device that platform and app developers can run locally or remotely to develop and validate code without depending on physical hardware. It aims to reproduce Android framework behavior closely, including custom framework implementations. Users can set the device form factor, RAM, and CPU count, then run multiple devices in parallel with concurrent test execution. Documented uses include CTS, framework compliance, continuous integration, and custom test suites.
Cuttlefish runs locally on Linux x86 and ARM64 machines, and requires host virtualization with KVM available. It registers with adb as a normal device and can be viewed and controlled in a browser through a local WebRTC webview. Google Cloud is natively supported; support for other cloud platforms is planned. Setup involves building and installing Debian host packages and downloading device images and a host package from Android Continuous Integration. Cuttlefish is free and open source. It differs from physical devices mainly at the hardware abstraction layer and in software that interacts with custom hardware.
For and against
For
- Runs multiple virtual devices in parallel
- Supports concurrent test execution
- Registers with adb as a normal device
- Can be viewed and controlled in a browser
- Free and open source
Against
- Requires a Linux x86 or ARM64 host for local use
- Host virtualization with KVM is required
- Other cloud platform support is planned, not native
- Differs from physical devices around custom hardware
The verdict
Cuttlefish provides configurable virtual Android devices for development and concurrent testing, with adb access and a browser view. Its Linux and KVM requirements, plus differences around custom hardware, matter when deciding whether it fits a test setup.
Who it suits
Cuttlefish suits platform and app developers who need virtual Android devices for development or testing without relying on physical hardware. It is also relevant to teams running concurrent tests on Linux hosts with KVM.
On the record
- Access
- Cuttlefish registers as a normal device with adb and can be viewed and controlled in a browser through a local WebRTC webview.source.android.com · read 8 Oct 2026
- ADB and remote desktop
- Cuttlefish registers as a normal device with adb and can be interacted with through remote desktop.source.android.com · read 8 Oct 2026
- Cloud
- Cuttlefish natively supports Google Cloud; support for other cloud platforms is planned.source.android.com · read 8 Oct 2026
- Cloud support
- Cuttlefish natively supports Google Cloud, while support for other cloud platforms is described as planned.source.android.com · read 8 Oct 2026
- Configuration
- Users can adjust device form factor, RAM, and CPU count.source.android.com · read 8 Oct 2026
- Desktop platforms
- Linuxsource.android.com · read 19 Sep 2026
- Framework fidelity
- Cuttlefish aims to closely reproduce Android framework behavior, including custom framework implementations.source.android.com · read 8 Oct 2026
- Host platforms
- The documentation says Cuttlefish can run locally on Linux x86 and ARM64 machines.source.android.com · read 8 Oct 2026
- Host requirement
- Cuttlefish requires virtualization with KVM available on the host machine.source.android.com · read 8 Oct 2026
- Intended use
- It helps platform and app developers develop and validate code changes without depending on physical hardware.source.android.com · read 8 Oct 2026
- Limit
- Cuttlefish differs from physical devices mainly at the hardware abstraction layer and in software that interacts with custom hardware.source.android.com · read 8 Oct 2026
- Multi-instance
- Yessource.android.com · read 19 Sep 2026
- Notable limitation
- Differences from physical devices include the hardware abstraction layer and software that interacts with custom hardware.source.android.com · read 8 Oct 2026
- Parallel devices
- Cuttlefish supports running multiple devices in parallel and concurrent test execution.source.android.com · read 8 Oct 2026
- Platform support
- Cuttlefish runs locally on Linux x86 and ARM64 machines.source.android.com · read 8 Oct 2026
- Product
- Cuttlefish is a configurable virtual Android-powered device that runs locally or remotely.source.android.com · read 8 Oct 2026
- Purpose
- It lets platform and app developers develop and validate code changes without depending on physical hardware.source.android.com · read 8 Oct 2026
- Scale
- Cuttlefish supports running multiple devices in parallel and concurrent test execution.source.android.com · read 8 Oct 2026