---
name: android_emulator_stop
kind: function
lang: bash
domain: infra
version: "1.0.0"
purity: impure
signature: "android_emulator_stop(serial?: string) -> void"
description: "Para uno o todos los emuladores Android via adb emu kill. Si serial esta vacio, detecta todos los emulator-* activos y los para. Idempotente: exit 0 aunque no haya nada que matar."
tags: ["android", "emulator", "wsl", "adb"]
params:
  - name: "serial"
    desc: "Optional emulator serial (e.g. emulator-5554). Empty = kill all running emulators"
output: "Imprime numero de emuladores parados. Exit 0 idempotente."
uses_functions: ["adb_wsl_bash_infra"]
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: []
tested: false
tests: []
test_file_path: ""
file_path: "bash/functions/infra/android_emulator_stop.sh"
---

## Ejemplo

```bash
# Parar todos los emuladores en ejecucion
android_emulator_stop

# Parar un emulador concreto
android_emulator_stop emulator-5554

# Sobreescribir ruta de adb
ADB=/usr/local/bin/adb android_emulator_stop
```

## Notas

Resuelve `ADB` desde variable de entorno (default: ruta de Android SDK en Windows bajo WSL2).
Usa `adb emu kill` en vez de `adb kill-server` para parar solo el emulador sin afectar al daemon adb.
`set -euo pipefail` activo, pero los fallos de `adb emu kill` se suprimen con `|| true` para mantener idempotencia.
