---
name: android-emulator
description: "Android-Emulator starten, Apps installieren/starten, AVD verwalten, Logs lesen. Verwende diesen Skill für alles rund um den Android-Simulator: Starten, Stoppen, App-Deployment, Logcat, Screenshots. Trigger-Phrasen: 'Emulator', 'Simulator', 'AVD', 'virtuelles Gerät', 'Emulator starten', 'App im Simulator', 'logcat'."
---

# Skill: Android Emulator

Verwaltet den Android-Emulator für die Krisenvorrat-App. Das Standard-AVD simuliert ein Samsung S24 Ultra.

---

## Setup

| Komponente     | Wert                                                        |
| -------------- | ----------------------------------------------------------- |
| Emulator       | `C:\Users\JensR\AppData\Local\Android\Sdk\emulator\emulator.exe` |
| ADB            | `C:\Users\JensR\AppData\Local\Android\Sdk\platform-tools\adb.exe` |
| AVD Manager    | `C:\Users\JensR\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\avdmanager.bat` |
| AVD Name       | `S24Ultra_API35`                                            |
| System Image   | `system-images;android-35;google_apis;x86_64`               |
| Basisprofil    | `pixel_7_pro` (6.7" QHD+, nächstes Profil zu S24 Ultra)    |
| Anpassungen    | 3120×1440, 560dpi, 4096 MB RAM (Emulator-Limit)            |

---

## Operationen via Skript (bevorzugt)

```powershell
# Emulator starten (wartet auf Boot)
& ".github/skills/android-build/android-dev.ps1" -Action emulator-start

# App bauen + auf Emulator installieren + starten
& ".github/skills/android-build/android-dev.ps1" -Action deploy-emulator

# Nur installieren (ohne Build)
& ".github/skills/android-build/android-dev.ps1" -Action install-emulator

# App starten (bereits installiert)
& ".github/skills/android-build/android-dev.ps1" -Action launch

# Emulator stoppen
& ".github/skills/android-build/android-dev.ps1" -Action emulator-stop

# Logcat (gefiltert auf App)
& ".github/skills/android-build/android-dev.ps1" -Action logcat
```

---

## Manuelle Kommandos (Fallback)

### Emulator starten

```powershell
$env:ANDROID_HOME = "C:\Users\JensR\AppData\Local\Android\Sdk"
Start-Process "$env:ANDROID_HOME\emulator\emulator.exe" -ArgumentList "-avd S24Ultra_API35 -gpu auto"
```

### Auf Boot warten

```powershell
$adb = "$env:ANDROID_HOME\platform-tools\adb.exe"
& $adb wait-for-device
do {
    Start-Sleep -Seconds 5
    $boot = & $adb shell getprop sys.boot_completed 2>$null
} while ($boot -ne "1")
```

**Hinweis:** Der Boot dauert 30–90 Sekunden. `sys.boot_completed` gibt zunächst leeren String zurück.

### App installieren

```powershell
& $adb install -r "app\build\outputs\apk\debug\app-debug.apk"
```

`-r` = Replace (Reinstall ohne Datenverlust).

### App starten

```powershell
& $adb shell am start -n de.krisenvorrat.app/.MainActivity
```

### App stoppen

```powershell
& $adb shell am force-stop de.krisenvorrat.app
```

### Logcat (gefiltert)

```powershell
& $adb logcat --pid=$(& $adb shell pidof de.krisenvorrat.app) -v time
```

### Screenshot

```powershell
& $adb exec-out screencap -p > tmp/screenshot.png
```

### Emulator beenden

```powershell
& $adb emu kill
```

---

## Bekannte Probleme

### 1. `NullPointerException` bei Install direkt nach Boot

Der PackageManager ist noch nicht bereit, obwohl `sys.boot_completed` bereits 1 ist.

**Lösung:** 5 Sekunden nach `boot_completed=1` warten, dann installieren. Das Skript macht dies automatisch.

### 2. Emulator startet nicht (`HAXM` / Hypervisor-Fehler)

```
WHPX nicht verfügbar → Hyper-V muss aktiviert sein
```

Auf Windows: Hyper-V muss in Windows Features aktiviert sein. Der Emulator nutzt WHPX (Windows Hypervisor Platform).

### 3. Emulator-Fenster reagiert nicht

```powershell
# Hard-Kill und Neustart
& $adb emu kill
Start-Sleep -Seconds 5
# Erneut starten
```

---

## AVD-Verwaltung

### Vorhandene AVDs auflisten

```powershell
& "$env:ANDROID_HOME\cmdline-tools\latest\bin\avdmanager.bat" list avd
```

### AVD löschen

```powershell
& "$env:ANDROID_HOME\cmdline-tools\latest\bin\avdmanager.bat" delete avd -n "AVD_NAME"
```

### Neues AVD erstellen

```powershell
echo "no" | & "$env:ANDROID_HOME\cmdline-tools\latest\bin\avdmanager.bat" create avd `
    -n "S24Ultra_API35" `
    -k "system-images;android-35;google_apis;x86_64" `
    -d "pixel_7_pro"
```
