---
name: android_app_launch
kind: function
lang: bash
domain: infra
version: "1.0.0"
purity: impure
signature: "android_app_launch([--serial <S>], package: string, [activity: string]) -> void"
description: "Launch app activity via am start. Multi-emulator via --serial."
tags: [android, adb, app, launch, activity, pendiente-usar]
params:
  - name: "--serial <S>"
    desc: "Optional target serial. Default: first device"
  - name: "package"
    desc: "App package id"
  - name: "activity"
    desc: "Optional activity. If omitted, launches via LAUNCHER intent"
output: "Stdout 'launched <pkg> on <serial>'. Exit 0 ok, 3 no device."
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_app_launch.sh"
---

## Ejemplo

```bash
# Lanzar actividad principal explicitamente
android_app_launch com.foo.bar .MainActivity

# Lanzar por LAUNCHER intent (detecta actividad principal automaticamente)
android_app_launch com.foo.bar

# Multi-emulador: elegir serial concreto
android_app_launch --serial emulator-5554 com.foo.bar .MainActivity
```

## Notas

Usa `adb_pick_serial` de `adb_wsl.sh` para resolver el serial objetivo.
Si no hay ningun device/emulador disponible, sale con exit code 3.
Si `activity` no se especifica, usa `monkey -p <pkg> -c android.intent.category.LAUNCHER 1`
para lanzar la actividad principal sin necesidad de conocerla de antemano.
