Files
fn_registry/bash/functions/infra/android_emulator_start.md
T

2.0 KiB

name, kind, lang, domain, version, purity, signature, description, tags, params, output, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags params output uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path
android_emulator_start function bash infra 1.0.0 impure android_emulator_start(avd_name: string, timeout_s: int) -> string Arranca un AVD en background y espera a que termine de bootear. Idempotente: si ya hay emulador corriendo no lanza otro.
android
emulator
wsl
name desc
avd_name Nombre del AVD a arrancar (visible con android_emulator_list o `emulator.exe -list-avds`)
name desc
timeout_s Timeout total en segundos para esperar el boot completo. Opcional, default 180
Serial del device emulado (ej. emulator-5554) en stdout. Exit 0 = boot completo, exit 1 = timeout o emulador murio.
adb_wsl_bash_infra
false error_go_core
false
bash/functions/infra/android_emulator_start.sh

Ejemplo

source bash/functions/infra/android_emulator_start.sh

# Arrancar AVD con timeout por defecto (180s)
serial=$(android_emulator_start "Pixel_6_API_34")
echo "Emulador listo: $serial"   # emulator-5554

# Con timeout personalizado
serial=$(android_emulator_start "Pixel_6_API_34" 300)

Notas

  • Sourcea adb_wsl.sh del mismo directorio si existe (provee ADB, adb_run, adb_wait_boot). Si no, usa implementacion inline.
  • Resuelve EMULATOR y ADB desde ANDROID_SDK_WIN (default /mnt/c/Users/lucas/AppData/Local/Android/Sdk) o desde las variables de entorno EMULATOR= / ADB= si ya están fijadas.
  • Idempotente: si adb devices ya muestra un emulator-*, imprime "already running" + el serial y sale con exit 0 sin lanzar un segundo proceso.
  • Log del emulador en /tmp/emulator_<avd>.log. PID en /tmp/emulator_<avd>.pid.
  • El timeout total se reparte: primera mitad para adb wait-for-device, segunda mitad para esperar sys.boot_completed=1.
  • Diseñado para WSL2 con Android SDK instalado en Windows. En Linux nativo basta cambiar las rutas de los binarios via EMULATOR= y ADB=.