bollwerk/.github/skills/android-emulator/SKILL.md
Jens Reinemann a9a999fd1e fix(skills): harden deploy scripts for GPU and timing issues
android-dev.ps1:
- Changed GPU mode from 'auto' to 'guest' (host/auto/swiftshader/angle
  all fail with 'OpenGL Core Profile not supported' on this machine)
- Added -no-snapshot-load flag (prevents corrupt snapshot issues)
- Increased PackageManager wait from 5s to 30s (PM needs ~30s after
  sys.boot_completed=1 before adb install succeeds)
- Replaced blocking 'adb wait-for-device' with polling loop (120s timeout)
- Improved emulator-stop with force-kill fallback for hung processes
- Simplified screenshot action: exec-out screencap instead of push/pull/rm
- Made all timing values configurable via variables at top of script

android-emulator SKILL.md:
- Updated manual start command to use -gpu guest
- Updated PM wait time reference from 5s to 30s
- Added known issue #3: OpenGL Core Profile not supported (documents
  symptoms, affected GPU modes, and workaround)
2026-05-13 22:16:11 +02:00

174 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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` (SDK-Hardwareprofil kein Samsung-Profil verfügbar, dieses Profil kommt dem S24 Ultra am nächsten: 6.7" QHD+) |
| 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 guest -no-snapshot-load"
```
### 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 3090 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:** 30 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. OpenGL Core Profile nicht unterstützt (GPU-Problem)
Diese Maschine (NVIDIA GeForce MX130 / Intel UHD 620) unterstützt kein OpenGL Core Profile.
Mit `-gpu auto`, `-gpu host`, `-gpu swiftshader_indirect` oder `-gpu angle_indirect` startet der
Emulator-Prozess, zeigt aber kein Fenster und bindet keine ADB-Ports.
**Symptom:** `qemu-system-x86_64` läuft, aber `adb devices` zeigt keinen Emulator.
**Lösung:** Immer `-gpu guest` verwenden (Software-Rendering im Gast-VM). Das `android-dev.ps1`-Skript
setzt dies automatisch über `$GPU_MODE = "guest"`.
### 4. 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 (S24 Ultra Approximation)
Das SDK enthält kein Samsung-Profil. `pixel_7_pro` ist das nächstliegende Hardwareprofil
(6.7" QHD+). Display und RAM werden über `config.ini` auf S24-Ultra-Werte angepasst.
```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"
```