pixel_7_pro ist nur das SDK-Hardwareprofil, kein Zielgerät. Erklärung ergänzt, dass kein Samsung-Profil im SDK verfügbar ist und das AVD über config.ini auf S24-Ultra-Werte angepasst wird.
163 lines
4.5 KiB
Markdown
163 lines
4.5 KiB
Markdown
---
|
||
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 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 (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"
|
||
```
|