> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solanamobile.com/llms.txt
> Use this file to discover all available pages before exploring further.

# solana-mobile emulator

> Manage Android emulators and system images.

export const FooterDisclaimer = () => {
  return <p className="not-prose mt-16 text-center text-xs text-gray-500 dark:text-gray-400">
      Code samples on this page are subject to the{" "}
      <a className="underline underline-offset-2" href="https://www.apache.org/licenses/LICENSE-2.0">
        Apache 2.0 license
      </a>
      .
    </p>;
};

Create, start, and manage Android emulators without opening Android Studio. `emu` works as a shorthand for `emulator`.

## emulator create

Create or update an Android emulator. Run it without arguments for interactive prompts:

<CodeGroup>
  ```bash npm theme={null}
  npx solana-mobile@latest emulator create --start
  ```

  ```bash pnpm theme={null}
  pnpm dlx solana-mobile@latest emulator create --start
  ```

  ```bash bun theme={null}
  bunx solana-mobile@latest emulator create --start
  ```
</CodeGroup>

| Option                     | Description                                               |
| -------------------------- | --------------------------------------------------------- |
| `--data-size <size>`       | Data partition size                                       |
| `--device <device>`        | Android device profile id                                 |
| `--profile <profile>`      | Solana Mobile emulator profile                            |
| `--ram-mb <megabytes>`     | RAM size in MB                                            |
| `--sdcard-size <size>`     | SD card size                                              |
| `--sdk-root <path>`        | Android SDK root                                          |
| `--start`                  | Start the emulator after creating it                      |
| `--system-image <package>` | Android system image package                              |
| `--tune`                   | Apply emulator tweaks after starting (requires `--start`) |
| `-v, --verbose`            | Verbose output                                            |
| `--vm-heap-mb <megabytes>` | VM heap size in MB                                        |

## emulator delete

Delete one or more Android emulators:

<CodeGroup>
  ```bash npm theme={null}
  npx solana-mobile@latest emulator delete my-emulator
  ```

  ```bash pnpm theme={null}
  pnpm dlx solana-mobile@latest emulator delete my-emulator
  ```

  ```bash bun theme={null}
  bunx solana-mobile@latest emulator delete my-emulator
  ```
</CodeGroup>

| Option              | Description      |
| ------------------- | ---------------- |
| `--sdk-root <path>` | Android SDK root |

## emulator images

Manage Android system images with the `install`, `list`, and `delete` subcommands:

<CodeGroup>
  ```bash npm theme={null}
  npx solana-mobile@latest emulator images install
  ```

  ```bash pnpm theme={null}
  pnpm dlx solana-mobile@latest emulator images install
  ```

  ```bash bun theme={null}
  bunx solana-mobile@latest emulator images install
  ```
</CodeGroup>

| Option              | Description                                       |
| ------------------- | ------------------------------------------------- |
| `--all`             | Show all available system images (`install` only) |
| `--sdk-root <path>` | Android SDK root                                  |
| `-v, --verbose`     | Verbose output (`install` and `delete` only)      |

## emulator list

List installed Android emulators:

<CodeGroup>
  ```bash npm theme={null}
  npx solana-mobile@latest emulator list
  ```

  ```bash pnpm theme={null}
  pnpm dlx solana-mobile@latest emulator list
  ```

  ```bash bun theme={null}
  bunx solana-mobile@latest emulator list
  ```
</CodeGroup>

## emulator start

Start an Android emulator. Run it without a name to pick one interactively:

<CodeGroup>
  ```bash npm theme={null}
  npx solana-mobile@latest emulator start my-emulator
  ```

  ```bash pnpm theme={null}
  pnpm dlx solana-mobile@latest emulator start my-emulator
  ```

  ```bash bun theme={null}
  bunx solana-mobile@latest emulator start my-emulator
  ```
</CodeGroup>

| Option              | Description                          |
| ------------------- | ------------------------------------ |
| `--sdk-root <path>` | Android SDK root                     |
| `--tune`            | Apply emulator tweaks after starting |

## emulator status

Show the status of an Android emulator by name or serial:

<CodeGroup>
  ```bash npm theme={null}
  npx solana-mobile@latest emulator status
  ```

  ```bash pnpm theme={null}
  pnpm dlx solana-mobile@latest emulator status
  ```

  ```bash bun theme={null}
  bunx solana-mobile@latest emulator status
  ```
</CodeGroup>

## emulator stop

Stop a running Android emulator by name or serial:

<CodeGroup>
  ```bash npm theme={null}
  npx solana-mobile@latest emulator stop my-emulator
  ```

  ```bash pnpm theme={null}
  pnpm dlx solana-mobile@latest emulator stop my-emulator
  ```

  ```bash bun theme={null}
  bunx solana-mobile@latest emulator stop my-emulator
  ```
</CodeGroup>

## emulator tune

Apply the [agent-friendly tweaks](/cli/device#device-tune) to a running Android emulator, by name or serial:

<CodeGroup>
  ```bash npm theme={null}
  npx solana-mobile@latest emulator tune my-emulator
  ```

  ```bash pnpm theme={null}
  pnpm dlx solana-mobile@latest emulator tune my-emulator
  ```

  ```bash bun theme={null}
  bunx solana-mobile@latest emulator tune my-emulator
  ```
</CodeGroup>

Tuning is opt-in: `emulator start` and `emulator create --start` only apply the tweaks when you pass `--tune`, which is non-interactive and applies all of them. Running `tune` on its own asks which tweaks to apply, with every one pre-selected so `Enter` applies the lot; `-y` skips that question.

<Warning>
  Name the emulator in a script. Unlike [`device
      tune`](/cli/device#device-tune), `emulator tune` has no single-candidate
  shortcut: with no name or serial it opens an emulator picker whenever any
  emulator is running, one or many, and `-y` does not suppress it — that flag
  skips the tweak question only. With no emulator running it prints a hint and
  exits without tuning.
</Warning>

A name matching no running emulator is an error, and one matching more than one asks you to pass a serial instead. Physical device serials are refused here — use [`device tune`](/cli/device#device-tune) for those, which does fall back to the only connected device and takes `--device` or `--all`.

| Option      | Description                         |
| ----------- | ----------------------------------- |
| `-y, --yes` | Apply every tweak without prompting |

<FooterDisclaimer />
