Android emulators are generally available as of Orka 4.0, on Apple silicon nodes only. They were introduced as early access in Orka 3.7.0-alpha. For a conceptual overview, connection steps, and known limitations, see Android emulators on Orka.
Understanding Orka emulators
An Orka emulator is an Android emulator (AVD) that runs on the same physical host node as a macOS VM, reachable from inside that VM over an ADB relay bridge. Emulators are Apple silicon only: Apple silicon does not support nested virtualization, so the emulator runs as a host-level process rather than inside the VM. An emulator’s lifecycle is tied to its paired VM. Deleting the VM automatically cleans up its emulators. In Orka 4.0, if the paired VM stops or fails, the emulator fails with the reasonPairedVMStopped and its ports are released. You can also delete an emulator manually before deleting the VM.
If --namespace is not set, emulator commands use your default namespace: ORKA_DEFAULT_NAMESPACE if it’s set, then the namespace of the orka context, then orka-default. See Which namespace a command uses. The aliases for orka emulator are emu, emus, and emulators.
Emulator commands
orka emulator deploy
Deploy an Android emulator paired with a running Orka VM. The emulator runs on the same host as the VM you specify with--vm.
Describe the emulator either with --platform and --image-type, or with --config, which takes those settings from an emulator configuration. Any of --platform, --image-type, and --device-profile that you set alongside --config takes precedence over the configuration.
Platform, device profile, and image type values pass straight through to the Android SDK’s avdmanager and sdkmanager tooling, so any combination those tools support works on a best-effort basis. The only hard constraint is architecture: only platforms with an ARM-native system image are supported, since the emulator runs directly on the Apple silicon host. The platform, system image, and device profile can’t be changed after the emulator is created. To change them, delete the emulator and deploy a new one.
Deploying an emulator waits until it’s running, or until the timeout elapses. A timeout is not necessarily a failure: the emulator may still be
Pending while its AVD boots. Run orka emulator list to check its status.AVD_NAME, Orka generates a unique name that starts with emu-. If you provide a name that’s already in use, the emulator isn’t deployed, unless you also set --generate-name.
Commonly used values:
- Platforms:
android-35,android-36,android-37.0. Use the name the Android SDK uses, including a minor version where the SDK has one. - Device profiles:
pixel_8,pixel_9,pixel_tablet - Image types:
google_apis,google_apis_playstore,default
relayIp and relayPort in JSON output). Always use these values to connect over ADB rather than a hardcoded IP or port. See Android emulators on Orka for connection steps.
gRPC endpoint
When you deploy with--grpc, the emulator also starts its gRPC endpoint, so a gRPC client can drive the emulator or stream its display. The endpoint is reachable from the paired VM at the relay IP, on the port in the GRPC-PORT column of orka emulator list. ADB uses the RELAY-PORT column.
Like the ADB endpoint, the gRPC endpoint speaks plaintext gRPC over HTTP/2 with no TLS and no authentication, and only VMs on the same host can reach it. To reach it from elsewhere, forward the port through the paired VM.
First deploy on a node may be slower than later ones: Android SDK components (roughly 2 to 4 GB per platform and image type pair) download at deploy time if not already cached on the host node.
orka emulator list
Show basic or extended information about Android emulators. With no names, lists every emulator in the namespace. Syntax:NAME, VM, STATUS, RELAY-IP, RELAY-PORT, GRPC-PORT, NODE, and AGE. GRPC-PORT is empty for an emulator deployed without gRPC.
Use this command to check emulator status (Pending, Running, or Failed) after a deploy times out.
orka emulator delete
Delete one or more Android emulators and free their resources on the node.Manual delete is only needed to remove an emulator before its paired VM is deleted. Deleting the VM cleans up its emulators automatically.
Emulator configuration commands
Requires Orka 4.0 or later.
--config instead of repeating the same flags in every pipeline.
All emulator configurations reside in the orka-default namespace and are available to every user and service account with access to orka-default. Orka copies the configuration’s settings into the emulator when it’s deployed, so changing or deleting a configuration never affects emulators that are already running.
The alias for orka emulator-config is orka emc.
orka emulator-config create
Create an emulator configuration. The platform and system image type are required. The configuration name must:- Not exceed 63 characters
- Consist of lowercase alphanumeric characters, dashes (-), or dots (.)
- Start and end with a lowercase alphanumeric character
- Be unique in the cluster
orka emulator-config list
Show basic or extended information about emulator configurations. With no names, lists every configuration. Syntax:NAME, PLATFORM, IMAGE-TYPE, DEVICE-PROFILE, GRPC, and AGE.

